Changeset 47530 in webkit for trunk/JavaScriptCore/assembler


Ignore:
Timestamp:
Aug 19, 2009, 5:02:24 PM (16 years ago)
Author:
[email protected]
Message:

2009-08-19 Yong Li <[email protected]>

Reviewed by Gavin Barraclough.

Change namespace ARM to ARMRegisters
X86 to X86Registers to avoid conflict with macros
https://bugs.webkit.org/show_bug.cgi?id=28428

  • assembler/ARMAssembler.cpp:
  • assembler/ARMAssembler.h:
  • assembler/ARMv7Assembler.h:
  • assembler/MacroAssemblerARM.h:
  • assembler/MacroAssemblerARMv7.h:
  • assembler/MacroAssemblerX86Common.h:
  • assembler/MacroAssemblerX86_64.h:
  • assembler/X86Assembler.h:
  • jit/JIT.h:
  • jit/JITArithmetic.cpp:
  • jit/JITInlineMethods.h:
  • jit/JITOpcodes.cpp:
  • wrec/WRECGenerator.cpp:
  • wrec/WRECGenerator.h:
  • yarr/RegexJIT.cpp:
Location:
trunk/JavaScriptCore/assembler
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/assembler/ARMAssembler.cpp

    r47186 r47530  
    292292            dtr_u(isLoad, srcDst, base, offset);
    293293        else if (offset <= 0xfffff) {
    294             add_r(ARM::S0, base, OP2_IMM | (offset >> 12) | (10 << 8));
    295             dtr_u(isLoad, srcDst, ARM::S0, offset & 0xfff);
     294            add_r(ARMRegisters::S0, base, OP2_IMM | (offset >> 12) | (10 << 8));
     295            dtr_u(isLoad, srcDst, ARMRegisters::S0, offset & 0xfff);
    296296        } else {
    297             ARMWord reg = getImm(offset, ARM::S0);
     297            ARMWord reg = getImm(offset, ARMRegisters::S0);
    298298            dtr_ur(isLoad, srcDst, base, reg);
    299299        }
     
    303303            dtr_d(isLoad, srcDst, base, offset);
    304304        else if (offset <= 0xfffff) {
    305             sub_r(ARM::S0, base, OP2_IMM | (offset >> 12) | (10 << 8));
    306             dtr_d(isLoad, srcDst, ARM::S0, offset & 0xfff);
     305            sub_r(ARMRegisters::S0, base, OP2_IMM | (offset >> 12) | (10 << 8));
     306            dtr_d(isLoad, srcDst, ARMRegisters::S0, offset & 0xfff);
    307307        } else {
    308             ARMWord reg = getImm(offset, ARM::S0);
     308            ARMWord reg = getImm(offset, ARMRegisters::S0);
    309309            dtr_dr(isLoad, srcDst, base, reg);
    310310        }
     
    320320
    321321    if (offset >= 0 && offset <= 0xfff) {
    322         add_r(ARM::S0, base, op2);
    323         dtr_u(isLoad, srcDst, ARM::S0, offset);
     322        add_r(ARMRegisters::S0, base, op2);
     323        dtr_u(isLoad, srcDst, ARMRegisters::S0, offset);
    324324        return;
    325325    }
    326326    if (offset <= 0 && offset >= -0xfff) {
    327         add_r(ARM::S0, base, op2);
    328         dtr_d(isLoad, srcDst, ARM::S0, -offset);
    329         return;
    330     }
    331 
    332     ldr_un_imm(ARM::S0, offset);
    333     add_r(ARM::S0, ARM::S0, op2);
    334     dtr_ur(isLoad, srcDst, base, ARM::S0);
     327        add_r(ARMRegisters::S0, base, op2);
     328        dtr_d(isLoad, srcDst, ARMRegisters::S0, -offset);
     329        return;
     330    }
     331
     332    ldr_un_imm(ARMRegisters::S0, offset);
     333    add_r(ARMRegisters::S0, ARMRegisters::S0, op2);
     334    dtr_ur(isLoad, srcDst, base, ARMRegisters::S0);
    335335}
    336336
     
    343343        }
    344344        if (offset <= 0x3ffff && offset >= 0) {
    345             add_r(ARM::S0, base, OP2_IMM | (offset >> 10) | (11 << 8));
    346             fdtr_u(isLoad, srcDst, ARM::S0, (offset >> 2) & 0xff);
     345            add_r(ARMRegisters::S0, base, OP2_IMM | (offset >> 10) | (11 << 8));
     346            fdtr_u(isLoad, srcDst, ARMRegisters::S0, (offset >> 2) & 0xff);
    347347            return;
    348348        }
     
    354354        }
    355355        if (offset <= 0x3ffff && offset >= 0) {
    356             sub_r(ARM::S0, base, OP2_IMM | (offset >> 10) | (11 << 8));
    357             fdtr_d(isLoad, srcDst, ARM::S0, (offset >> 2) & 0xff);
     356            sub_r(ARMRegisters::S0, base, OP2_IMM | (offset >> 10) | (11 << 8));
     357            fdtr_d(isLoad, srcDst, ARMRegisters::S0, (offset >> 2) & 0xff);
    358358            return;
    359359        }
     
    361361    }
    362362
    363     ldr_un_imm(ARM::S0, offset);
    364     add_r(ARM::S0, ARM::S0, base);
    365     fdtr_u(isLoad, srcDst, ARM::S0, 0);
     363    ldr_un_imm(ARMRegisters::S0, offset);
     364    add_r(ARMRegisters::S0, ARMRegisters::S0, base);
     365    fdtr_u(isLoad, srcDst, ARMRegisters::S0, 0);
    366366}
    367367
  • trunk/JavaScriptCore/assembler/ARMAssembler.h

    r47265 r47530  
    3636namespace JSC {
    3737
    38 typedef uint32_t ARMWord;
    39 
    40 namespace ARM {
    41     typedef enum {
    42         r0 = 0,
    43         r1,
    44         r2,
    45         r3,
    46         S0 = r3,
    47         r4,
    48         r5,
    49         r6,
    50         r7,
    51         r8,
    52         S1 = r8,
    53         r9,
    54         r10,
    55         r11,
    56         r12,
    57         r13,
    58         sp = r13,
    59         r14,
    60         lr = r14,
    61         r15,
    62         pc = r15
    63     } RegisterID;
    64 
    65     typedef enum {
    66         d0,
    67         d1,
    68         d2,
    69         d3,
    70         SD0 = d3
    71     } FPRegisterID;
    72 
    73 } // namespace ARM
     38    typedef uint32_t ARMWord;
     39
     40    namespace ARMRegisters {
     41        typedef enum {
     42            r0 = 0,
     43            r1,
     44            r2,
     45            r3,
     46            S0 = r3,
     47            r4,
     48            r5,
     49            r6,
     50            r7,
     51            r8,
     52            S1 = r8,
     53            r9,
     54            r10,
     55            r11,
     56            r12,
     57            r13,
     58            sp = r13,
     59            r14,
     60            lr = r14,
     61            r15,
     62            pc = r15
     63        } RegisterID;
     64
     65        typedef enum {
     66            d0,
     67            d1,
     68            d2,
     69            d3,
     70            SD0 = d3
     71        } FPRegisterID;
     72
     73    } // namespace ARMRegisters
    7474
    7575    class ARMAssembler {
    7676    public:
    77         typedef ARM::RegisterID RegisterID;
    78         typedef ARM::FPRegisterID FPRegisterID;
     77        typedef ARMRegisters::RegisterID RegisterID;
     78        typedef ARMRegisters::FPRegisterID FPRegisterID;
    7979        typedef AssemblerBufferWithConstantPool<2048, 4, 4, ARMAssembler> ARMBuffer;
    8080        typedef SegmentedVector<int, 64> Jumps;
     
    331331        void mov_r(int rd, ARMWord op2, Condition cc = AL)
    332332        {
    333             emitInst(static_cast<ARMWord>(cc) | MOV, rd, ARM::r0, op2);
     333            emitInst(static_cast<ARMWord>(cc) | MOV, rd, ARMRegisters::r0, op2);
    334334        }
    335335
    336336        void movs_r(int rd, ARMWord op2, Condition cc = AL)
    337337        {
    338             emitInst(static_cast<ARMWord>(cc) | MOV | SET_CC, rd, ARM::r0, op2);
     338            emitInst(static_cast<ARMWord>(cc) | MOV | SET_CC, rd, ARMRegisters::r0, op2);
    339339        }
    340340
     
    351351        void mvn_r(int rd, ARMWord op2, Condition cc = AL)
    352352        {
    353             emitInst(static_cast<ARMWord>(cc) | MVN, rd, ARM::r0, op2);
     353            emitInst(static_cast<ARMWord>(cc) | MVN, rd, ARMRegisters::r0, op2);
    354354        }
    355355
    356356        void mvns_r(int rd, ARMWord op2, Condition cc = AL)
    357357        {
    358             emitInst(static_cast<ARMWord>(cc) | MVN | SET_CC, rd, ARM::r0, op2);
     358            emitInst(static_cast<ARMWord>(cc) | MVN | SET_CC, rd, ARMRegisters::r0, op2);
    359359        }
    360360
     
    396396        void ldr_imm(int rd, ARMWord imm, Condition cc = AL)
    397397        {
    398             m_buffer.putIntWithConstantInt(static_cast<ARMWord>(cc) | DTR | DT_LOAD | DT_UP | RN(ARM::pc) | RD(rd), imm, true);
     398            m_buffer.putIntWithConstantInt(static_cast<ARMWord>(cc) | DTR | DT_LOAD | DT_UP | RN(ARMRegisters::pc) | RD(rd), imm, true);
    399399        }
    400400
    401401        void ldr_un_imm(int rd, ARMWord imm, Condition cc = AL)
    402402        {
    403             m_buffer.putIntWithConstantInt(static_cast<ARMWord>(cc) | DTR | DT_LOAD | DT_UP | RN(ARM::pc) | RD(rd), imm);
     403            m_buffer.putIntWithConstantInt(static_cast<ARMWord>(cc) | DTR | DT_LOAD | DT_UP | RN(ARMRegisters::pc) | RD(rd), imm);
    404404        }
    405405
     
    459459        {
    460460            ASSERT(ARMWord(reg) <= 0xf);
    461             m_buffer.putInt(cc | DTR | DT_WB | RN(ARM::sp) | RD(reg) | 0x4);
     461            m_buffer.putInt(cc | DTR | DT_WB | RN(ARMRegisters::sp) | RD(reg) | 0x4);
    462462        }
    463463
     
    465465        {
    466466            ASSERT(ARMWord(reg) <= 0xf);
    467             m_buffer.putInt(cc | (DTR ^ DT_PRE) | DT_LOAD | DT_UP | RN(ARM::sp) | RD(reg) | 0x4);
     467            m_buffer.putInt(cc | (DTR ^ DT_PRE) | DT_LOAD | DT_UP | RN(ARMRegisters::sp) | RD(reg) | 0x4);
    468468        }
    469469
    470470        inline void poke_r(int reg, Condition cc = AL)
    471471        {
    472             dtr_d(false, ARM::sp, 0, reg, cc);
     472            dtr_d(false, ARMRegisters::sp, 0, reg, cc);
    473473        }
    474474
    475475        inline void peek_r(int reg, Condition cc = AL)
    476476        {
    477             dtr_u(true, reg, ARM::sp, 0, cc);
     477            dtr_u(true, reg, ARMRegisters::sp, 0, cc);
    478478        }
    479479
     
    506506#else
    507507            // Cannot access to Zero memory address
    508             dtr_dr(true, ARM::S0, ARM::S0, ARM::S0);
     508            dtr_dr(true, ARMRegisters::S0, ARMRegisters::S0, ARMRegisters::S0);
    509509#endif
    510510        }
     
    512512        static ARMWord lsl(int reg, ARMWord value)
    513513        {
    514             ASSERT(reg <= ARM::pc);
     514            ASSERT(reg <= ARMRegisters::pc);
    515515            ASSERT(value <= 0x1f);
    516516            return reg | (value << 7) | 0x00;
     
    519519        static ARMWord lsr(int reg, ARMWord value)
    520520        {
    521             ASSERT(reg <= ARM::pc);
     521            ASSERT(reg <= ARMRegisters::pc);
    522522            ASSERT(value <= 0x1f);
    523523            return reg | (value << 7) | 0x20;
     
    526526        static ARMWord asr(int reg, ARMWord value)
    527527        {
    528             ASSERT(reg <= ARM::pc);
     528            ASSERT(reg <= ARMRegisters::pc);
    529529            ASSERT(value <= 0x1f);
    530530            return reg | (value << 7) | 0x40;
     
    533533        static ARMWord lsl_r(int reg, int shiftReg)
    534534        {
    535             ASSERT(reg <= ARM::pc);
    536             ASSERT(shiftReg <= ARM::pc);
     535            ASSERT(reg <= ARMRegisters::pc);
     536            ASSERT(shiftReg <= ARMRegisters::pc);
    537537            return reg | (shiftReg << 8) | 0x10;
    538538        }
     
    540540        static ARMWord lsr_r(int reg, int shiftReg)
    541541        {
    542             ASSERT(reg <= ARM::pc);
    543             ASSERT(shiftReg <= ARM::pc);
     542            ASSERT(reg <= ARMRegisters::pc);
     543            ASSERT(shiftReg <= ARMRegisters::pc);
    544544            return reg | (shiftReg << 8) | 0x30;
    545545        }
     
    547547        static ARMWord asr_r(int reg, int shiftReg)
    548548        {
    549             ASSERT(reg <= ARM::pc);
    550             ASSERT(shiftReg <= ARM::pc);
     549            ASSERT(reg <= ARMRegisters::pc);
     550            ASSERT(shiftReg <= ARMRegisters::pc);
    551551            return reg | (shiftReg << 8) | 0x50;
    552552        }
     
    577577        {
    578578            while (!m_buffer.isAligned(alignment))
    579                 mov_r(ARM::r0, ARM::r0);
     579                mov_r(ARMRegisters::r0, ARMRegisters::r0);
    580580
    581581            return label();
     
    586586            ensureSpace(sizeof(ARMWord), sizeof(ARMWord));
    587587            int s = m_buffer.uncheckedSize();
    588             ldr_un_imm(ARM::pc, 0xffffffff, cc);
     588            ldr_un_imm(ARMRegisters::pc, 0xffffffff, cc);
    589589            m_jumps.append(s | (useConstantPool & 0x1));
    590590            return JmpSrc(s);
     
    730730        ARMWord RM(int reg)
    731731        {
    732             ASSERT(reg <= ARM::pc);
     732            ASSERT(reg <= ARMRegisters::pc);
    733733            return reg;
    734734        }
     
    736736        ARMWord RS(int reg)
    737737        {
    738             ASSERT(reg <= ARM::pc);
     738            ASSERT(reg <= ARMRegisters::pc);
    739739            return reg << 8;
    740740        }
     
    742742        ARMWord RD(int reg)
    743743        {
    744             ASSERT(reg <= ARM::pc);
     744            ASSERT(reg <= ARMRegisters::pc);
    745745            return reg << 12;
    746746        }
     
    748748        ARMWord RN(int reg)
    749749        {
    750             ASSERT(reg <= ARM::pc);
     750            ASSERT(reg <= ARMRegisters::pc);
    751751            return reg << 16;
    752752        }
  • trunk/JavaScriptCore/assembler/ARMv7Assembler.h

    r47186 r47530  
    3838namespace JSC {
    3939
    40 namespace ARM {
     40namespace ARMRegisters {
    4141    typedef enum {
    4242        r0,
     
    408408class ARMv7Assembler {
    409409public:
    410     typedef ARM::RegisterID RegisterID;
    411     typedef ARM::FPRegisterID FPRegisterID;
     410    typedef ARMRegisters::RegisterID RegisterID;
     411    typedef ARMRegisters::FPRegisterID FPRegisterID;
    412412
    413413    // (HS, LO, HI, LS) -> (AE, B, A, BE)
     
    481481    bool BadReg(RegisterID reg)
    482482    {
    483         return (reg == ARM::sp) || (reg == ARM::pc);
     483        return (reg == ARMRegisters::sp) || (reg == ARMRegisters::pc);
    484484    }
    485485
     
    693693    {
    694694        // Rd can only be SP if Rn is also SP.
    695         ASSERT((rd != ARM::sp) || (rn == ARM::sp));
    696         ASSERT(rd != ARM::pc);
    697         ASSERT(rn != ARM::pc);
     695        ASSERT((rd != ARMRegisters::sp) || (rn == ARMRegisters::sp));
     696        ASSERT(rd != ARMRegisters::pc);
     697        ASSERT(rn != ARMRegisters::pc);
    698698        ASSERT(imm.isValid());
    699699
    700         if (rn == ARM::sp) {
     700        if (rn == ARMRegisters::sp) {
    701701            if (!(rd & 8) && imm.isUInt10()) {
    702702                m_formatter.oneWordOp5Reg3Imm8(OP_ADD_SP_imm_T1, rd, imm.getUInt10() >> 2);
    703703                return;
    704             } else if ((rd == ARM::sp) && imm.isUInt9()) {
     704            } else if ((rd == ARMRegisters::sp) && imm.isUInt9()) {
    705705                m_formatter.oneWordOp9Imm7(OP_ADD_SP_imm_T2, imm.getUInt9() >> 2);
    706706                return;
     
    726726    void add(RegisterID rd, RegisterID rn, RegisterID rm, ShiftTypeAndAmount shift)
    727727    {
    728         ASSERT((rd != ARM::sp) || (rn == ARM::sp));
    729         ASSERT(rd != ARM::pc);
    730         ASSERT(rn != ARM::pc);
     728        ASSERT((rd != ARMRegisters::sp) || (rn == ARMRegisters::sp));
     729        ASSERT(rd != ARMRegisters::pc);
     730        ASSERT(rn != ARMRegisters::pc);
    731731        ASSERT(!BadReg(rm));
    732732        m_formatter.twoWordOp12Reg4FourFours(OP_ADD_reg_T3, rn, FourFours(shift.hi4(), rd, shift.lo4(), rm));
     
    750750    {
    751751        // Rd can only be SP if Rn is also SP.
    752         ASSERT((rd != ARM::sp) || (rn == ARM::sp));
    753         ASSERT(rd != ARM::pc);
    754         ASSERT(rn != ARM::pc);
     752        ASSERT((rd != ARMRegisters::sp) || (rn == ARMRegisters::sp));
     753        ASSERT(rd != ARMRegisters::pc);
     754        ASSERT(rn != ARMRegisters::pc);
    755755        ASSERT(imm.isEncodedImm());
    756756
     
    771771    void add_S(RegisterID rd, RegisterID rn, RegisterID rm, ShiftTypeAndAmount shift)
    772772    {
    773         ASSERT((rd != ARM::sp) || (rn == ARM::sp));
    774         ASSERT(rd != ARM::pc);
    775         ASSERT(rn != ARM::pc);
     773        ASSERT((rd != ARMRegisters::sp) || (rn == ARMRegisters::sp));
     774        ASSERT(rd != ARMRegisters::pc);
     775        ASSERT(rn != ARMRegisters::pc);
    776776        ASSERT(!BadReg(rm));
    777777        m_formatter.twoWordOp12Reg4FourFours(OP_ADD_S_reg_T3, rn, FourFours(shift.hi4(), rd, shift.lo4(), rm));
     
    839839    JmpSrc blx(RegisterID rm)
    840840    {
    841         ASSERT(rm != ARM::pc);
     841        ASSERT(rm != ARMRegisters::pc);
    842842        m_formatter.oneWordOp8RegReg143(OP_BLX, rm, (RegisterID)8);
    843843        return JmpSrc(m_formatter.size());
     
    858858    void cmn(RegisterID rn, ARMThumbImmediate imm)
    859859    {
    860         ASSERT(rn != ARM::pc);
     860        ASSERT(rn != ARMRegisters::pc);
    861861        ASSERT(imm.isEncodedImm());
    862862
     
    866866    void cmp(RegisterID rn, ARMThumbImmediate imm)
    867867    {
    868         ASSERT(rn != ARM::pc);
     868        ASSERT(rn != ARMRegisters::pc);
    869869        ASSERT(imm.isEncodedImm());
    870870
     
    877877    void cmp(RegisterID rn, RegisterID rm, ShiftTypeAndAmount shift)
    878878    {
    879         ASSERT(rn != ARM::pc);
     879        ASSERT(rn != ARMRegisters::pc);
    880880        ASSERT(!BadReg(rm));
    881881        m_formatter.twoWordOp12Reg4FourFours(OP_CMP_reg_T2, rn, FourFours(shift.hi4(), 0xf, shift.lo4(), rm));
     
    939939    }
    940940
    941     // rt == ARM::pc only allowed if last instruction in IT (if then) block.
     941    // rt == ARMRegisters::pc only allowed if last instruction in IT (if then) block.
    942942    void ldr(RegisterID rt, RegisterID rn, ARMThumbImmediate imm)
    943943    {
    944         ASSERT(rn != ARM::pc); // LDR (literal)
     944        ASSERT(rn != ARMRegisters::pc); // LDR (literal)
    945945        ASSERT(imm.isUInt12());
    946946
    947947        if (!((rt | rn) & 8) && imm.isUInt7())
    948948            m_formatter.oneWordOp5Imm5Reg3Reg3(OP_LDR_imm_T1, imm.getUInt7() >> 2, rn, rt);
    949         else if ((rn == ARM::sp) && !(rt & 8) && imm.isUInt10())
     949        else if ((rn == ARMRegisters::sp) && !(rt & 8) && imm.isUInt10())
    950950            m_formatter.oneWordOp5Reg3Imm8(OP_LDR_imm_T2, rt, imm.getUInt10() >> 2);
    951951        else
     
    966966    void ldr(RegisterID rt, RegisterID rn, int offset, bool index, bool wback)
    967967    {
    968         ASSERT(rt != ARM::pc);
    969         ASSERT(rn != ARM::pc);
     968        ASSERT(rt != ARMRegisters::pc);
     969        ASSERT(rn != ARMRegisters::pc);
    970970        ASSERT(index || wback);
    971971        ASSERT(!wback | (rt != rn));
     
    986986    }
    987987
    988     // rt == ARM::pc only allowed if last instruction in IT (if then) block.
     988    // rt == ARMRegisters::pc only allowed if last instruction in IT (if then) block.
    989989    void ldr(RegisterID rt, RegisterID rn, RegisterID rm, unsigned shift=0)
    990990    {
    991         ASSERT(rn != ARM::pc); // LDR (literal)
     991        ASSERT(rn != ARMRegisters::pc); // LDR (literal)
    992992        ASSERT(!BadReg(rm));
    993993        ASSERT(shift <= 3);
     
    999999    }
    10001000
    1001     // rt == ARM::pc only allowed if last instruction in IT (if then) block.
     1001    // rt == ARMRegisters::pc only allowed if last instruction in IT (if then) block.
    10021002    void ldrh(RegisterID rt, RegisterID rn, ARMThumbImmediate imm)
    10031003    {
    1004         ASSERT(rn != ARM::pc); // LDR (literal)
     1004        ASSERT(rn != ARMRegisters::pc); // LDR (literal)
    10051005        ASSERT(imm.isUInt12());
    10061006
     
    10241024    void ldrh(RegisterID rt, RegisterID rn, int offset, bool index, bool wback)
    10251025    {
    1026         ASSERT(rt != ARM::pc);
    1027         ASSERT(rn != ARM::pc);
     1026        ASSERT(rt != ARMRegisters::pc);
     1027        ASSERT(rn != ARMRegisters::pc);
    10281028        ASSERT(index || wback);
    10291029        ASSERT(!wback | (rt != rn));
     
    10471047    {
    10481048        ASSERT(!BadReg(rt));   // Memory hint
    1049         ASSERT(rn != ARM::pc); // LDRH (literal)
     1049        ASSERT(rn != ARMRegisters::pc); // LDRH (literal)
    10501050        ASSERT(!BadReg(rm));
    10511051        ASSERT(shift <= 3);
     
    11981198    }
    11991199
    1200     // rt == ARM::pc only allowed if last instruction in IT (if then) block.
     1200    // rt == ARMRegisters::pc only allowed if last instruction in IT (if then) block.
    12011201    void str(RegisterID rt, RegisterID rn, ARMThumbImmediate imm)
    12021202    {
    1203         ASSERT(rt != ARM::pc);
    1204         ASSERT(rn != ARM::pc);
     1203        ASSERT(rt != ARMRegisters::pc);
     1204        ASSERT(rn != ARMRegisters::pc);
    12051205        ASSERT(imm.isUInt12());
    12061206
    12071207        if (!((rt | rn) & 8) && imm.isUInt7())
    12081208            m_formatter.oneWordOp5Imm5Reg3Reg3(OP_STR_imm_T1, imm.getUInt7() >> 2, rn, rt);
    1209         else if ((rn == ARM::sp) && !(rt & 8) && imm.isUInt10())
     1209        else if ((rn == ARMRegisters::sp) && !(rt & 8) && imm.isUInt10())
    12101210            m_formatter.oneWordOp5Reg3Imm8(OP_STR_imm_T2, rt, imm.getUInt10() >> 2);
    12111211        else
     
    12261226    void str(RegisterID rt, RegisterID rn, int offset, bool index, bool wback)
    12271227    {
    1228         ASSERT(rt != ARM::pc);
    1229         ASSERT(rn != ARM::pc);
     1228        ASSERT(rt != ARMRegisters::pc);
     1229        ASSERT(rn != ARMRegisters::pc);
    12301230        ASSERT(index || wback);
    12311231        ASSERT(!wback | (rt != rn));
     
    12461246    }
    12471247
    1248     // rt == ARM::pc only allowed if last instruction in IT (if then) block.
     1248    // rt == ARMRegisters::pc only allowed if last instruction in IT (if then) block.
    12491249    void str(RegisterID rt, RegisterID rn, RegisterID rm, unsigned shift=0)
    12501250    {
    1251         ASSERT(rn != ARM::pc);
     1251        ASSERT(rn != ARMRegisters::pc);
    12521252        ASSERT(!BadReg(rm));
    12531253        ASSERT(shift <= 3);
     
    12621262    {
    12631263        // Rd can only be SP if Rn is also SP.
    1264         ASSERT((rd != ARM::sp) || (rn == ARM::sp));
    1265         ASSERT(rd != ARM::pc);
    1266         ASSERT(rn != ARM::pc);
     1264        ASSERT((rd != ARMRegisters::sp) || (rn == ARMRegisters::sp));
     1265        ASSERT(rd != ARMRegisters::pc);
     1266        ASSERT(rn != ARMRegisters::pc);
    12671267        ASSERT(imm.isValid());
    12681268
    1269         if ((rn == ARM::sp) && (rd == ARM::sp) && imm.isUInt9()) {
     1269        if ((rn == ARMRegisters::sp) && (rd == ARMRegisters::sp) && imm.isUInt9()) {
    12701270            m_formatter.oneWordOp9Imm7(OP_SUB_SP_imm_T1, imm.getUInt9() >> 2);
    12711271            return;
     
    12901290    void sub(RegisterID rd, RegisterID rn, RegisterID rm, ShiftTypeAndAmount shift)
    12911291    {
    1292         ASSERT((rd != ARM::sp) || (rn == ARM::sp));
    1293         ASSERT(rd != ARM::pc);
    1294         ASSERT(rn != ARM::pc);
     1292        ASSERT((rd != ARMRegisters::sp) || (rn == ARMRegisters::sp));
     1293        ASSERT(rd != ARMRegisters::pc);
     1294        ASSERT(rn != ARMRegisters::pc);
    12951295        ASSERT(!BadReg(rm));
    12961296        m_formatter.twoWordOp12Reg4FourFours(OP_SUB_reg_T2, rn, FourFours(shift.hi4(), rd, shift.lo4(), rm));
     
    13101310    {
    13111311        // Rd can only be SP if Rn is also SP.
    1312         ASSERT((rd != ARM::sp) || (rn == ARM::sp));
    1313         ASSERT(rd != ARM::pc);
    1314         ASSERT(rn != ARM::pc);
     1312        ASSERT((rd != ARMRegisters::sp) || (rn == ARMRegisters::sp));
     1313        ASSERT(rd != ARMRegisters::pc);
     1314        ASSERT(rn != ARMRegisters::pc);
    13151315        ASSERT(imm.isValid());
    13161316
    1317         if ((rn == ARM::sp) && (rd == ARM::sp) && imm.isUInt9()) {
     1317        if ((rn == ARMRegisters::sp) && (rd == ARMRegisters::sp) && imm.isUInt9()) {
    13181318            m_formatter.oneWordOp9Imm7(OP_SUB_SP_imm_T1, imm.getUInt9() >> 2);
    13191319            return;
     
    13341334    void sub_S(RegisterID rd, RegisterID rn, RegisterID rm, ShiftTypeAndAmount shift)
    13351335    {
    1336         ASSERT((rd != ARM::sp) || (rn == ARM::sp));
    1337         ASSERT(rd != ARM::pc);
    1338         ASSERT(rn != ARM::pc);
     1336        ASSERT((rd != ARMRegisters::sp) || (rn == ARMRegisters::sp));
     1337        ASSERT(rd != ARMRegisters::pc);
     1338        ASSERT(rn != ARMRegisters::pc);
    13391339        ASSERT(!BadReg(rm));
    13401340        m_formatter.twoWordOp12Reg4FourFours(OP_SUB_S_reg_T2, rn, FourFours(shift.hi4(), rd, shift.lo4(), rm));
  • trunk/JavaScriptCore/assembler/MacroAssemblerARM.h

    r47186 r47530  
    6565    };
    6666
    67     static const RegisterID stackPointerRegister = ARM::sp;
     67    static const RegisterID stackPointerRegister = ARMRegisters::sp;
    6868
    6969    static const Scale ScalePtr = TimesFour;
     
    7676    void add32(Imm32 imm, Address address)
    7777    {
    78         load32(address, ARM::S1);
    79         add32(imm, ARM::S1);
    80         store32(ARM::S1, address);
     78        load32(address, ARMRegisters::S1);
     79        add32(imm, ARMRegisters::S1);
     80        store32(ARMRegisters::S1, address);
    8181    }
    8282
    8383    void add32(Imm32 imm, RegisterID dest)
    8484    {
    85         m_assembler.adds_r(dest, dest, m_assembler.getImm(imm.m_value, ARM::S0));
     85        m_assembler.adds_r(dest, dest, m_assembler.getImm(imm.m_value, ARMRegisters::S0));
    8686    }
    8787
    8888    void add32(Address src, RegisterID dest)
    8989    {
    90         load32(src, ARM::S1);
    91         add32(ARM::S1, dest);
     90        load32(src, ARMRegisters::S1);
     91        add32(ARMRegisters::S1, dest);
    9292    }
    9393
     
    9999    void and32(Imm32 imm, RegisterID dest)
    100100    {
    101         ARMWord w = m_assembler.getImm(imm.m_value, ARM::S0, true);
     101        ARMWord w = m_assembler.getImm(imm.m_value, ARMRegisters::S0, true);
    102102        if (w & ARMAssembler::OP2_INV_IMM)
    103103            m_assembler.bics_r(dest, dest, w & ~ARMAssembler::OP2_INV_IMM);
     
    119119    {
    120120        if (src == dest) {
    121             move(src, ARM::S0);
    122             src = ARM::S0;
     121            move(src, ARMRegisters::S0);
     122            src = ARMRegisters::S0;
    123123        }
    124124        m_assembler.muls_r(dest, dest, src);
     
    127127    void mul32(Imm32 imm, RegisterID src, RegisterID dest)
    128128    {
    129         move(imm, ARM::S0);
    130         m_assembler.muls_r(dest, src, ARM::S0);
     129        move(imm, ARMRegisters::S0);
     130        m_assembler.muls_r(dest, src, ARMRegisters::S0);
    131131    }
    132132
     
    143143    void or32(Imm32 imm, RegisterID dest)
    144144    {
    145         m_assembler.orrs_r(dest, dest, m_assembler.getImm(imm.m_value, ARM::S0));
     145        m_assembler.orrs_r(dest, dest, m_assembler.getImm(imm.m_value, ARMRegisters::S0));
    146146    }
    147147
     
    163163    void sub32(Imm32 imm, RegisterID dest)
    164164    {
    165         m_assembler.subs_r(dest, dest, m_assembler.getImm(imm.m_value, ARM::S0));
     165        m_assembler.subs_r(dest, dest, m_assembler.getImm(imm.m_value, ARMRegisters::S0));
    166166    }
    167167
    168168    void sub32(Imm32 imm, Address address)
    169169    {
    170         load32(address, ARM::S1);
    171         sub32(imm, ARM::S1);
    172         store32(ARM::S1, address);
     170        load32(address, ARMRegisters::S1);
     171        sub32(imm, ARMRegisters::S1);
     172        store32(ARMRegisters::S1, address);
    173173    }
    174174
    175175    void sub32(Address src, RegisterID dest)
    176176    {
    177         load32(src, ARM::S1);
    178         sub32(ARM::S1, dest);
     177        load32(src, ARMRegisters::S1);
     178        sub32(ARMRegisters::S1, dest);
    179179    }
    180180
     
    186186    void xor32(Imm32 imm, RegisterID dest)
    187187    {
    188         m_assembler.eors_r(dest, dest, m_assembler.getImm(imm.m_value, ARM::S0));
     188        m_assembler.eors_r(dest, dest, m_assembler.getImm(imm.m_value, ARMRegisters::S0));
    189189    }
    190190
     
    202202    {
    203203        DataLabel32 dataLabel(this);
    204         m_assembler.ldr_un_imm(ARM::S0, 0);
    205         m_assembler.dtr_ur(true, dest, address.base, ARM::S0);
     204        m_assembler.ldr_un_imm(ARMRegisters::S0, 0);
     205        m_assembler.dtr_ur(true, dest, address.base, ARMRegisters::S0);
    206206        return dataLabel;
    207207    }
     
    216216    void load16(BaseIndex address, RegisterID dest)
    217217    {
    218         m_assembler.add_r(ARM::S0, address.base, m_assembler.lsl(address.index, address.scale));
     218        m_assembler.add_r(ARMRegisters::S0, address.base, m_assembler.lsl(address.index, address.scale));
    219219        if (address.offset>=0)
    220             m_assembler.ldrh_u(dest, ARM::S0, ARMAssembler::getOp2Byte(address.offset));
     220            m_assembler.ldrh_u(dest, ARMRegisters::S0, ARMAssembler::getOp2Byte(address.offset));
    221221        else
    222             m_assembler.ldrh_d(dest, ARM::S0, ARMAssembler::getOp2Byte(-address.offset));
     222            m_assembler.ldrh_d(dest, ARMRegisters::S0, ARMAssembler::getOp2Byte(-address.offset));
    223223    }
    224224
     
    226226    {
    227227        DataLabel32 dataLabel(this);
    228         m_assembler.ldr_un_imm(ARM::S0, 0);
    229         m_assembler.dtr_ur(false, src, address.base, ARM::S0);
     228        m_assembler.ldr_un_imm(ARMRegisters::S0, 0);
     229        m_assembler.dtr_ur(false, src, address.base, ARMRegisters::S0);
    230230        return dataLabel;
    231231    }
     
    244244    {
    245245        if (imm.m_isPointer)
    246             m_assembler.ldr_un_imm(ARM::S1, imm.m_value);
     246            m_assembler.ldr_un_imm(ARMRegisters::S1, imm.m_value);
    247247        else
    248             move(imm, ARM::S1);
    249         store32(ARM::S1, address);
     248            move(imm, ARMRegisters::S1);
     249        store32(ARMRegisters::S1, address);
    250250    }
    251251
    252252    void store32(RegisterID src, void* address)
    253253    {
    254         m_assembler.ldr_un_imm(ARM::S0, reinterpret_cast<ARMWord>(address));
    255         m_assembler.dtr_u(false, src, ARM::S0, 0);
     254        m_assembler.ldr_un_imm(ARMRegisters::S0, reinterpret_cast<ARMWord>(address));
     255        m_assembler.dtr_u(false, src, ARMRegisters::S0, 0);
    256256    }
    257257
    258258    void store32(Imm32 imm, void* address)
    259259    {
    260         m_assembler.ldr_un_imm(ARM::S0, reinterpret_cast<ARMWord>(address));
     260        m_assembler.ldr_un_imm(ARMRegisters::S0, reinterpret_cast<ARMWord>(address));
    261261        if (imm.m_isPointer)
    262             m_assembler.ldr_un_imm(ARM::S1, imm.m_value);
     262            m_assembler.ldr_un_imm(ARMRegisters::S1, imm.m_value);
    263263        else
    264             m_assembler.moveImm(imm.m_value, ARM::S1);
    265         m_assembler.dtr_u(false, ARM::S1, ARM::S0, 0);
     264            m_assembler.moveImm(imm.m_value, ARMRegisters::S1);
     265        m_assembler.dtr_u(false, ARMRegisters::S1, ARMRegisters::S0, 0);
    266266    }
    267267
     
    278278    void push(Address address)
    279279    {
    280         load32(address, ARM::S1);
    281         push(ARM::S1);
     280        load32(address, ARMRegisters::S1);
     281        push(ARMRegisters::S1);
    282282    }
    283283
    284284    void push(Imm32 imm)
    285285    {
    286         move(imm, ARM::S0);
    287         push(ARM::S0);
     286        move(imm, ARMRegisters::S0);
     287        push(ARMRegisters::S0);
    288288    }
    289289
     
    308308    void swap(RegisterID reg1, RegisterID reg2)
    309309    {
    310         m_assembler.mov_r(ARM::S0, reg1);
     310        m_assembler.mov_r(ARMRegisters::S0, reg1);
    311311        m_assembler.mov_r(reg1, reg2);
    312         m_assembler.mov_r(reg2, ARM::S0);
     312        m_assembler.mov_r(reg2, ARMRegisters::S0);
    313313    }
    314314
     
    334334    {
    335335        if (right.m_isPointer) {
    336             m_assembler.ldr_un_imm(ARM::S0, right.m_value);
    337             m_assembler.cmp_r(left, ARM::S0);
     336            m_assembler.ldr_un_imm(ARMRegisters::S0, right.m_value);
     337            m_assembler.cmp_r(left, ARMRegisters::S0);
    338338        } else
    339             m_assembler.cmp_r(left, m_assembler.getImm(right.m_value, ARM::S0));
     339            m_assembler.cmp_r(left, m_assembler.getImm(right.m_value, ARMRegisters::S0));
    340340        return Jump(m_assembler.jmp(ARMCondition(cond), useConstantPool));
    341341    }
     
    343343    Jump branch32(Condition cond, RegisterID left, Address right)
    344344    {
    345         load32(right, ARM::S1);
    346         return branch32(cond, left, ARM::S1);
     345        load32(right, ARMRegisters::S1);
     346        return branch32(cond, left, ARMRegisters::S1);
    347347    }
    348348
    349349    Jump branch32(Condition cond, Address left, RegisterID right)
    350350    {
    351         load32(left, ARM::S1);
    352         return branch32(cond, ARM::S1, right);
     351        load32(left, ARMRegisters::S1);
     352        return branch32(cond, ARMRegisters::S1, right);
    353353    }
    354354
    355355    Jump branch32(Condition cond, Address left, Imm32 right)
    356356    {
    357         load32(left, ARM::S1);
    358         return branch32(cond, ARM::S1, right);
     357        load32(left, ARMRegisters::S1);
     358        return branch32(cond, ARMRegisters::S1, right);
    359359    }
    360360
    361361    Jump branch32(Condition cond, BaseIndex left, Imm32 right)
    362362    {
    363         load32(left, ARM::S1);
    364         return branch32(cond, ARM::S1, right);
     363        load32(left, ARMRegisters::S1);
     364        return branch32(cond, ARMRegisters::S1, right);
    365365    }
    366366
     
    376376    Jump branch16(Condition cond, BaseIndex left, Imm32 right)
    377377    {
    378         load16(left, ARM::S0);
    379         move(right, ARM::S1);
    380         m_assembler.cmp_r(ARM::S0, ARM::S1);
     378        load16(left, ARMRegisters::S0);
     379        move(right, ARMRegisters::S1);
     380        m_assembler.cmp_r(ARMRegisters::S0, ARMRegisters::S1);
    381381        return m_assembler.jmp(ARMCondition(cond));
    382382    }
     
    392392    {
    393393        ASSERT((cond == Zero) || (cond == NonZero));
    394         ARMWord w = m_assembler.getImm(mask.m_value, ARM::S0, true);
     394        ARMWord w = m_assembler.getImm(mask.m_value, ARMRegisters::S0, true);
    395395        if (w & ARMAssembler::OP2_INV_IMM)
    396             m_assembler.bics_r(ARM::S0, reg, w & ~ARMAssembler::OP2_INV_IMM);
     396            m_assembler.bics_r(ARMRegisters::S0, reg, w & ~ARMAssembler::OP2_INV_IMM);
    397397        else
    398398            m_assembler.tst_r(reg, w);
     
    402402    Jump branchTest32(Condition cond, Address address, Imm32 mask = Imm32(-1))
    403403    {
    404         load32(address, ARM::S1);
    405         return branchTest32(cond, ARM::S1, mask);
     404        load32(address, ARMRegisters::S1);
     405        return branchTest32(cond, ARMRegisters::S1, mask);
    406406    }
    407407
    408408    Jump branchTest32(Condition cond, BaseIndex address, Imm32 mask = Imm32(-1))
    409409    {
    410         load32(address, ARM::S1);
    411         return branchTest32(cond, ARM::S1, mask);
     410        load32(address, ARMRegisters::S1);
     411        return branchTest32(cond, ARMRegisters::S1, mask);
    412412    }
    413413
     
    419419    void jump(RegisterID target)
    420420    {
    421         move(target, ARM::pc);
     421        move(target, ARMRegisters::pc);
    422422    }
    423423
    424424    void jump(Address address)
    425425    {
    426         load32(address, ARM::pc);
     426        load32(address, ARMRegisters::pc);
    427427    }
    428428
     
    444444    {
    445445        if (src1 == dest) {
    446             move(src1, ARM::S0);
    447             src1 = ARM::S0;
     446            move(src1, ARMRegisters::S0);
     447            src1 = ARMRegisters::S0;
    448448        }
    449         m_assembler.mull_r(ARM::S1, dest, src2, src1);
    450         m_assembler.cmp_r(ARM::S1, m_assembler.asr(dest, 31));
     449        m_assembler.mull_r(ARMRegisters::S1, dest, src2, src1);
     450        m_assembler.cmp_r(ARMRegisters::S1, m_assembler.asr(dest, 31));
    451451    }
    452452
     
    467467        ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
    468468        if (cond == Overflow) {
    469             move(imm, ARM::S0);
    470             mull32(ARM::S0, src, dest);
     469            move(imm, ARMRegisters::S0);
     470            mull32(ARMRegisters::S0, src, dest);
    471471            cond = NonZero;
    472472        }
     
    504504    {
    505505        prepareCall();
    506         move(ARM::pc, target);
     506        move(ARMRegisters::pc, target);
    507507        JmpSrc jmpSrc;
    508508        return Call(jmpSrc, Call::None);
     
    516516    void ret()
    517517    {
    518         pop(ARM::pc);
     518        pop(ARMRegisters::pc);
    519519    }
    520520
     
    528528    void set32(Condition cond, RegisterID left, Imm32 right, RegisterID dest)
    529529    {
    530         m_assembler.cmp_r(left, m_assembler.getImm(right.m_value, ARM::S0));
     530        m_assembler.cmp_r(left, m_assembler.getImm(right.m_value, ARMRegisters::S0));
    531531        m_assembler.mov_r(dest, ARMAssembler::getOp2(0));
    532532        m_assembler.mov_r(dest, ARMAssembler::getOp2(1), ARMCondition(cond));
     
    535535    void setTest32(Condition cond, Address address, Imm32 mask, RegisterID dest)
    536536    {
    537         load32(address, ARM::S1);
     537        load32(address, ARMRegisters::S1);
    538538        if (mask.m_value == -1)
    539             m_assembler.cmp_r(0, ARM::S1);
     539            m_assembler.cmp_r(0, ARMRegisters::S1);
    540540        else
    541             m_assembler.tst_r(ARM::S1, m_assembler.getImm(mask.m_value, ARM::S0));
     541            m_assembler.tst_r(ARMRegisters::S1, m_assembler.getImm(mask.m_value, ARMRegisters::S0));
    542542        m_assembler.mov_r(dest, ARMAssembler::getOp2(0));
    543543        m_assembler.mov_r(dest, ARMAssembler::getOp2(1), ARMCondition(cond));
     
    546546    void add32(Imm32 imm, RegisterID src, RegisterID dest)
    547547    {
    548         m_assembler.add_r(dest, src, m_assembler.getImm(imm.m_value, ARM::S0));
     548        m_assembler.add_r(dest, src, m_assembler.getImm(imm.m_value, ARMRegisters::S0));
    549549    }
    550550
    551551    void add32(Imm32 imm, AbsoluteAddress address)
    552552    {
    553         m_assembler.ldr_un_imm(ARM::S1, reinterpret_cast<ARMWord>(address.m_ptr));
    554         m_assembler.dtr_u(true, ARM::S1, ARM::S1, 0);
    555         add32(imm, ARM::S1);
    556         m_assembler.ldr_un_imm(ARM::S0, reinterpret_cast<ARMWord>(address.m_ptr));
    557         m_assembler.dtr_u(false, ARM::S1, ARM::S0, 0);
     553        m_assembler.ldr_un_imm(ARMRegisters::S1, reinterpret_cast<ARMWord>(address.m_ptr));
     554        m_assembler.dtr_u(true, ARMRegisters::S1, ARMRegisters::S1, 0);
     555        add32(imm, ARMRegisters::S1);
     556        m_assembler.ldr_un_imm(ARMRegisters::S0, reinterpret_cast<ARMWord>(address.m_ptr));
     557        m_assembler.dtr_u(false, ARMRegisters::S1, ARMRegisters::S0, 0);
    558558    }
    559559
    560560    void sub32(Imm32 imm, AbsoluteAddress address)
    561561    {
    562         m_assembler.ldr_un_imm(ARM::S1, reinterpret_cast<ARMWord>(address.m_ptr));
    563         m_assembler.dtr_u(true, ARM::S1, ARM::S1, 0);
    564         sub32(imm, ARM::S1);
    565         m_assembler.ldr_un_imm(ARM::S0, reinterpret_cast<ARMWord>(address.m_ptr));
    566         m_assembler.dtr_u(false, ARM::S1, ARM::S0, 0);
     562        m_assembler.ldr_un_imm(ARMRegisters::S1, reinterpret_cast<ARMWord>(address.m_ptr));
     563        m_assembler.dtr_u(true, ARMRegisters::S1, ARMRegisters::S1, 0);
     564        sub32(imm, ARMRegisters::S1);
     565        m_assembler.ldr_un_imm(ARMRegisters::S0, reinterpret_cast<ARMWord>(address.m_ptr));
     566        m_assembler.dtr_u(false, ARMRegisters::S1, ARMRegisters::S0, 0);
    567567    }
    568568
    569569    void load32(void* address, RegisterID dest)
    570570    {
    571         m_assembler.ldr_un_imm(ARM::S0, reinterpret_cast<ARMWord>(address));
    572         m_assembler.dtr_u(true, dest, ARM::S0, 0);
     571        m_assembler.ldr_un_imm(ARMRegisters::S0, reinterpret_cast<ARMWord>(address));
     572        m_assembler.dtr_u(true, dest, ARMRegisters::S0, 0);
    573573    }
    574574
    575575    Jump branch32(Condition cond, AbsoluteAddress left, RegisterID right)
    576576    {
    577         load32(left.m_ptr, ARM::S1);
    578         return branch32(cond, ARM::S1, right);
     577        load32(left.m_ptr, ARMRegisters::S1);
     578        return branch32(cond, ARMRegisters::S1, right);
    579579    }
    580580
    581581    Jump branch32(Condition cond, AbsoluteAddress left, Imm32 right)
    582582    {
    583         load32(left.m_ptr, ARM::S1);
    584         return branch32(cond, ARM::S1, right);
     583        load32(left.m_ptr, ARMRegisters::S1);
     584        return branch32(cond, ARMRegisters::S1, right);
    585585    }
    586586
     
    610610    Jump branchPtrWithPatch(Condition cond, RegisterID left, DataLabelPtr& dataLabel, ImmPtr initialRightValue = ImmPtr(0))
    611611    {
    612         dataLabel = moveWithPatch(initialRightValue, ARM::S1);
    613         Jump jump = branch32(cond, left, ARM::S1, true);
     612        dataLabel = moveWithPatch(initialRightValue, ARMRegisters::S1);
     613        Jump jump = branch32(cond, left, ARMRegisters::S1, true);
    614614        return jump;
    615615    }
     
    617617    Jump branchPtrWithPatch(Condition cond, Address left, DataLabelPtr& dataLabel, ImmPtr initialRightValue = ImmPtr(0))
    618618    {
    619         load32(left, ARM::S1);
    620         dataLabel = moveWithPatch(initialRightValue, ARM::S0);
    621         Jump jump = branch32(cond, ARM::S0, ARM::S1, true);
     619        load32(left, ARMRegisters::S1);
     620        dataLabel = moveWithPatch(initialRightValue, ARMRegisters::S0);
     621        Jump jump = branch32(cond, ARMRegisters::S0, ARMRegisters::S1, true);
    622622        return jump;
    623623    }
     
    625625    DataLabelPtr storePtrWithPatch(ImmPtr initialValue, ImplicitAddress address)
    626626    {
    627         DataLabelPtr dataLabel = moveWithPatch(initialValue, ARM::S1);
    628         store32(ARM::S1, address);
     627        DataLabelPtr dataLabel = moveWithPatch(initialValue, ARMRegisters::S1);
     628        store32(ARMRegisters::S1, address);
    629629        return dataLabel;
    630630    }
     
    664664    void addDouble(Address src, FPRegisterID dest)
    665665    {
    666         loadDouble(src, ARM::SD0);
    667         addDouble(ARM::SD0, dest);
     666        loadDouble(src, ARMRegisters::SD0);
     667        addDouble(ARMRegisters::SD0, dest);
    668668    }
    669669
     
    675675    void subDouble(Address src, FPRegisterID dest)
    676676    {
    677         loadDouble(src, ARM::SD0);
    678         subDouble(ARM::SD0, dest);
     677        loadDouble(src, ARMRegisters::SD0);
     678        subDouble(ARMRegisters::SD0, dest);
    679679    }
    680680
     
    686686    void mulDouble(Address src, FPRegisterID dest)
    687687    {
    688         loadDouble(src, ARM::SD0);
    689         mulDouble(ARM::SD0, dest);
     688        loadDouble(src, ARMRegisters::SD0);
     689        mulDouble(ARMRegisters::SD0, dest);
    690690    }
    691691
     
    736736
    737737        // S0 might be used for parameter passing
    738         m_assembler.add_r(ARM::S1, ARM::pc, ARMAssembler::OP2_IMM | 0x4);
    739         m_assembler.push_r(ARM::S1);
     738        m_assembler.add_r(ARMRegisters::S1, ARMRegisters::pc, ARMAssembler::OP2_IMM | 0x4);
     739        m_assembler.push_r(ARMRegisters::S1);
    740740    }
    741741
    742742    void call32(RegisterID base, int32_t offset)
    743743    {
    744         if (base == ARM::sp)
     744        if (base == ARMRegisters::sp)
    745745            offset += 4;
    746746
     
    748748            if (offset <= 0xfff) {
    749749                prepareCall();
    750                 m_assembler.dtr_u(true, ARM::pc, base, offset);
     750                m_assembler.dtr_u(true, ARMRegisters::pc, base, offset);
    751751            } else if (offset <= 0xfffff) {
    752                 m_assembler.add_r(ARM::S0, base, ARMAssembler::OP2_IMM | (offset >> 12) | (10 << 8));
     752                m_assembler.add_r(ARMRegisters::S0, base, ARMAssembler::OP2_IMM | (offset >> 12) | (10 << 8));
    753753                prepareCall();
    754                 m_assembler.dtr_u(true, ARM::pc, ARM::S0, offset & 0xfff);
     754                m_assembler.dtr_u(true, ARMRegisters::pc, ARMRegisters::S0, offset & 0xfff);
    755755            } else {
    756                 ARMWord reg = m_assembler.getImm(offset, ARM::S0);
     756                ARMWord reg = m_assembler.getImm(offset, ARMRegisters::S0);
    757757                prepareCall();
    758                 m_assembler.dtr_ur(true, ARM::pc, base, reg);
     758                m_assembler.dtr_ur(true, ARMRegisters::pc, base, reg);
    759759            }
    760760        } else  {
     
    762762            if (offset <= 0xfff) {
    763763                prepareCall();
    764                 m_assembler.dtr_d(true, ARM::pc, base, offset);
     764                m_assembler.dtr_d(true, ARMRegisters::pc, base, offset);
    765765            } else if (offset <= 0xfffff) {
    766                 m_assembler.sub_r(ARM::S0, base, ARMAssembler::OP2_IMM | (offset >> 12) | (10 << 8));
     766                m_assembler.sub_r(ARMRegisters::S0, base, ARMAssembler::OP2_IMM | (offset >> 12) | (10 << 8));
    767767                prepareCall();
    768                 m_assembler.dtr_d(true, ARM::pc, ARM::S0, offset & 0xfff);
     768                m_assembler.dtr_d(true, ARMRegisters::pc, ARMRegisters::S0, offset & 0xfff);
    769769            } else {
    770                 ARMWord reg = m_assembler.getImm(offset, ARM::S0);
     770                ARMWord reg = m_assembler.getImm(offset, ARMRegisters::S0);
    771771                prepareCall();
    772                 m_assembler.dtr_dr(true, ARM::pc, base, reg);
     772                m_assembler.dtr_dr(true, ARMRegisters::pc, base, reg);
    773773            }
    774774        }
  • trunk/JavaScriptCore/assembler/MacroAssemblerARMv7.h

    r46209 r47530  
    4040    //        - dTR is likely used more than aTR, and we'll get better instruction
    4141    //        encoding if it's in the low 8 registers.
    42     static const ARM::RegisterID dataTempRegister = ARM::ip;
    43     static const RegisterID addressTempRegister = ARM::r3;
    44     static const FPRegisterID fpTempRegister = ARM::d7;
     42    static const ARMRegisters::RegisterID dataTempRegister = ARMRegisters::ip;
     43    static const RegisterID addressTempRegister = ARMRegisters::r3;
     44    static const FPRegisterID fpTempRegister = ARMRegisters::d7;
    4545
    4646    struct ArmAddress {
     
    103103    };
    104104
    105     static const RegisterID stackPointerRegister = ARM::sp;
    106     static const RegisterID linkRegister = ARM::lr;
     105    static const RegisterID stackPointerRegister = ARMRegisters::sp;
     106    static const RegisterID linkRegister = ARMRegisters::lr;
    107107
    108108    // Integer arithmetic operations:
     
    547547    {
    548548        // store postindexed with writeback
    549         m_assembler.ldr(dest, ARM::sp, sizeof(void*), false, true);
     549        m_assembler.ldr(dest, ARMRegisters::sp, sizeof(void*), false, true);
    550550    }
    551551
     
    553553    {
    554554        // store preindexed with writeback
    555         m_assembler.str(src, ARM::sp, -sizeof(void*), true, true);
     555        m_assembler.str(src, ARMRegisters::sp, -sizeof(void*), true, true);
    556556    }
    557557
  • trunk/JavaScriptCore/assembler/MacroAssemblerX86Common.h

    r46598 r47530  
    6565    };
    6666
    67     static const RegisterID stackPointerRegister = X86::esp;
     67    static const RegisterID stackPointerRegister = X86Registers::esp;
    6868
    6969    // Integer arithmetic operations:
     
    133133        // On x86 we can only shift by ecx; if asked to shift by another register we'll
    134134        // need rejig the shift amount into ecx first, and restore the registers afterwards.
    135         if (shift_amount != X86::ecx) {
    136             swap(shift_amount, X86::ecx);
     135        if (shift_amount != X86Registers::ecx) {
     136            swap(shift_amount, X86Registers::ecx);
    137137
    138138            // E.g. transform "shll %eax, %eax" -> "xchgl %eax, %ecx; shll %ecx, %ecx; xchgl %eax, %ecx"
    139139            if (dest == shift_amount)
    140                 m_assembler.shll_CLr(X86::ecx);
     140                m_assembler.shll_CLr(X86Registers::ecx);
    141141            // E.g. transform "shll %eax, %ecx" -> "xchgl %eax, %ecx; shll %ecx, %eax; xchgl %eax, %ecx"
    142             else if (dest == X86::ecx)
     142            else if (dest == X86Registers::ecx)
    143143                m_assembler.shll_CLr(shift_amount);
    144144            // E.g. transform "shll %eax, %ebx" -> "xchgl %eax, %ecx; shll %ecx, %ebx; xchgl %eax, %ecx"
     
    146146                m_assembler.shll_CLr(dest);
    147147       
    148             swap(shift_amount, X86::ecx);
     148            swap(shift_amount, X86Registers::ecx);
    149149        } else
    150150            m_assembler.shll_CLr(dest);
     
    215215        // On x86 we can only shift by ecx; if asked to shift by another register we'll
    216216        // need rejig the shift amount into ecx first, and restore the registers afterwards.
    217         if (shift_amount != X86::ecx) {
    218             swap(shift_amount, X86::ecx);
     217        if (shift_amount != X86Registers::ecx) {
     218            swap(shift_amount, X86Registers::ecx);
    219219
    220220            // E.g. transform "shll %eax, %eax" -> "xchgl %eax, %ecx; shll %ecx, %ecx; xchgl %eax, %ecx"
    221221            if (dest == shift_amount)
    222                 m_assembler.sarl_CLr(X86::ecx);
     222                m_assembler.sarl_CLr(X86Registers::ecx);
    223223            // E.g. transform "shll %eax, %ecx" -> "xchgl %eax, %ecx; shll %ecx, %eax; xchgl %eax, %ecx"
    224             else if (dest == X86::ecx)
     224            else if (dest == X86Registers::ecx)
    225225                m_assembler.sarl_CLr(shift_amount);
    226226            // E.g. transform "shll %eax, %ebx" -> "xchgl %eax, %ecx; shll %ecx, %ebx; xchgl %eax, %ecx"
     
    228228                m_assembler.sarl_CLr(dest);
    229229       
    230             swap(shift_amount, X86::ecx);
     230            swap(shift_amount, X86Registers::ecx);
    231231        } else
    232232            m_assembler.sarl_CLr(dest);
  • trunk/JavaScriptCore/assembler/MacroAssemblerX86_64.h

    r46598 r47530  
    3939class MacroAssemblerX86_64 : public MacroAssemblerX86Common {
    4040protected:
    41     static const X86::RegisterID scratchRegister = X86::r11;
     41    static const X86Registers::RegisterID scratchRegister = X86Registers::r11;
    4242
    4343public:
     
    8080    void load32(void* address, RegisterID dest)
    8181    {
    82         if (dest == X86::eax)
     82        if (dest == X86Registers::eax)
    8383            m_assembler.movl_mEAX(address);
    8484        else {
    85             move(X86::eax, dest);
     85            move(X86Registers::eax, dest);
    8686            m_assembler.movl_mEAX(address);
    87             swap(X86::eax, dest);
     87            swap(X86Registers::eax, dest);
    8888        }
    8989    }
     
    103103    void store32(Imm32 imm, void* address)
    104104    {
    105         move(X86::eax, scratchRegister);
    106         move(imm, X86::eax);
     105        move(X86Registers::eax, scratchRegister);
     106        move(imm, X86Registers::eax);
    107107        m_assembler.movl_EAXm(address);
    108         move(scratchRegister, X86::eax);
     108        move(scratchRegister, X86Registers::eax);
    109109    }
    110110
     
    197197        // On x86 we can only shift by ecx; if asked to shift by another register we'll
    198198        // need rejig the shift amount into ecx first, and restore the registers afterwards.
    199         if (shift_amount != X86::ecx) {
    200             swap(shift_amount, X86::ecx);
     199        if (shift_amount != X86Registers::ecx) {
     200            swap(shift_amount, X86Registers::ecx);
    201201
    202202            // E.g. transform "shll %eax, %eax" -> "xchgl %eax, %ecx; shll %ecx, %ecx; xchgl %eax, %ecx"
    203203            if (dest == shift_amount)
    204                 m_assembler.sarq_CLr(X86::ecx);
     204                m_assembler.sarq_CLr(X86Registers::ecx);
    205205            // E.g. transform "shll %eax, %ecx" -> "xchgl %eax, %ecx; shll %ecx, %eax; xchgl %eax, %ecx"
    206             else if (dest == X86::ecx)
     206            else if (dest == X86Registers::ecx)
    207207                m_assembler.sarq_CLr(shift_amount);
    208208            // E.g. transform "shll %eax, %ebx" -> "xchgl %eax, %ecx; shll %ecx, %ebx; xchgl %eax, %ecx"
     
    210210                m_assembler.sarq_CLr(dest);
    211211       
    212             swap(shift_amount, X86::ecx);
     212            swap(shift_amount, X86Registers::ecx);
    213213        } else
    214214            m_assembler.sarq_CLr(dest);
     
    259259    void loadPtr(void* address, RegisterID dest)
    260260    {
    261         if (dest == X86::eax)
     261        if (dest == X86Registers::eax)
    262262            m_assembler.movq_mEAX(address);
    263263        else {
    264             move(X86::eax, dest);
     264            move(X86Registers::eax, dest);
    265265            m_assembler.movq_mEAX(address);
    266             swap(X86::eax, dest);
     266            swap(X86Registers::eax, dest);
    267267        }
    268268    }
     
    286286    void storePtr(RegisterID src, void* address)
    287287    {
    288         if (src == X86::eax)
     288        if (src == X86Registers::eax)
    289289            m_assembler.movq_EAXm(address);
    290290        else {
    291             swap(X86::eax, src);
     291            swap(X86Registers::eax, src);
    292292            m_assembler.movq_EAXm(address);
    293             swap(X86::eax, src);
     293            swap(X86Registers::eax, src);
    294294        }
    295295    }
  • trunk/JavaScriptCore/assembler/X86Assembler.h

    r47186 r47530  
    4444#endif
    4545
    46 namespace X86 {
     46namespace X86Registers {
    4747    typedef enum {
    4848        eax,
     
    8181class X86Assembler {
    8282public:
    83     typedef X86::RegisterID RegisterID;
    84     typedef X86::XMMRegisterID XMMRegisterID;
     83    typedef X86Registers::RegisterID RegisterID;
     84    typedef X86Registers::XMMRegisterID XMMRegisterID;
    8585    typedef XMMRegisterID FPRegisterID;
    8686
     
    11191119    void movl_rm(RegisterID src, void* addr)
    11201120    {
    1121         if (src == X86::eax)
     1121        if (src == X86Registers::eax)
    11221122            movl_EAXm(addr);
    11231123        else
     
    11271127    void movl_mr(void* addr, RegisterID dst)
    11281128    {
    1129         if (dst == X86::eax)
     1129        if (dst == X86Registers::eax)
    11301130            movl_mEAX(addr);
    11311131        else
     
    18931893        // Internals; ModRm and REX formatters.
    18941894
    1895         static const RegisterID noBase = X86::ebp;
    1896         static const RegisterID hasSib = X86::esp;
    1897         static const RegisterID noIndex = X86::esp;
    1898 #if PLATFORM(X86_64)
    1899         static const RegisterID noBase2 = X86::r13;
    1900         static const RegisterID hasSib2 = X86::r12;
     1895        static const RegisterID noBase = X86Registers::ebp;
     1896        static const RegisterID hasSib = X86Registers::esp;
     1897        static const RegisterID noIndex = X86Registers::esp;
     1898#if PLATFORM(X86_64)
     1899        static const RegisterID noBase2 = X86Registers::r13;
     1900        static const RegisterID hasSib2 = X86Registers::r12;
    19011901
    19021902        // Registers r8 & above require a REX prefixe.
    19031903        inline bool regRequiresRex(int reg)
    19041904        {
    1905             return (reg >= X86::r8);
     1905            return (reg >= X86Registers::r8);
    19061906        }
    19071907
     
    19091909        inline bool byteRegRequiresRex(int reg)
    19101910        {
    1911             return (reg >= X86::esp);
     1911            return (reg >= X86Registers::esp);
    19121912        }
    19131913
Note: See TracChangeset for help on using the changeset viewer.