| Index: src/assembler_ia32.cpp
|
| diff --git a/src/assembler_ia32.cpp b/src/assembler_ia32.cpp
|
| index 9545dc0970f4850a4184fa73f35d3d25c26e7e67..77917096dff4e1790fe3f26ac8b73b0ff87d5e89 100644
|
| --- a/src/assembler_ia32.cpp
|
| +++ b/src/assembler_ia32.cpp
|
| @@ -35,7 +35,7 @@ public:
|
| DirectCallRelocation(Kind, Sym);
|
| }
|
|
|
| - void Process(const MemoryRegion ®ion, intptr_t position) {
|
| + void Process(const MemoryRegion ®ion, intptr_t position) override {
|
| // Direct calls are relative to the following instruction on x86.
|
| int32_t pointer = region.Load<int32_t>(position);
|
| int32_t delta = region.start() + position + sizeof(int32_t);
|
| @@ -357,7 +357,7 @@ void AssemblerX86::movq(XmmRegister dst, const Address &src) {
|
|
|
| void AssemblerX86::addss(Type Ty, XmmRegister dst, XmmRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - EmitUint8(Ty == IceType_f32 ? 0xF3 : 0xF2);
|
| + EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xF3 : 0xF2);
|
| EmitUint8(0x0F);
|
| EmitUint8(0x58);
|
| EmitXmmRegisterOperand(dst, src);
|
| @@ -365,7 +365,7 @@ void AssemblerX86::addss(Type Ty, XmmRegister dst, XmmRegister src) {
|
|
|
| void AssemblerX86::addss(Type Ty, XmmRegister dst, const Address &src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - EmitUint8(Ty == IceType_f32 ? 0xF3 : 0xF2);
|
| + EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xF3 : 0xF2);
|
| EmitUint8(0x0F);
|
| EmitUint8(0x58);
|
| EmitOperand(dst, src);
|
| @@ -373,7 +373,7 @@ void AssemblerX86::addss(Type Ty, XmmRegister dst, const Address &src) {
|
|
|
| void AssemblerX86::subss(Type Ty, XmmRegister dst, XmmRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - EmitUint8(Ty == IceType_f32 ? 0xF3 : 0xF2);
|
| + EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xF3 : 0xF2);
|
| EmitUint8(0x0F);
|
| EmitUint8(0x5C);
|
| EmitXmmRegisterOperand(dst, src);
|
| @@ -381,7 +381,7 @@ void AssemblerX86::subss(Type Ty, XmmRegister dst, XmmRegister src) {
|
|
|
| void AssemblerX86::subss(Type Ty, XmmRegister dst, const Address &src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - EmitUint8(Ty == IceType_f32 ? 0xF3 : 0xF2);
|
| + EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xF3 : 0xF2);
|
| EmitUint8(0x0F);
|
| EmitUint8(0x5C);
|
| EmitOperand(dst, src);
|
| @@ -389,7 +389,7 @@ void AssemblerX86::subss(Type Ty, XmmRegister dst, const Address &src) {
|
|
|
| void AssemblerX86::mulss(Type Ty, XmmRegister dst, XmmRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - EmitUint8(Ty == IceType_f32 ? 0xF3 : 0xF2);
|
| + EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xF3 : 0xF2);
|
| EmitUint8(0x0F);
|
| EmitUint8(0x59);
|
| EmitXmmRegisterOperand(dst, src);
|
| @@ -397,7 +397,7 @@ void AssemblerX86::mulss(Type Ty, XmmRegister dst, XmmRegister src) {
|
|
|
| void AssemblerX86::mulss(Type Ty, XmmRegister dst, const Address &src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - EmitUint8(Ty == IceType_f32 ? 0xF3 : 0xF2);
|
| + EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xF3 : 0xF2);
|
| EmitUint8(0x0F);
|
| EmitUint8(0x59);
|
| EmitOperand(dst, src);
|
| @@ -405,7 +405,7 @@ void AssemblerX86::mulss(Type Ty, XmmRegister dst, const Address &src) {
|
|
|
| void AssemblerX86::divss(Type Ty, XmmRegister dst, XmmRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - EmitUint8(Ty == IceType_f32 ? 0xF3 : 0xF2);
|
| + EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xF3 : 0xF2);
|
| EmitUint8(0x0F);
|
| EmitUint8(0x5E);
|
| EmitXmmRegisterOperand(dst, src);
|
| @@ -413,7 +413,7 @@ void AssemblerX86::divss(Type Ty, XmmRegister dst, XmmRegister src) {
|
|
|
| void AssemblerX86::divss(Type Ty, XmmRegister dst, const Address &src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - EmitUint8(Ty == IceType_f32 ? 0xF3 : 0xF2);
|
| + EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xF3 : 0xF2);
|
| EmitUint8(0x0F);
|
| EmitUint8(0x5E);
|
| EmitOperand(dst, src);
|
| @@ -480,7 +480,7 @@ void AssemblerX86::padd(Type Ty, XmmRegister dst, XmmRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| EmitUint8(0x66);
|
| EmitUint8(0x0F);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1) {
|
| + if (isByteSizedArithType(Ty)) {
|
| EmitUint8(0xFC);
|
| } else if (Ty == IceType_i16) {
|
| EmitUint8(0xFD);
|
| @@ -494,7 +494,7 @@ void AssemblerX86::padd(Type Ty, XmmRegister dst, const Address &src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| EmitUint8(0x66);
|
| EmitUint8(0x0F);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1) {
|
| + if (isByteSizedArithType(Ty)) {
|
| EmitUint8(0xFC);
|
| } else if (Ty == IceType_i16) {
|
| EmitUint8(0xFD);
|
| @@ -572,7 +572,7 @@ void AssemblerX86::psub(Type Ty, XmmRegister dst, XmmRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| EmitUint8(0x66);
|
| EmitUint8(0x0F);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1) {
|
| + if (isByteSizedArithType(Ty)) {
|
| EmitUint8(0xF8);
|
| } else if (Ty == IceType_i16) {
|
| EmitUint8(0xF9);
|
| @@ -586,7 +586,7 @@ void AssemblerX86::psub(Type Ty, XmmRegister dst, const Address &src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| EmitUint8(0x66);
|
| EmitUint8(0x0F);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1) {
|
| + if (isByteSizedArithType(Ty)) {
|
| EmitUint8(0xF8);
|
| } else if (Ty == IceType_i16) {
|
| EmitUint8(0xF9);
|
| @@ -967,7 +967,7 @@ void AssemblerX86::movmskps(GPRRegister dst, XmmRegister src) {
|
|
|
| void AssemblerX86::sqrtss(Type Ty, XmmRegister dst, const Address &src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - EmitUint8(Ty == IceType_f32 ? 0xF3 : 0xF2);
|
| + EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xF3 : 0xF2);
|
| EmitUint8(0x0F);
|
| EmitUint8(0x51);
|
| EmitOperand(dst, src);
|
| @@ -975,7 +975,7 @@ void AssemblerX86::sqrtss(Type Ty, XmmRegister dst, const Address &src) {
|
|
|
| void AssemblerX86::sqrtss(Type Ty, XmmRegister dst, XmmRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - EmitUint8(Ty == IceType_f32 ? 0xF3 : 0xF2);
|
| + EmitUint8(isFloat32Asserting32Or64(Ty) ? 0xF3 : 0xF2);
|
| EmitUint8(0x0F);
|
| EmitUint8(0x51);
|
| EmitXmmRegisterOperand(dst, src);
|
| @@ -1201,7 +1201,7 @@ void AssemblerX86::And(Type Ty, GPRRegister dst, GPRRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedType(Ty))
|
| EmitUint8(0x22);
|
| else
|
| EmitUint8(0x23);
|
| @@ -1212,7 +1212,7 @@ void AssemblerX86::And(Type Ty, GPRRegister dst, const Address &address) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedType(Ty))
|
| EmitUint8(0x22);
|
| else
|
| EmitUint8(0x23);
|
| @@ -1221,7 +1221,7 @@ void AssemblerX86::And(Type Ty, GPRRegister dst, const Address &address) {
|
|
|
| void AssemblerX86::And(Type Ty, GPRRegister dst, const Immediate &imm) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1) {
|
| + if (isByteSizedType(Ty)) {
|
| EmitComplexI8(4, Operand(dst), imm);
|
| return;
|
| }
|
| @@ -1234,7 +1234,7 @@ void AssemblerX86::Or(Type Ty, GPRRegister dst, GPRRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedType(Ty))
|
| EmitUint8(0x0A);
|
| else
|
| EmitUint8(0x0B);
|
| @@ -1245,7 +1245,7 @@ void AssemblerX86::Or(Type Ty, GPRRegister dst, const Address &address) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedType(Ty))
|
| EmitUint8(0x0A);
|
| else
|
| EmitUint8(0x0B);
|
| @@ -1254,7 +1254,7 @@ void AssemblerX86::Or(Type Ty, GPRRegister dst, const Address &address) {
|
|
|
| void AssemblerX86::Or(Type Ty, GPRRegister dst, const Immediate &imm) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1) {
|
| + if (isByteSizedType(Ty)) {
|
| EmitComplexI8(1, Operand(dst), imm);
|
| return;
|
| }
|
| @@ -1267,7 +1267,7 @@ void AssemblerX86::Xor(Type Ty, GPRRegister dst, GPRRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedType(Ty))
|
| EmitUint8(0x32);
|
| else
|
| EmitUint8(0x33);
|
| @@ -1278,7 +1278,7 @@ void AssemblerX86::Xor(Type Ty, GPRRegister dst, const Address &address) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedType(Ty))
|
| EmitUint8(0x32);
|
| else
|
| EmitUint8(0x33);
|
| @@ -1287,7 +1287,7 @@ void AssemblerX86::Xor(Type Ty, GPRRegister dst, const Address &address) {
|
|
|
| void AssemblerX86::Xor(Type Ty, GPRRegister dst, const Immediate &imm) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1) {
|
| + if (isByteSizedType(Ty)) {
|
| EmitComplexI8(6, Operand(dst), imm);
|
| return;
|
| }
|
| @@ -1300,7 +1300,7 @@ void AssemblerX86::add(Type Ty, GPRRegister dst, GPRRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0x02);
|
| else
|
| EmitUint8(0x03);
|
| @@ -1311,7 +1311,7 @@ void AssemblerX86::add(Type Ty, GPRRegister reg, const Address &address) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0x02);
|
| else
|
| EmitUint8(0x03);
|
| @@ -1320,7 +1320,7 @@ void AssemblerX86::add(Type Ty, GPRRegister reg, const Address &address) {
|
|
|
| void AssemblerX86::add(Type Ty, GPRRegister reg, const Immediate &imm) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1) {
|
| + if (isByteSizedArithType(Ty)) {
|
| EmitComplexI8(0, Operand(reg), imm);
|
| return;
|
| }
|
| @@ -1333,7 +1333,7 @@ void AssemblerX86::adc(Type Ty, GPRRegister dst, GPRRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0x12);
|
| else
|
| EmitUint8(0x13);
|
| @@ -1344,7 +1344,7 @@ void AssemblerX86::adc(Type Ty, GPRRegister dst, const Address &address) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0x12);
|
| else
|
| EmitUint8(0x13);
|
| @@ -1353,7 +1353,7 @@ void AssemblerX86::adc(Type Ty, GPRRegister dst, const Address &address) {
|
|
|
| void AssemblerX86::adc(Type Ty, GPRRegister reg, const Immediate &imm) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1) {
|
| + if (isByteSizedArithType(Ty)) {
|
| EmitComplexI8(2, Operand(reg), imm);
|
| return;
|
| }
|
| @@ -1366,7 +1366,7 @@ void AssemblerX86::sub(Type Ty, GPRRegister dst, GPRRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0x2A);
|
| else
|
| EmitUint8(0x2B);
|
| @@ -1377,7 +1377,7 @@ void AssemblerX86::sub(Type Ty, GPRRegister reg, const Address &address) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0x2A);
|
| else
|
| EmitUint8(0x2B);
|
| @@ -1386,7 +1386,7 @@ void AssemblerX86::sub(Type Ty, GPRRegister reg, const Address &address) {
|
|
|
| void AssemblerX86::sub(Type Ty, GPRRegister reg, const Immediate &imm) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1) {
|
| + if (isByteSizedArithType(Ty)) {
|
| EmitComplexI8(5, Operand(reg), imm);
|
| return;
|
| }
|
| @@ -1399,7 +1399,7 @@ void AssemblerX86::sbb(Type Ty, GPRRegister dst, GPRRegister src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0x1A);
|
| else
|
| EmitUint8(0x1B);
|
| @@ -1410,7 +1410,7 @@ void AssemblerX86::sbb(Type Ty, GPRRegister dst, const Address &address) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0x1A);
|
| else
|
| EmitUint8(0x1B);
|
| @@ -1419,7 +1419,7 @@ void AssemblerX86::sbb(Type Ty, GPRRegister dst, const Address &address) {
|
|
|
| void AssemblerX86::sbb(Type Ty, GPRRegister reg, const Immediate &imm) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1) {
|
| + if (isByteSizedArithType(Ty)) {
|
| EmitComplexI8(3, Operand(reg), imm);
|
| return;
|
| }
|
| @@ -1449,7 +1449,7 @@ void AssemblerX86::div(Type Ty, GPRRegister reg) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0xF6);
|
| else
|
| EmitUint8(0xF7);
|
| @@ -1460,7 +1460,7 @@ void AssemblerX86::div(Type Ty, const Address &addr) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0xF6);
|
| else
|
| EmitUint8(0xF7);
|
| @@ -1471,7 +1471,7 @@ void AssemblerX86::idiv(Type Ty, GPRRegister reg) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0xF6);
|
| else
|
| EmitUint8(0xF7);
|
| @@ -1482,7 +1482,7 @@ void AssemblerX86::idiv(Type Ty, const Address &addr) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0xF6);
|
| else
|
| EmitUint8(0xF7);
|
| @@ -1526,7 +1526,7 @@ void AssemblerX86::mul(Type Ty, GPRRegister reg) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0xF6);
|
| else
|
| EmitUint8(0xF7);
|
| @@ -1537,7 +1537,7 @@ void AssemblerX86::mul(Type Ty, const Address &address) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0xF6);
|
| else
|
| EmitUint8(0xF7);
|
| @@ -1650,7 +1650,7 @@ void AssemblerX86::neg(Type Ty, GPRRegister reg) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0xF6);
|
| else
|
| EmitUint8(0xF7);
|
| @@ -1661,7 +1661,7 @@ void AssemblerX86::neg(Type Ty, const Address &addr) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0xF6);
|
| else
|
| EmitUint8(0xF7);
|
| @@ -1900,7 +1900,7 @@ void AssemblerX86::cmpxchg(Type Ty, const Address &address, GPRRegister reg) {
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| EmitUint8(0x0F);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0xB0);
|
| else
|
| EmitUint8(0xB1);
|
| @@ -1919,7 +1919,7 @@ void AssemblerX86::xadd(Type Ty, const Address &addr, GPRRegister reg) {
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| EmitUint8(0x0F);
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0xC0);
|
| else
|
| EmitUint8(0xC1);
|
| @@ -1930,7 +1930,7 @@ void AssemblerX86::xchg(Type Ty, const Address &addr, GPRRegister reg) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| if (Ty == IceType_i16)
|
| EmitOperandSizeOverride();
|
| - if (Ty == IceType_i8 || Ty == IceType_i1)
|
| + if (isByteSizedArithType(Ty))
|
| EmitUint8(0x86);
|
| else
|
| EmitUint8(0x87);
|
|
|