Modified: trunk/Source/_javascript_Core/ChangeLog (112594 => 112595)
--- trunk/Source/_javascript_Core/ChangeLog 2012-03-29 22:53:28 UTC (rev 112594)
+++ trunk/Source/_javascript_Core/ChangeLog 2012-03-29 23:01:46 UTC (rev 112595)
@@ -1,3 +1,14 @@
+2012-03-29 Filip Pizlo <[email protected]>
+
+ Unreviewed build fix for non-x86 platforms.
+
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compileSoftModulo):
+ * dfg/DFGSpeculativeJIT.h:
+ (JSC::DFG::SpeculativeJIT::callOperation):
+ * jit/JITArithmetic32_64.cpp:
+ (JSC::JIT::emitSlow_op_mod):
+
2012-03-29 Gavin Barraclough <[email protected]>
Windows build fix p2.
Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp (112594 => 112595)
--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp 2012-03-29 22:53:28 UTC (rev 112594)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp 2012-03-29 23:01:46 UTC (rev 112595)
@@ -2263,9 +2263,9 @@
// In the fast path, the dividend value could be the final result
// (in case of |dividend| < |divisor|), so we speculate it as strict int32.
SpeculateStrictInt32Operand op1(this, node.child1());
+#if CPU(X86) || CPU(X86_64)
if (isInt32Constant(node.child2().index())) {
int32_t divisor = valueOfInt32Constant(node.child2().index());
-#if CPU(X86) || CPU(X86_64)
if (divisor) {
GPRReg op1Gpr = op1.gpr();
@@ -2302,8 +2302,8 @@
integerResult(edx.gpr(), m_compileIndex);
return;
}
+ }
#endif
- }
SpeculateIntegerOperand op2(this, node.child2());
#if CPU(X86) || CPU(X86_64)
Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.h (112594 => 112595)
--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.h 2012-03-29 22:53:28 UTC (rev 112594)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.h 2012-03-29 23:01:46 UTC (rev 112595)
@@ -1255,6 +1255,11 @@
m_jit.setupArgumentsWithExecState(arg1);
return appendCallWithExceptionCheckSetResult(operation, result);
}
+ JITCompiler::Call callOperation(D_DFGOperation_ZZ operation, FPRReg result, GPRReg arg1, GPRReg arg2)
+ {
+ m_jit.setupArguments(arg1, arg2);
+ return appendCallSetResult(operation, result);
+ }
JITCompiler::Call callOperation(D_DFGOperation_DD operation, FPRReg result, FPRReg arg1, FPRReg arg2)
{
m_jit.setupArguments(arg1, arg2);
@@ -1440,6 +1445,11 @@
return appendCallWithExceptionCheckSetResult(operation, result);
}
+ JITCompiler::Call callOperation(D_DFGOperation_ZZ operation, FPRReg result, GPRReg arg1, GPRReg arg2)
+ {
+ m_jit.setupArguments(arg1, arg2);
+ return appendCallSetResult(operation, result);
+ }
JITCompiler::Call callOperation(D_DFGOperation_DD operation, FPRReg result, FPRReg arg1, FPRReg arg2)
{
m_jit.setupArguments(arg1, arg2);
Modified: trunk/Source/_javascript_Core/jit/JITArithmetic32_64.cpp (112594 => 112595)
--- trunk/Source/_javascript_Core/jit/JITArithmetic32_64.cpp 2012-03-29 22:53:28 UTC (rev 112594)
+++ trunk/Source/_javascript_Core/jit/JITArithmetic32_64.cpp 2012-03-29 23:01:46 UTC (rev 112595)
@@ -1250,7 +1250,9 @@
#else
UNUSED_PARAM(currentInstruction);
UNUSED_PARAM(iter);
- ASSERT_NOT_REACHED();
+ // We would have really useful assertions here if it wasn't for the compiler's
+ // insistence on attribute noreturn.
+ // ASSERT_NOT_REACHED();
#endif
}