Changeset 37991 in webkit for trunk/JavaScriptCore/masm


Ignore:
Timestamp:
Oct 29, 2008, 9:33:21 PM (17 years ago)
Author:
[email protected]
Message:

Initial work to reduce cost of JSNumberCell allocation

Reviewed by Geoffrey Garen

This does the initial work needed to bring more of number
allocation into CTI code directly, rather than just falling
back onto the slow paths if we can't guarantee that a number
cell can be reused.

Initial implementation only used by op_negate to make sure
it all works. In a negate heavy (though not dominated) test
it results in a 10% win in the non-reusable cell case.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/masm/X86Assembler.h

    r37804 r37991  
    229229        OP2_CVTTSD2SI_GdWsd = 0x2C,
    230230        OP2_UCOMISD_VsdWsd  = 0x2E,
     231        OP2_XORPD_VsdWsd    = 0x57,
    231232        OP2_ADDSD_VsdWsd    = 0x58,
    232233        OP2_MULSD_VsdWsd    = 0x59,
     
    264265
    265266        GROUP3_OP_TEST = 0,
     267        GROUP3_OP_NEG  = 3,
    266268        GROUP3_OP_IDIV = 7,
    267269
     
    606608    }
    607609
     610    void negl_r(RegisterID dst)
     611    {
     612        m_buffer->putByte(OP_GROUP3_Ev);
     613        emitModRm_opr(GROUP3_OP_NEG, dst);
     614    }
     615
    608616    void cdq()
    609617    {
     
    740748        m_buffer->putByte(OP2_MOVSD_VsdWsd);
    741749        emitModRm_rm((RegisterID)dst, base, offset);
     750    }
     751
     752    void xorpd_mr(void* addr, XMMRegisterID dst)
     753    {
     754        m_buffer->putByte(PRE_SSE_66);
     755        m_buffer->putByte(OP_2BYTE_ESCAPE);
     756        m_buffer->putByte(OP2_XORPD_VsdWsd);
     757        emitModRm_rm((RegisterID)dst, addr);
    742758    }
    743759
Note: See TracChangeset for help on using the changeset viewer.