Changeset 49293 in webkit for trunk/JavaScriptCore


Ignore:
Timestamp:
Oct 8, 2009, 2:18:21 AM (16 years ago)
Author:
[email protected]
Message:

Fix for JIT'ed op_call instructions (evals, constructs, etc.)
when !ENABLE(JIT_OPTIMIZE_CALL) && USE(JSVALUE32_64)

Patch by Zoltan Herczeg <[email protected]> on 2009-10-08
Reviewed by Gavin Barraclough.

https://bugs.webkit.org/show_bug.cgi?id=30201

  • jit/JITCall.cpp:

(JSC::JIT::compileOpCall):

Location:
trunk/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r49281 r49293  
     12009-10-08  Zoltan Herczeg  <[email protected]>
     2
     3        Reviewed by Gavin Barraclough.
     4
     5        Fix for JIT'ed op_call instructions (evals, constructs, etc.)
     6        when !ENABLE(JIT_OPTIMIZE_CALL) && USE(JSVALUE32_64)
     7
     8        https://bugs.webkit.org/show_bug.cgi?id=30201
     9
     10        * jit/JITCall.cpp:
     11        (JSC::JIT::compileOpCall):
     12
    1132009-10-07  Geoffrey Garen  <[email protected]>
    214
  • trunk/JavaScriptCore/jit/JITCall.cpp

    r49030 r49293  
    244244        stubCall.addArgument(JIT::Imm32(argCount));
    245245        stubCall.call();
    246         wasEval = branch32(Equal, regT1, Imm32(JSValue::EmptyValueTag));
    247     }
    248 
    249     emitLoad(callee, regT1, regT2);
     246        wasEval = branch32(NotEqual, regT1, Imm32(JSValue::EmptyValueTag));
     247    }
     248
     249    emitLoad(callee, regT1, regT0);
    250250
    251251    if (opcodeID == op_call)
     
    255255
    256256    emitJumpSlowCaseIfNotJSCell(callee, regT1);
    257     addSlowCase(branchPtr(NotEqual, Address(regT2), ImmPtr(m_globalData->jsFunctionVPtr)));
     257    addSlowCase(branchPtr(NotEqual, Address(regT0), ImmPtr(m_globalData->jsFunctionVPtr)));
    258258
    259259    // First, in the case of a construct, allocate the new object.
    260260    if (opcodeID == op_construct) {
    261261        JITStubCall(this, cti_op_construct_JSConstruct).call(registerOffset - RegisterFile::CallFrameHeaderSize - argCount);
    262         emitLoad(callee, regT1, regT2);
     262        emitLoad(callee, regT1, regT0);
    263263    }
    264264
     
    273273        wasEval.link(this);
    274274
    275     emitStore(dst, regT1, regT0);;
     275    emitStore(dst, regT1, regT0);
    276276
    277277    sampleCodeBlock(m_codeBlock);
Note: See TracChangeset for help on using the changeset viewer.