Changeset 38971 in webkit for trunk/JavaScriptCore


Ignore:
Timestamp:
Dec 3, 2008, 2:54:36 PM (16 years ago)
Author:
[email protected]
Message:

2008-12-03 Geoffrey Garen <[email protected]>

Reviewed by Oliver Hunt, with help from Gavin Barraclough.


orl_i32r was actually coded as an 8bit OR. So, I renamed orl_i32r to
orl_i8r, changed all orl_i32r clients to use orl_i8r, and then added
a new orl_i32r that actually does a 32bit OR.


(32bit OR is currently unused, but a patch I'm working on uses it.)

  • assembler/MacroAssembler.h: (JSC::MacroAssembler::or32): Updated to choose between 8bit and 32bit OR.
  • assembler/X86Assembler.h: (JSC::X86Assembler::orl_i8r): The old orl_i32r. (JSC::X86Assembler::orl_i32r): The new orl_i32r.


  • jit/JIT.cpp: (JSC::JIT::emitFastArithPotentiallyReTagImmediate): (JSC::JIT::emitTagAsBoolImmediate): Use orl_i8r, since we're ORing 8bit values.
Location:
trunk/JavaScriptCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r38959 r38971  
     12008-12-03  Geoffrey Garen  <[email protected]>
     2
     3        Reviewed by Oliver Hunt, with help from Gavin Barraclough.
     4       
     5        orl_i32r was actually coded as an 8bit OR. So, I renamed orl_i32r to
     6        orl_i8r, changed all orl_i32r clients to use orl_i8r, and then added
     7        a new orl_i32r that actually does a 32bit OR.
     8       
     9        (32bit OR is currently unused, but a patch I'm working on uses it.)
     10
     11        * assembler/MacroAssembler.h:
     12        (JSC::MacroAssembler::or32): Updated to choose between 8bit and 32bit OR.
     13
     14        * assembler/X86Assembler.h:
     15        (JSC::X86Assembler::orl_i8r): The old orl_i32r.
     16        (JSC::X86Assembler::orl_i32r): The new orl_i32r.
     17       
     18        * jit/JIT.cpp:
     19        (JSC::JIT::emitFastArithPotentiallyReTagImmediate):
     20        (JSC::JIT::emitTagAsBoolImmediate): Use orl_i8r, since we're ORing 8bit
     21        values.
     22
    1232008-12-03  Dean Jackson  <[email protected]>
    224
  • trunk/JavaScriptCore/assembler/MacroAssembler.h

    r38857 r38971  
    285285    void or32(Imm32 imm, RegisterID dest)
    286286    {
    287         m_assembler.orl_i32r(imm.m_value, dest);
     287        if (CAN_SIGN_EXTEND_8_32(imm.m_value))
     288            m_assembler.orl_i8r(imm.m_value, dest);
     289        else
     290            m_assembler.orl_i32r(imm.m_value, dest);
    288291    }
    289292
  • trunk/JavaScriptCore/assembler/X86Assembler.h

    r38917 r38971  
    450450    }
    451451
    452     void orl_i32r(int imm, RegisterID dst)
     452    void orl_i8r(int imm, RegisterID dst)
    453453    {
    454454        m_buffer->putByte(OP_GROUP1_EvIb);
    455455        modRm_opr(GROUP1_OP_OR, dst);
    456456        m_buffer->putByte(imm);
     457    }
     458
     459    void orl_i32r(int imm, RegisterID dst)
     460    {
     461        m_buffer->putByte(OP_GROUP1_EvIz);
     462        modRm_opr(GROUP1_OP_OR, dst);
     463        m_buffer->putInt(imm);
    457464    }
    458465
  • trunk/JavaScriptCore/jit/JIT.cpp

    r38928 r38971  
    562562ALWAYS_INLINE void JIT::emitFastArithPotentiallyReTagImmediate(RegisterID reg)
    563563{
    564     __ orl_i32r(JSImmediate::TagBitTypeInteger, reg);
     564    __ orl_i8r(JSImmediate::TagBitTypeInteger, reg);
    565565}
    566566
     
    586586{
    587587    __ shl_i8r(JSImmediate::ExtendedPayloadShift, reg);
    588     __ orl_i32r(JSImmediate::FullTagTypeBool, reg);
     588    __ orl_i8r(JSImmediate::FullTagTypeBool, reg);
    589589}
    590590
Note: See TracChangeset for help on using the changeset viewer.