Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (109844 => 109845)
--- trunk/Source/_javascript_Core/ChangeLog 2012-03-06 04:51:56 UTC (rev 109844)
+++ trunk/Source/_javascript_Core/ChangeLog 2012-03-06 04:54:19 UTC (rev 109845)
@@ -1,3 +1,15 @@
+2012-03-05 Oliver Hunt <[email protected]>
+
+ Fix Qt build.
+
+ * assembler/AbstractMacroAssembler.h:
+ * assembler/MacroAssembler.h:
+ (MacroAssembler):
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compileArithSub):
+ * jit/JITArithmetic32_64.cpp:
+ (JSC::JIT::emitSub32Constant):
+
2012-03-05 Eric Seidel <[email protected]>
Update _javascript_Core files to use fully-qualified WTF include paths
Modified: trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h (109844 => 109845)
--- trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h 2012-03-06 04:51:56 UTC (rev 109844)
+++ trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h 2012-03-06 04:54:19 UTC (rev 109845)
@@ -34,6 +34,15 @@
#if ENABLE(ASSEMBLER)
+
+#if PLATFORM(QT)
+#define ENABLE_JIT_CONSTANT_BLINDING 0
+#endif
+
+#ifndef ENABLE_JIT_CONSTANT_BLINDING
+#define ENABLE_JIT_CONSTANT_BLINDING 1
+#endif
+
namespace JSC {
class LinkBuffer;
@@ -233,7 +242,13 @@
};
- struct Imm32 : private TrustedImm32 {
+ struct Imm32 :
+#if ENABLE(JIT_CONSTANT_BLINDING)
+ private TrustedImm32
+#else
+ public TrustedImm32
+#endif
+ {
explicit Imm32(int32_t value)
: TrustedImm32(value)
{
Modified: trunk/Source/_javascript_Core/assembler/MacroAssembler.h (109844 => 109845)
--- trunk/Source/_javascript_Core/assembler/MacroAssembler.h 2012-03-06 04:51:56 UTC (rev 109844)
+++ trunk/Source/_javascript_Core/assembler/MacroAssembler.h 2012-03-06 04:54:19 UTC (rev 109845)
@@ -60,14 +60,11 @@
#error "The MacroAssembler is not supported on this platform."
#endif
-
namespace JSC {
class MacroAssembler : public MacroAssemblerBase {
public:
- using MacroAssemblerBase::add32;
- using MacroAssemblerBase::and32;
using MacroAssemblerBase::pop;
using MacroAssemblerBase::jump;
using MacroAssemblerBase::branch32;
@@ -75,6 +72,10 @@
using MacroAssemblerBase::branchPtr;
using MacroAssemblerBase::branchTestPtr;
#endif
+
+#if ENABLE(JIT_CONSTANT_BLINDING)
+ using MacroAssemblerBase::add32;
+ using MacroAssemblerBase::and32;
using MacroAssemblerBase::branchAdd32;
using MacroAssemblerBase::branchMul32;
using MacroAssemblerBase::branchSub32;
@@ -86,6 +87,7 @@
using MacroAssemblerBase::sub32;
using MacroAssemblerBase::urshift32;
using MacroAssemblerBase::xor32;
+#endif
// Utilities used by the DFG JIT.
#if ENABLE(DFG_JIT)
@@ -479,7 +481,8 @@
return MacroAssemblerBase::branchTest8(cond, Address(address.base, address.offset), mask);
}
#else
-
+
+#if ENABLE(JIT_CONSTANT_BLINDING)
using MacroAssemblerBase::addPtr;
using MacroAssemblerBase::andPtr;
using MacroAssemblerBase::branchSubPtr;
@@ -496,9 +499,11 @@
} else
convertInt32ToDouble(imm.asTrustedImm32(), dest);
}
+#endif
#endif // !CPU(X86_64)
-
+
+#if ENABLE(JIT_CONSTANT_BLINDING)
bool shouldBlind(Imm32 imm)
{
ASSERT(!inUninterruptedSequence());
@@ -845,6 +850,7 @@
{
urshift32(src, trustedImm32ForShift(amount), dest);
}
+#endif
};
} // namespace JSC
Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp (109844 => 109845)
--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp 2012-03-06 04:51:56 UTC (rev 109844)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp 2012-03-06 04:54:19 UTC (rev 109845)
@@ -2320,8 +2320,12 @@
m_jit.move(op1.gpr(), result.gpr());
m_jit.sub32(Imm32(imm2), result.gpr());
} else {
+#if ENABLE(JIT_CONSTANT_BLINDING)
GPRTemporary scratch(this);
speculationCheck(Overflow, JSValueRegs(), NoNode, m_jit.branchSub32(MacroAssembler::Overflow, op1.gpr(), Imm32(imm2), result.gpr(), scratch.gpr()));
+#else
+ speculationCheck(Overflow, JSValueRegs(), NoNode, m_jit.branchSub32(MacroAssembler::Overflow, op1.gpr(), Imm32(imm2), result.gpr()));
+#endif
}
integerResult(result.gpr(), m_compileIndex);
Modified: trunk/Source/_javascript_Core/jit/JITArithmetic32_64.cpp (109844 => 109845)
--- trunk/Source/_javascript_Core/jit/JITArithmetic32_64.cpp 2012-03-06 04:51:56 UTC (rev 109844)
+++ trunk/Source/_javascript_Core/jit/JITArithmetic32_64.cpp 2012-03-06 04:54:19 UTC (rev 109845)
@@ -732,7 +732,12 @@
// Int32 case.
emitLoad(op, regT1, regT0);
Jump notInt32 = branch32(NotEqual, regT1, TrustedImm32(JSValue::Int32Tag));
+#if ENABLE(JIT_CONSTANT_BLINDING)
addSlowCase(branchSub32(Overflow, regT0, Imm32(constant), regT2, regT3));
+#else
+ addSlowCase(branchSub32(Overflow, regT0, Imm32(constant), regT2));
+#endif
+
emitStoreInt32(dst, regT2, (op == dst));
// Double case.