| Index: src/assembler_ia32.h
|
| diff --git a/src/assembler_ia32.h b/src/assembler_ia32.h
|
| index be1916286b988ecdaaed9f0b3a14233782b6c158..291ccdcd00d8fb9046e0f520e419886a907bc446 100644
|
| --- a/src/assembler_ia32.h
|
| +++ b/src/assembler_ia32.h
|
| @@ -38,7 +38,7 @@ using RegX8632::XmmRegister;
|
| using RegX8632::ByteRegister;
|
| using RegX8632::X87STRegister;
|
|
|
| -namespace x86 {
|
| +namespace X8632 {
|
|
|
| const int MAX_NOP_SIZE = 8;
|
|
|
| @@ -170,7 +170,7 @@ private:
|
| && ((encoding_[0] & 0x07) == reg); // Register codes match.
|
| }
|
|
|
| - friend class AssemblerX86;
|
| + friend class AssemblerX8632;
|
| };
|
|
|
| class Address : public Operand {
|
| @@ -330,20 +330,20 @@ private:
|
| // llvm::SmallVector<intptr_t, kMaxUnresolvedBranches> ?
|
| intptr_t unresolved_near_positions_[kMaxUnresolvedBranches];
|
|
|
| - friend class AssemblerX86;
|
| + friend class AssemblerX8632;
|
| };
|
|
|
| -class AssemblerX86 : public Assembler {
|
| - AssemblerX86(const AssemblerX86 &) = delete;
|
| - AssemblerX86 &operator=(const AssemblerX86 &) = delete;
|
| +class AssemblerX8632 : public Assembler {
|
| + AssemblerX8632(const AssemblerX8632 &) = delete;
|
| + AssemblerX8632 &operator=(const AssemblerX8632 &) = delete;
|
|
|
| public:
|
| - explicit AssemblerX86(bool use_far_branches = false) : Assembler() {
|
| + explicit AssemblerX8632(bool use_far_branches = false) : Assembler() {
|
| // This mode is only needed and implemented for MIPS and ARM.
|
| assert(!use_far_branches);
|
| (void)use_far_branches;
|
| }
|
| - ~AssemblerX86() override;
|
| + ~AssemblerX8632() override;
|
|
|
| static const bool kNearJump = true;
|
| static const bool kFarJump = false;
|
| @@ -377,18 +377,19 @@ public:
|
| }
|
|
|
| // Operations to emit GPR instructions (and dispatch on operand type).
|
| - typedef void (AssemblerX86::*TypedEmitGPR)(Type, GPRRegister);
|
| - typedef void (AssemblerX86::*TypedEmitAddr)(Type, const Address &);
|
| + typedef void (AssemblerX8632::*TypedEmitGPR)(Type, GPRRegister);
|
| + typedef void (AssemblerX8632::*TypedEmitAddr)(Type, const Address &);
|
| struct GPREmitterOneOp {
|
| TypedEmitGPR Reg;
|
| TypedEmitAddr Addr;
|
| };
|
|
|
| - typedef void (AssemblerX86::*TypedEmitGPRGPR)(Type, GPRRegister, GPRRegister);
|
| - typedef void (AssemblerX86::*TypedEmitGPRAddr)(Type, GPRRegister,
|
| - const Address &);
|
| - typedef void (AssemblerX86::*TypedEmitGPRImm)(Type, GPRRegister,
|
| - const Immediate &);
|
| + typedef void (AssemblerX8632::*TypedEmitGPRGPR)(Type, GPRRegister,
|
| + GPRRegister);
|
| + typedef void (AssemblerX8632::*TypedEmitGPRAddr)(Type, GPRRegister,
|
| + const Address &);
|
| + typedef void (AssemblerX8632::*TypedEmitGPRImm)(Type, GPRRegister,
|
| + const Immediate &);
|
| struct GPREmitterRegOp {
|
| TypedEmitGPRGPR GPRGPR;
|
| TypedEmitGPRAddr GPRAddr;
|
| @@ -402,9 +403,9 @@ public:
|
| TypedEmitGPRImm GPRImm;
|
| };
|
|
|
| - typedef void (AssemblerX86::*TypedEmitGPRGPRImm)(Type, GPRRegister,
|
| - GPRRegister,
|
| - const Immediate &);
|
| + typedef void (AssemblerX8632::*TypedEmitGPRGPRImm)(Type, GPRRegister,
|
| + GPRRegister,
|
| + const Immediate &);
|
| struct GPREmitterShiftD {
|
| // Technically AddrGPR and AddrGPRImm are also allowed, but in practice
|
| // we always normalize Dest to a Register first.
|
| @@ -412,35 +413,36 @@ public:
|
| TypedEmitGPRGPRImm GPRGPRImm;
|
| };
|
|
|
| - typedef void (AssemblerX86::*TypedEmitAddrGPR)(Type, const Address &,
|
| - GPRRegister);
|
| - typedef void (AssemblerX86::*TypedEmitAddrImm)(Type, const Address &,
|
| - const Immediate &);
|
| + typedef void (AssemblerX8632::*TypedEmitAddrGPR)(Type, const Address &,
|
| + GPRRegister);
|
| + typedef void (AssemblerX8632::*TypedEmitAddrImm)(Type, const Address &,
|
| + const Immediate &);
|
| struct GPREmitterAddrOp {
|
| TypedEmitAddrGPR AddrGPR;
|
| TypedEmitAddrImm AddrImm;
|
| };
|
|
|
| // Operations to emit XMM instructions (and dispatch on operand type).
|
| - typedef void (AssemblerX86::*TypedEmitXmmXmm)(Type, XmmRegister, XmmRegister);
|
| - typedef void (AssemblerX86::*TypedEmitXmmAddr)(Type, XmmRegister,
|
| - const Address &);
|
| + typedef void (AssemblerX8632::*TypedEmitXmmXmm)(Type, XmmRegister,
|
| + XmmRegister);
|
| + typedef void (AssemblerX8632::*TypedEmitXmmAddr)(Type, XmmRegister,
|
| + const Address &);
|
| struct XmmEmitterRegOp {
|
| TypedEmitXmmXmm XmmXmm;
|
| TypedEmitXmmAddr XmmAddr;
|
| };
|
|
|
| - typedef void (AssemblerX86::*EmitXmmXmm)(XmmRegister, XmmRegister);
|
| - typedef void (AssemblerX86::*EmitXmmAddr)(XmmRegister, const Address &);
|
| - typedef void (AssemblerX86::*EmitAddrXmm)(const Address &, XmmRegister);
|
| + typedef void (AssemblerX8632::*EmitXmmXmm)(XmmRegister, XmmRegister);
|
| + typedef void (AssemblerX8632::*EmitXmmAddr)(XmmRegister, const Address &);
|
| + typedef void (AssemblerX8632::*EmitAddrXmm)(const Address &, XmmRegister);
|
| struct XmmEmitterMovOps {
|
| EmitXmmXmm XmmXmm;
|
| EmitXmmAddr XmmAddr;
|
| EmitAddrXmm AddrXmm;
|
| };
|
|
|
| - typedef void (AssemblerX86::*TypedEmitXmmImm)(Type, XmmRegister,
|
| - const Immediate &);
|
| + typedef void (AssemblerX8632::*TypedEmitXmmImm)(Type, XmmRegister,
|
| + const Immediate &);
|
|
|
| struct XmmEmitterShiftOp {
|
| TypedEmitXmmXmm XmmXmm;
|
| @@ -450,8 +452,9 @@ public:
|
|
|
| // Cross Xmm/GPR cast instructions.
|
| template <typename DReg_t, typename SReg_t> struct CastEmitterRegOp {
|
| - typedef void (AssemblerX86::*TypedEmitRegs)(Type, DReg_t, SReg_t);
|
| - typedef void (AssemblerX86::*TypedEmitAddr)(Type, DReg_t, const Address &);
|
| + typedef void (AssemblerX8632::*TypedEmitRegs)(Type, DReg_t, SReg_t);
|
| + typedef void (AssemblerX8632::*TypedEmitAddr)(Type, DReg_t,
|
| + const Address &);
|
|
|
| TypedEmitRegs RegReg;
|
| TypedEmitAddr RegAddr;
|
| @@ -460,11 +463,11 @@ public:
|
| // Three operand (potentially) cross Xmm/GPR instructions.
|
| // The last operand must be an immediate.
|
| template <typename DReg_t, typename SReg_t> struct ThreeOpImmEmitter {
|
| - typedef void (AssemblerX86::*TypedEmitRegRegImm)(Type, DReg_t, SReg_t,
|
| - const Immediate &);
|
| - typedef void (AssemblerX86::*TypedEmitRegAddrImm)(Type, DReg_t,
|
| - const Address &,
|
| - const Immediate &);
|
| + typedef void (AssemblerX8632::*TypedEmitRegRegImm)(Type, DReg_t, SReg_t,
|
| + const Immediate &);
|
| + typedef void (AssemblerX8632::*TypedEmitRegAddrImm)(Type, DReg_t,
|
| + const Address &,
|
| + const Immediate &);
|
|
|
| TypedEmitRegRegImm RegRegImm;
|
| TypedEmitRegAddrImm RegAddrImm;
|
| @@ -853,34 +856,34 @@ private:
|
| Label *GetOrCreateLabel(SizeT Number, LabelVector &Labels);
|
| };
|
|
|
| -inline void AssemblerX86::EmitUint8(uint8_t value) {
|
| +inline void AssemblerX8632::EmitUint8(uint8_t value) {
|
| buffer_.Emit<uint8_t>(value);
|
| }
|
|
|
| -inline void AssemblerX86::EmitInt16(int16_t value) {
|
| +inline void AssemblerX8632::EmitInt16(int16_t value) {
|
| buffer_.Emit<int16_t>(value);
|
| }
|
|
|
| -inline void AssemblerX86::EmitInt32(int32_t value) {
|
| +inline void AssemblerX8632::EmitInt32(int32_t value) {
|
| buffer_.Emit<int32_t>(value);
|
| }
|
|
|
| -inline void AssemblerX86::EmitRegisterOperand(int rm, int reg) {
|
| +inline void AssemblerX8632::EmitRegisterOperand(int rm, int reg) {
|
| assert(rm >= 0 && rm < 8);
|
| buffer_.Emit<uint8_t>(0xC0 + (rm << 3) + reg);
|
| }
|
|
|
| -inline void AssemblerX86::EmitXmmRegisterOperand(int rm, XmmRegister reg) {
|
| +inline void AssemblerX8632::EmitXmmRegisterOperand(int rm, XmmRegister reg) {
|
| EmitRegisterOperand(rm, static_cast<GPRRegister>(reg));
|
| }
|
|
|
| -inline void AssemblerX86::EmitFixup(AssemblerFixup *fixup) {
|
| +inline void AssemblerX8632::EmitFixup(AssemblerFixup *fixup) {
|
| buffer_.EmitFixup(fixup);
|
| }
|
|
|
| -inline void AssemblerX86::EmitOperandSizeOverride() { EmitUint8(0x66); }
|
| +inline void AssemblerX8632::EmitOperandSizeOverride() { EmitUint8(0x66); }
|
|
|
| -} // end of namespace x86
|
| +} // end of namespace X8632
|
| } // end of namespace Ice
|
|
|
| #endif // SUBZERO_SRC_ASSEMBLER_IA32_H
|
|
|