Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (96853 => 96854)
--- trunk/Source/_javascript_Core/ChangeLog 2011-10-06 20:28:32 UTC (rev 96853)
+++ trunk/Source/_javascript_Core/ChangeLog 2011-10-06 20:49:50 UTC (rev 96854)
@@ -1,5 +1,14 @@
2011-10-06 Gavin Barraclough <barraclo...@apple.com>
+ Unreviewed build fix for DFG JIT 32_64 release builds.
+
+ * dfg/DFGJITCompiler.cpp:
+ * dfg/DFGJITCompiler.h:
+ * dfg/DFGJITCompiler32_64.cpp:
+ - Remove three unused methods.
+
+2011-10-06 Gavin Barraclough <barraclo...@apple.com>
+
DFG JIT 32_64 should check type of values being filled by fillSpeculateInt
https://bugs.webkit.org/show_bug.cgi?id=69549
Modified: trunk/Source/_javascript_Core/dfg/DFGJITCompiler.cpp (96853 => 96854)
--- trunk/Source/_javascript_Core/dfg/DFGJITCompiler.cpp 2011-10-06 20:28:32 UTC (rev 96853)
+++ trunk/Source/_javascript_Core/dfg/DFGJITCompiler.cpp 2011-10-06 20:49:50 UTC (rev 96854)
@@ -39,67 +39,6 @@
namespace JSC { namespace DFG {
-// This method used to fill a numeric value to a FPR when linking speculative -> non-speculative.
-void JITCompiler::fillNumericToDouble(NodeIndex nodeIndex, FPRReg fpr, GPRReg temporary)
-{
- Node& node = graph()[nodeIndex];
-
- if (node.hasConstant()) {
- ASSERT(isNumberConstant(nodeIndex));
- move(MacroAssembler::ImmPtr(reinterpret_cast<void*>(reinterpretDoubleToIntptr(valueOfNumberConstant(nodeIndex)))), temporary);
- movePtrToDouble(temporary, fpr);
- } else {
- loadPtr(addressFor(node.virtualRegister()), temporary);
- Jump isInteger = branchPtr(MacroAssembler::AboveOrEqual, temporary, GPRInfo::tagTypeNumberRegister);
- unboxDouble(temporary, fpr);
- Jump hasUnboxedDouble = jump();
- isInteger.link(this);
- convertInt32ToDouble(temporary, fpr);
- hasUnboxedDouble.link(this);
- }
-}
-
-// This method used to fill an integer value to a GPR when linking speculative -> non-speculative.
-void JITCompiler::fillInt32ToInteger(NodeIndex nodeIndex, GPRReg gpr)
-{
- Node& node = graph()[nodeIndex];
-
- if (node.hasConstant()) {
- ASSERT(isInt32Constant(nodeIndex));
- move(MacroAssembler::Imm32(valueOfInt32Constant(nodeIndex)), gpr);
- } else {
-#if ENABLE(DFG_JIT_ASSERT)
- // Redundant load, just so we can check the tag!
- loadPtr(addressFor(node.virtualRegister()), gpr);
- jitAssertIsJSInt32(gpr);
-#endif
- load32(addressFor(node.virtualRegister()), gpr);
- }
-}
-
-// This method used to fill a JSValue to a GPR when linking speculative -> non-speculative.
-void JITCompiler::fillToJS(NodeIndex nodeIndex, GPRReg gpr)
-{
- Node& node = graph()[nodeIndex];
-
- if (node.hasConstant()) {
- if (isInt32Constant(nodeIndex)) {
- JSValue jsValue = jsNumber(valueOfInt32Constant(nodeIndex));
- move(MacroAssembler::ImmPtr(JSValue::encode(jsValue)), gpr);
- } else if (isNumberConstant(nodeIndex)) {
- JSValue jsValue(JSValue::EncodeAsDouble, valueOfNumberConstant(nodeIndex));
- move(MacroAssembler::ImmPtr(JSValue::encode(jsValue)), gpr);
- } else {
- ASSERT(isJSConstant(nodeIndex));
- JSValue jsValue = valueOfJSConstant(nodeIndex);
- move(MacroAssembler::ImmPtr(JSValue::encode(jsValue)), gpr);
- }
- return;
- }
-
- loadPtr(addressFor(node.virtualRegister()), gpr);
-}
-
void JITCompiler::exitSpeculativeWithOSR(const OSRExit& exit, SpeculationRecovery* recovery, Vector<BytecodeAndMachineOffset>& decodedCodeMap)
{
// 1) Pro-forma stuff.
Modified: trunk/Source/_javascript_Core/dfg/DFGJITCompiler.h (96853 => 96854)
--- trunk/Source/_javascript_Core/dfg/DFGJITCompiler.h 2011-10-06 20:28:32 UTC (rev 96853)
+++ trunk/Source/_javascript_Core/dfg/DFGJITCompiler.h 2011-10-06 20:49:50 UTC (rev 96854)
@@ -430,11 +430,6 @@
void compileBody();
void link(LinkBuffer&);
- // These methods used in linking the speculative & non-speculative paths together.
- void fillNumericToDouble(NodeIndex, FPRReg, GPRReg temporary);
- void fillInt32ToInteger(NodeIndex, GPRReg);
- void fillToJS(NodeIndex, GPRReg);
-
void exitSpeculativeWithOSR(const OSRExit&, SpeculationRecovery*, Vector<BytecodeAndMachineOffset>& decodedCodeMap);
void linkOSRExits(SpeculativeJIT&);
Modified: trunk/Source/_javascript_Core/dfg/DFGJITCompiler32_64.cpp (96853 => 96854)
--- trunk/Source/_javascript_Core/dfg/DFGJITCompiler32_64.cpp 2011-10-06 20:28:32 UTC (rev 96853)
+++ trunk/Source/_javascript_Core/dfg/DFGJITCompiler32_64.cpp 2011-10-06 20:49:50 UTC (rev 96854)
@@ -40,52 +40,6 @@
namespace JSC { namespace DFG {
-// This method used to fill a numeric value to a FPR when linking speculative -> non-speculative.
-void JITCompiler::fillNumericToDouble(NodeIndex nodeIndex, FPRReg fpr, GPRReg temporary)
-{
- Node& node = graph()[nodeIndex];
-
- if (node.hasConstant()) {
- ASSERT(isNumberConstant(nodeIndex));
- loadDouble(addressOfDoubleConstant(nodeIndex), fpr);
- } else {
- load32(tagFor(node.virtualRegister()), temporary);
- Jump isInteger = branch32(MacroAssembler::Equal, temporary, TrustedImm32(JSValue::Int32Tag));
- loadDouble(addressFor(node.virtualRegister()), fpr);
- Jump hasUnboxedDouble = jump();
- isInteger.link(this);
- load32(payloadFor(node.virtualRegister()), temporary);
- convertInt32ToDouble(temporary, fpr);
- hasUnboxedDouble.link(this);
- }
-}
-
-// This method used to fill an integer value to a GPR when linking speculative -> non-speculative.
-void JITCompiler::fillInt32ToInteger(NodeIndex nodeIndex, GPRReg gpr)
-{
- Node& node = graph()[nodeIndex];
-
- if (node.hasConstant()) {
- ASSERT(isInt32Constant(nodeIndex));
- move(MacroAssembler::Imm32(valueOfInt32Constant(nodeIndex)), gpr);
- } else {
-#if ENABLE(DFG_JIT_ASSERT)
- // Redundant load, just so we can check the tag!
- load32(tagFor(node.virtualRegister()), gpr);
- jitAssertIsJSInt32(gpr);
-#endif
- load32(payloadFor(node.virtualRegister()), gpr);
- }
-}
-
-// This method used to fill a JSValue to a GPR when linking speculative -> non-speculative.
-void NO_RETURN JITCompiler::fillToJS(NodeIndex nodeIndex, GPRReg gpr)
-{
- ASSERT_NOT_REACHED();
- UNUSED_PARAM(nodeIndex);
- UNUSED_PARAM(gpr);
-}
-
void JITCompiler::exitSpeculativeWithOSR(const OSRExit& exit, SpeculationRecovery* recovery, Vector<BytecodeAndMachineOffset>& decodedCodeMap)
{
// 1) Pro-forma stuff.