Ignore:
Timestamp:
Dec 7, 2009, 6:52:37 AM (15 years ago)
Author:
[email protected]
Message:

2009-12-07 Maciej Stachowiak <[email protected]>

Reviewed by Oliver Hunt.

op_loop_if_less JIT codegen is broken for 64-bit
https://bugs.webkit.org/show_bug.cgi?id=32221

  • jit/JITOpcodes.cpp: (JSC::JIT::emit_op_loop_if_false): Fix codegen in this version - test was backwards.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/jit/JITOpcodes.cpp

    r51739 r51765  
    23052305    emitTimeoutCheck();
    23062306
     2307
    23072308    unsigned target = currentInstruction[2].u.operand;
    23082309    emitGetVirtualRegister(currentInstruction[1].u.operand, regT0);
    23092310
    2310     Jump isZero = branchPtr(Equal, regT0, ImmPtr(JSValue::encode(jsNumber(m_globalData, 0))));
    2311     addJump(emitJumpIfImmediateInteger(regT0), target);
    2312 
    2313     addJump(branchPtr(Equal, regT0, ImmPtr(JSValue::encode(jsBoolean(true)))), target);
    2314     addSlowCase(branchPtr(NotEqual, regT0, ImmPtr(JSValue::encode(jsBoolean(false)))));
    2315 
    2316     isZero.link(this);
     2311    addJump(branchPtr(Equal, regT0, ImmPtr(JSValue::encode(jsNumber(m_globalData, 0)))), target);
     2312    Jump isNonZero = emitJumpIfImmediateInteger(regT0);
     2313
     2314    addJump(branchPtr(Equal, regT0, ImmPtr(JSValue::encode(jsBoolean(false)))), target);
     2315    addSlowCase(branchPtr(NotEqual, regT0, ImmPtr(JSValue::encode(jsBoolean(true)))));
     2316
     2317    isNonZero.link(this);
     2318    RECORD_JUMP_TARGET(target);
    23172319};
    23182320
Note: See TracChangeset for help on using the changeset viewer.