Changeset 36307 in webkit for trunk/JavaScriptCore/masm


Ignore:
Timestamp:
Sep 9, 2008, 6:11:55 PM (17 years ago)
Author:
[email protected]
Message:

2008-09-09 Cameron Zwarich <[email protected]>

Reviewed by Maciej Stachowiak.

Bug 20755: Create an X86 namespace for register names and other things
<https://bugs.webkit.org/show_bug.cgi?id=20755>

Create an X86 namespace to put X86 register names. Perhaps I will move
opcode names here later as well.

  • VM/CTI.cpp: (JSC::CTI::emitGetArg): (JSC::CTI::emitGetPutArg): (JSC::CTI::emitPutArg): (JSC::CTI::emitPutArgConstant): (JSC::CTI::emitPutCTIParam): (JSC::CTI::emitGetCTIParam): (JSC::CTI::emitPutToCallFrameHeader): (JSC::CTI::emitGetFromCallFrameHeader): (JSC::CTI::emitPutResult): (JSC::CTI::emitDebugExceptionCheck): (JSC::CTI::emitJumpSlowCaseIfNotImms): (JSC::CTI::compileOpCall): (JSC::CTI::emitSlowScriptCheck): (JSC::CTI::privateCompileMainPass): (JSC::CTI::privateCompileSlowCases): (JSC::CTI::privateCompile): (JSC::CTI::privateCompileGetByIdSelf): (JSC::CTI::privateCompileGetByIdProto): (JSC::CTI::privateCompileGetByIdChain): (JSC::CTI::privateCompilePutByIdReplace): (JSC::CTI::privateArrayLengthTrampoline): (JSC::CTI::privateStringLengthTrampoline): (JSC::CTI::compileRegExp):
  • VM/CTI.h:
  • masm/X86Assembler.h: (JSC::X86::): (JSC::X86Assembler::emitModRm_rm): (JSC::X86Assembler::emitModRm_rm_Unchecked): (JSC::X86Assembler::emitModRm_rmsib):
  • wrec/WREC.cpp: (JSC::WRECGenerator::generateNonGreedyQuantifier): (JSC::WRECGenerator::generateGreedyQuantifier): (JSC::WRECGenerator::generateParentheses): (JSC::WRECGenerator::generateBackreference): (JSC::WRECGenerator::gernerateDisjunction):
  • wrec/WREC.h:
File:
1 edited

Legend:

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

    r36301 r36307  
    148148#define CAN_SIGN_EXTEND_8_32(value) (value == ((int)(signed char)value))
    149149
    150 class X86Assembler {
    151 public:
     150namespace X86 {
    152151    typedef enum {
    153152        eax,
     
    160159        edi,
    161160
    162         NO_BASE = ebp,
    163         HAS_SIB = esp,
    164         NO_SCALE = esp,
     161        noBase = ebp,
     162        hasSib = esp,
     163        noScale = esp,
    165164    } RegisterID;
     165}
     166
     167class X86Assembler {
     168public:
     169    typedef X86::RegisterID RegisterID;
    166170
    167171    typedef enum {
     
    789793    void emitModRm_rm(RegisterID reg, void* addr)
    790794    {
    791         m_buffer->putByte(MODRM(0, reg, NO_BASE));
     795        m_buffer->putByte(MODRM(0, reg, X86::noBase));
    792796        m_buffer->putInt((int)addr);
    793797    }
     
    795799    void emitModRm_rm(RegisterID reg, RegisterID base)
    796800    {
    797         if (base == esp) {
    798             m_buffer->putByte(MODRM(0, reg, HAS_SIB));
    799             m_buffer->putByte(SIB(0, NO_SCALE, esp));
     801        if (base == X86::esp) {
     802            m_buffer->putByte(MODRM(0, reg, X86::hasSib));
     803            m_buffer->putByte(SIB(0, X86::noScale, X86::esp));
    800804        } else
    801805            m_buffer->putByte(MODRM(0, reg, base));
     
    804808    void emitModRm_rm_Unchecked(RegisterID reg, RegisterID base, int offset)
    805809    {
    806         if (base == esp) {
     810        if (base == X86::esp) {
    807811            if (CAN_SIGN_EXTEND_8_32(offset)) {
    808                 m_buffer->putByteUnchecked(MODRM(1, reg, HAS_SIB));
    809                 m_buffer->putByteUnchecked(SIB(0, NO_SCALE, esp));
     812                m_buffer->putByteUnchecked(MODRM(1, reg, X86::hasSib));
     813                m_buffer->putByteUnchecked(SIB(0, X86::noScale, X86::esp));
    810814                m_buffer->putByteUnchecked(offset);
    811815            } else {
    812                 m_buffer->putByteUnchecked(MODRM(2, reg, HAS_SIB));
    813                 m_buffer->putByteUnchecked(SIB(0, NO_SCALE, esp));
     816                m_buffer->putByteUnchecked(MODRM(2, reg, X86::hasSib));
     817                m_buffer->putByteUnchecked(SIB(0, X86::noScale, X86::esp));
    814818                m_buffer->putIntUnchecked(offset);
    815819            }
     
    837841            shift++;
    838842   
    839         m_buffer->putByte(MODRM(0, reg, HAS_SIB));
     843        m_buffer->putByte(MODRM(0, reg, X86::hasSib));
    840844        m_buffer->putByte(SIB(shift, index, base));
    841845    }
     
    848852   
    849853        if (CAN_SIGN_EXTEND_8_32(offset)) {
    850             m_buffer->putByte(MODRM(1, reg, HAS_SIB));
     854            m_buffer->putByte(MODRM(1, reg, X86::hasSib));
    851855            m_buffer->putByte(SIB(shift, index, base));
    852856            m_buffer->putByte(offset);
    853857        } else {
    854             m_buffer->putByte(MODRM(2, reg, HAS_SIB));
     858            m_buffer->putByte(MODRM(2, reg, X86::hasSib));
    855859            m_buffer->putByte(SIB(shift, index, base));
    856860            m_buffer->putInt(offset);
Note: See TracChangeset for help on using the changeset viewer.