Changeset 95652 in webkit


Ignore:
Timestamp:
Sep 21, 2011 11:33:43 AM (13 years ago)
Author:
barraclough@apple.com
Message:

MacroAssembler fixes.
https://bugs.webkit.org/show_bug.cgi?id=68494

Reviewed by Sam Weinig.

Add X86-64's 3 operand or32 to other MacroAssembler, fix load32's [const] void* mismatch

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::orPtr):
(JSC::MacroAssembler::loadPtr):

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::or32):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::or32):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::or32):

  • assembler/MacroAssemblerSH4.h:

(JSC::MacroAssemblerSH4::or32):
(JSC::MacroAssemblerSH4::load32):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::load32):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::load32):

Location:
trunk/Source/JavaScriptCore
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r95596 r95652  
     12011-09-20  Gavin Barraclough  <barraclough@apple.com>
     2
     3        MacroAssembler fixes.
     4        https://bugs.webkit.org/show_bug.cgi?id=68494
     5
     6        Reviewed by Sam Weinig.
     7
     8        Add X86-64's 3 operand or32 to other MacroAssembler, fix load32's [const] void* mismatch
     9
     10        * assembler/MacroAssembler.h:
     11        (JSC::MacroAssembler::orPtr):
     12        (JSC::MacroAssembler::loadPtr):
     13        * assembler/MacroAssemblerARM.h:
     14        (JSC::MacroAssemblerARM::or32):
     15        * assembler/MacroAssemblerARMv7.h:
     16        (JSC::MacroAssemblerARMv7::or32):
     17        * assembler/MacroAssemblerMIPS.h:
     18        (JSC::MacroAssemblerMIPS::or32):
     19        * assembler/MacroAssemblerSH4.h:
     20        (JSC::MacroAssemblerSH4::or32):
     21        (JSC::MacroAssemblerSH4::load32):
     22        * assembler/MacroAssemblerX86.h:
     23        (JSC::MacroAssemblerX86::load32):
     24        * assembler/MacroAssemblerX86_64.h:
     25        (JSC::MacroAssemblerX86_64::load32):
     26
    1272011-09-20  Geoffrey Garen  <ggaren@apple.com>
    228
  • trunk/Source/JavaScriptCore/assembler/MacroAssembler.h

    r90352 r95652  
    215215    }
    216216
     217    void orPtr(RegisterID op1, RegisterID op2, RegisterID dest)
     218    {
     219        or32(op1, op2, dest);
     220    }
     221
    217222    void orPtr(TrustedImmPtr imm, RegisterID dest)
    218223    {
     
    261266    }
    262267
    263     void loadPtr(void* address, RegisterID dest)
     268    void loadPtr(const void* address, RegisterID dest)
    264269    {
    265270        load32(address, dest);
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM.h

    r94987 r95652  
    170170    {
    171171        m_assembler.orrs_r(dest, dest, m_assembler.getImm(imm.m_value, ARMRegisters::S0));
     172    }
     173
     174    void or32(RegisterID op1, RegisterID op2, RegisterID dest)
     175    {
     176        m_assembler.orrs_r(dest, op1, op2);
    172177    }
    173178
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h

    r94981 r95652  
    285285    }
    286286
     287    void or32(RegisterID op1, RegisterID op2, RegisterID dest)
     288    {
     289        m_assembler.orr(dest, op1, op2);
     290    }
     291
    287292    void rshift32(RegisterID shift_amount, RegisterID dest)
    288293    {
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h

    r94981 r95652  
    300300    {
    301301        m_assembler.orInsn(dest, dest, src);
     302    }
     303
     304    void or32(RegisterID op1, RegisterID op2, RegisterID dest)
     305    {
     306        m_assembler.orInsn(dest, op1, op2);
    302307    }
    303308
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h

    r94981 r95652  
    222222    }
    223223
     224    void or32(RegisterID op1, RegisterID op2, RegisterID dest)
     225    {
     226        if (op1 == op2)
     227            move(op1, dest);
     228        else if (op1 == dest)
     229            or32(op2, dest);
     230        else {
     231            move(op2, dest);
     232            or32(op1, dest);
     233        }
     234    }
     235
    224236    void rshift32(RegisterID shiftamount, RegisterID dest)
    225237    {
     
    530542    }
    531543
    532     void load32(void* address, RegisterID dest)
    533     {
    534         m_assembler.loadConstant(reinterpret_cast<uint32_t>(address), dest);
     544    void load32(const void* address, RegisterID dest)
     545    {
     546        m_assembler.loadConstant(reinterpret_cast<uint32_t>(const_cast<void*>(address)), dest);
    535547        m_assembler.movlMemReg(dest, dest);
    536548    }
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86.h

    r94559 r95652  
    8484    }
    8585
    86     void load32(void* address, RegisterID dest)
     86    void load32(const void* address, RegisterID dest)
    8787    {
    8888        m_assembler.movl_mr(address, dest);
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h

    r94559 r95652  
    7878    }
    7979
    80     void load32(void* address, RegisterID dest)
     80    void load32(const void* address, RegisterID dest)
    8181    {
    8282        if (dest == X86Registers::eax)
Note: See TracChangeset for help on using the changeset viewer.