Ignore:
Timestamp:
Aug 30, 2012, 9:03:47 AM (13 years ago)
Author:
[email protected]
Message:

[sh4] Add missing implementation for JavaScriptCore JIT
https://bugs.webkit.org/show_bug.cgi?id=95452

Patch by Julien BRIANCEAU <[email protected]> on 2012-08-30
Reviewed by Oliver Hunt.

  • assembler/MacroAssemblerSH4.h:

(JSC::MacroAssemblerSH4::isCompactPtrAlignedAddressOffset):
(MacroAssemblerSH4):
(JSC::MacroAssemblerSH4::add32):
(JSC::MacroAssemblerSH4::convertibleLoadPtr):

  • assembler/SH4Assembler.h:

(JSC::SH4Assembler::labelIgnoringWatchpoints):
(SH4Assembler):
(JSC::SH4Assembler::replaceWithLoad):
(JSC::SH4Assembler::replaceWithAddressComputation):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h

    r120244 r127148  
    4848    static const int MaximumCompactPtrAlignedAddressOffset = 60;
    4949
     50    static bool isCompactPtrAlignedAddressOffset(ptrdiff_t value)
     51    {
     52        return (value >= 0) && (value <= MaximumCompactPtrAlignedAddressOffset);
     53    }
     54
    5055    enum RelationalCondition {
    5156        Equal = SH4Assembler::EQ,
     
    139144    }
    140145
     146    void add32(AbsoluteAddress src, RegisterID dest)
     147    {
     148        RegisterID scr = claimScratch();
     149        load32(src.m_ptr, scr);
     150        m_assembler.addlRegReg(scr, dest);
     151        releaseScratch(scr);
     152    }
     153
    141154    void and32(RegisterID src, RegisterID dest)
    142155    {
     
    873886        m_assembler.movlMemRegCompact(address.offset >> 2, address.base, dest);
    874887        return dataLabel;
     888    }
     889
     890    ConvertibleLoadLabel convertibleLoadPtr(Address address, RegisterID dest)
     891    {
     892        ConvertibleLoadLabel result(this);
     893
     894        RegisterID scr = claimScratch();
     895        m_assembler.movImm8(address.offset, scr);
     896        m_assembler.addlRegReg(address.base, scr);
     897        m_assembler.movlMemReg(scr, dest);
     898        releaseScratch(scr);
     899
     900        return result;
    875901    }
    876902
Note: See TracChangeset for help on using the changeset viewer.