Changeset 39261 in webkit for trunk/JavaScriptCore/assembler


Ignore:
Timestamp:
Dec 12, 2008, 5:39:38 PM (17 years ago)
Author:
[email protected]
Message:

2008-12-12 Gavin Barraclough <[email protected]>

Reviewed by Geoff Garen.

Move slow-cases of JIT code generation over to the MacroAssembler interface.

  • assembler/MacroAssembler.h: (JSC::MacroAssembler::Label::Label): (JSC::MacroAssembler::jae32): (JSC::MacroAssembler::jg32): (JSC::MacroAssembler::jzPtr):
  • jit/JIT.cpp: (JSC::JIT::privateCompileSlowCases): (JSC::JIT::privateCompile): (JSC::JIT::emitGetVariableObjectRegister): (JSC::JIT::emitPutVariableObjectRegister):
  • jit/JIT.h: (JSC::SlowCaseEntry::SlowCaseEntry): (JSC::JIT::getSlowCase): (JSC::JIT::linkSlowCase):
  • jit/JITArithmetic.cpp: (JSC::JIT::compileBinaryArithOpSlowCase):
  • jit/JITCall.cpp: (JSC::JIT::compileOpCallInitializeCallFrame): (JSC::JIT::compileOpCall): (JSC::JIT::compileOpCallSlowCase):
  • jit/JITInlineMethods.h: (JSC::JIT::emitJumpSlowCaseIfNotJSCell): (JSC::JIT::linkSlowCaseIfNotJSCell):
  • jit/JITPropertyAccess.cpp: (JSC::JIT::compileGetByIdHotPath): (JSC::JIT::compilePutByIdHotPath): (JSC::JIT::compileGetByIdSlowCase): (JSC::JIT::compilePutByIdSlowCase):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/assembler/MacroAssembler.h

    r39121 r39261  
    148148
    149149    public:
     150        Label()
     151        {
     152        }
     153
    150154        Label(MacroAssembler* masm)
    151155            : m_label(masm->m_assembler.label())
     
    703707    }
    704708   
     709    Jump jae32(Address left, RegisterID right)
     710    {
     711        if (left.offset)
     712            m_assembler.cmpl_rm(right, left.offset, left.base);
     713        else
     714            m_assembler.cmpl_rm(right, left.base);
     715        return Jump(m_assembler.jae());
     716    }
     717   
    705718    Jump jb32(RegisterID left, Address right)
    706719    {
     
    758771        return Jump(m_assembler.jg());
    759772    }
    760    
     773
     774    Jump jg32(RegisterID reg, Address address)
     775    {
     776        if (address.offset)
     777            m_assembler.cmpl_mr(address.offset, address.base, reg);
     778        else
     779            m_assembler.cmpl_mr(address.base, reg);
     780        return Jump(m_assembler.jg());
     781    }
     782
    761783    Jump jge32(RegisterID left, RegisterID right)
    762784    {
     
    913935    //     jne32(reg1, reg2).linkTo(topOfLoop);
    914936
     937    void jae32(RegisterID left, Address right, Label target)
     938    {
     939        jae32(left, right).linkTo(target, this);
     940    }
     941
    915942    void je32(RegisterID op1, Imm32 imm, Label target)
    916943    {
     
    942969        jne32(op1, imm).linkTo(target, this);
    943970    }
     971
     972#if !PLATFORM(X86_64)
     973    void jzPtr(RegisterID reg, Label target)
     974    {
     975        jzPtr(reg).linkTo(target, this);
     976    }
     977#endif
    944978
    945979    void jump(Label target)
Note: See TracChangeset for help on using the changeset viewer.