Ignore:
Timestamp:
May 7, 2013, 9:53:23 AM (12 years ago)
Author:
[email protected]
Message:

Take advantage of pre-decrement and post-increment opcodes for sh4 base JIT.
https://bugs.webkit.org/show_bug.cgi?id=115722

Patch by Julien Brianceau <[email protected]> on 2013-05-07
Reviewed by Oliver Hunt.

  • assembler/MacroAssemblerSH4.h:

(JSC::MacroAssemblerSH4::load8PostInc):
(MacroAssemblerSH4):
(JSC::MacroAssemblerSH4::load16Unaligned):
(JSC::MacroAssemblerSH4::load16PostInc):
(JSC::MacroAssemblerSH4::storeDouble):
(JSC::MacroAssemblerSH4::load32WithUnalignedHalfWords):

  • assembler/SH4Assembler.h:

(JSC::SH4Assembler::movwMemRegIn):
(SH4Assembler):
(JSC::SH4Assembler::movbMemRegIn):
(JSC::SH4Assembler::printInstr):

File:
1 edited

Legend:

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

    r149634 r149676  
    118118    MOVW_WRITE_R0RN_OPCODE = 0x0005,
    119119    MOVW_READ_RM_OPCODE = 0x6001,
     120    MOVW_READ_RMINC_OPCODE = 0x6005,
    120121    MOVW_READ_R0RM_OPCODE = 0x000d,
    121122    MOVW_READ_OFFRM_OPCODE = 0x8500,
     
    10391040    }
    10401041
     1042    void movwMemRegIn(RegisterID base, RegisterID dst)
     1043    {
     1044        uint16_t opc = getOpcodeGroup1(MOVW_READ_RMINC_OPCODE, dst, base);
     1045        oneShortOp(opc);
     1046    }
     1047
    10411048    void movwPCReg(int offset, RegisterID base, RegisterID dst)
    10421049    {
     
    11311138    {
    11321139        uint16_t opc = getOpcodeGroup1(MOVB_READ_RM_OPCODE, dst, src);
     1140        oneShortOp(opc);
     1141    }
     1142
     1143    void movbMemRegIn(RegisterID base, RegisterID dst)
     1144    {
     1145        uint16_t opc = getOpcodeGroup1(MOVB_READ_RMINC_OPCODE, dst, base);
    11331146        oneShortOp(opc);
    11341147    }
     
    19591972            format = "    MOV.W @R%d, R%d\n";
    19601973            break;
     1974        case MOVW_READ_RMINC_OPCODE:
     1975            format = "    MOV.W @R%d+, R%d\n";
     1976            break;
    19611977        case MOVW_READ_R0RM_OPCODE:
    19621978            format = "    MOV.W @(R0, R%d), R%d\n";
Note: See TracChangeset for help on using the changeset viewer.