Ignore:
Timestamp:
Jan 20, 2015, 5:12:51 PM (11 years ago)
Author:
[email protected]
Message:

Made Identity in the DFG allocate a new temp register and move
the old data to it.
https://bugs.webkit.org/show_bug.cgi?id=140700
<rdar://problem/19339106>

Reviewed by Filip Pizlo.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
Added scratch registers for Identity.

  • tests/mozilla/mozilla-tests.yaml: enabled previously failing test
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp

    r178370 r178788  
    18001800        case DoubleRepMachineIntUse: {
    18011801            SpeculateDoubleOperand op(this, node->child1());
    1802             doubleResult(op.fpr(), node);
     1802            FPRTemporary scratch(this, op);
     1803            m_jit.moveDouble(op.fpr(), scratch.fpr());
     1804            doubleResult(scratch.fpr(), node);
    18031805            break;
    18041806        }
    18051807        case Int52RepUse: {
    18061808            SpeculateInt52Operand op(this, node->child1());
    1807             int52Result(op.gpr(), node);
     1809            GPRTemporary result(this, Reuse, op);
     1810            m_jit.move(op.gpr(), result.gpr());
     1811            int52Result(result.gpr(), node);
    18081812            break;
    18091813        }
    18101814        default: {
    18111815            JSValueOperand op(this, node->child1());
    1812             jsValueResult(op.gpr(), node);
     1816            GPRTemporary result(this, Reuse, op);
     1817            m_jit.move(op.gpr(), result.gpr());
     1818            jsValueResult(result.gpr(), node);
    18131819            break;
    18141820        }
Note: See TracChangeset for help on using the changeset viewer.