Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (167391 => 167392)
--- trunk/Source/_javascript_Core/ChangeLog 2014-04-16 22:21:43 UTC (rev 167391)
+++ trunk/Source/_javascript_Core/ChangeLog 2014-04-16 22:39:05 UTC (rev 167392)
@@ -1,3 +1,16 @@
+2014-04-16 Juergen Ributzka <juer...@apple.com>
+
+ Enable system library calls in FTL for ARM64
+ https://bugs.webkit.org/show_bug.cgi?id=130154
+
+ Reviewed by Geoffrey Garen and Filip Pizlo.
+
+ * ftl/FTLIntrinsicRepository.h:
+ * ftl/FTLOutput.h:
+ (JSC::FTL::Output::doubleRem):
+ (JSC::FTL::Output::doubleSin):
+ (JSC::FTL::Output::doubleCos):
+
2014-04-16 pe...@outlook.com <pe...@outlook.com>
Fix JSC Debug Regressions on Windows
Modified: trunk/Source/_javascript_Core/ftl/FTLIntrinsicRepository.h (167391 => 167392)
--- trunk/Source/_javascript_Core/ftl/FTLIntrinsicRepository.h 2014-04-16 22:21:43 UTC (rev 167391)
+++ trunk/Source/_javascript_Core/ftl/FTLIntrinsicRepository.h 2014-04-16 22:39:05 UTC (rev 167392)
@@ -59,7 +59,6 @@
macro(C_JITOperation_EJssJssJss, functionType(intPtr, intPtr, intPtr, intPtr, intPtr)) \
macro(C_JITOperation_ESt, functionType(intPtr, intPtr, intPtr)) \
macro(D_JITOperation_D, functionType(doubleType, doubleType)) \
- macro(D_JITOperation_DD, functionType(doubleType, doubleType, doubleType)) \
macro(I_JITOperation_EJss, functionType(intPtr, intPtr, intPtr)) \
macro(J_JITOperation_E, functionType(int64, intPtr)) \
macro(J_JITOperation_EA, functionType(int64, intPtr, intPtr)) \
Modified: trunk/Source/_javascript_Core/ftl/FTLOutput.h (167391 => 167392)
--- trunk/Source/_javascript_Core/ftl/FTLOutput.h 2014-04-16 22:21:43 UTC (rev 167391)
+++ trunk/Source/_javascript_Core/ftl/FTLOutput.h 2014-04-16 22:39:05 UTC (rev 167392)
@@ -126,13 +126,7 @@
LValue doubleSub(LValue left, LValue right) { return buildFSub(m_builder, left, right); }
LValue doubleMul(LValue left, LValue right) { return buildFMul(m_builder, left, right); }
LValue doubleDiv(LValue left, LValue right) { return buildFDiv(m_builder, left, right); }
- LValue doubleRem(LValue left, LValue right)
- {
- // FIXME: LLVM may soften float operations by expanding them to libcalls.
- // We cannot allow that on all platforms yet.
- // <rdar://16196412> MachO large code model support.
- return isX86() ? buildFRem(m_builder, left, right) : call(operation(fmod), left, right);
- }
+ LValue doubleRem(LValue left, LValue right) { return buildFRem(m_builder, left, right); }
LValue doubleNeg(LValue value) { return buildFNeg(m_builder, value); }
LValue bitAnd(LValue left, LValue right) { return buildAnd(m_builder, left, right); }
@@ -176,12 +170,11 @@
LValue doubleSin(LValue value)
{
- return call(isX86() ? doubleSinIntrinsic() : operation(sin), value);
-
+ return call(doubleSinIntrinsic(), value);
}
LValue doubleCos(LValue value)
{
- return call(isX86() ? doubleCosIntrinsic() : operation(cos), value);
+ return call(doubleCosIntrinsic(), value);
}
LValue doubleSqrt(LValue value)