| Index: unittest/AssemblerX8664/GPRArith.cpp
|
| diff --git a/unittest/AssemblerX8664/GPRArith.cpp b/unittest/AssemblerX8664/GPRArith.cpp
|
| index 09f29f70dec456d84e393df0660660669d0ec178..2ec85cc5aa5208542f4e8ec0c76ca55ffb8f4f01 100644
|
| --- a/unittest/AssemblerX8664/GPRArith.cpp
|
| +++ b/unittest/AssemblerX8664/GPRArith.cpp
|
| @@ -329,15 +329,18 @@ TEST_F(AssemblerX8664LowLevelTest, LeaAbsolute) {
|
| static constexpr char TestString[] = "(" #Dst ", " #Value ")"; \
|
| __ lea(IceType_i32, GPRRegister::Encoded_Reg_##Dst, \
|
| Address(Value, AssemblerFixup::NoFixup)); \
|
| - static constexpr uint32_t ByteCount = 6; \
|
| + static constexpr uint32_t ByteCount = 8; \
|
| ASSERT_EQ(ByteCount, codeBytesSize()) << TestString; \
|
| static constexpr uint8_t Opcode = 0x8D; \
|
| static constexpr uint8_t ModRM = \
|
| - /*mod=*/0x00 | /*reg*/ (GPRRegister::Encoded_Reg_##Dst << 3) | \
|
| - /*rm*/ GPRRegister::Encoded_Reg_ebp; \
|
| + /*mod*/ 0x00 | /*reg*/ (GPRRegister::Encoded_Reg_##Dst << 3) | \
|
| + /*rm*/ GPRRegister::Encoded_Reg_esp; \
|
| + static constexpr uint8_t SIB = \
|
| + /*Scale*/ 0x00 | /*Index*/ (GPRRegister::Encoded_Reg_esp << 3) | \
|
| + /*base*/ GPRRegister::Encoded_Reg_ebp; \
|
| ASSERT_TRUE(verifyBytes<ByteCount>( \
|
| - codeBytes(), Opcode, ModRM, (Value)&0xFF, (Value >> 8) & 0xFF, \
|
| - (Value >> 16) & 0xFF, (Value >> 24) & 0xFF)); \
|
| + codeBytes(), 0x67, Opcode, ModRM, SIB, (Value)&0xFF, \
|
| + (Value >> 8) & 0xFF, (Value >> 16) & 0xFF, (Value >> 24) & 0xFF)); \
|
| reset(); \
|
| } while (0)
|
|
|
|
|