Index: unittest/AssemblerX8664/GPRArith.cpp |
diff --git a/unittest/AssemblerX8664/GPRArith.cpp b/unittest/AssemblerX8664/GPRArith.cpp |
index f5404f84118df5746d8b1068903b7a204a36a7af..ad2af880b26f6a3425e681abdbde702581a2ddaf 100644 |
--- a/unittest/AssemblerX8664/GPRArith.cpp |
+++ b/unittest/AssemblerX8664/GPRArith.cpp |
@@ -112,12 +112,13 @@ TEST_F(AssemblerX8664Test, Lea) { |
do { \ |
static constexpr char TestString[] = \ |
"(" #Base ", " #BaseValue ", " #Dst ")"; \ |
+ static constexpr AssemblerFixup *Fixup = nullptr; \ |
if (Encoded_GPR_##Base() != Encoded_GPR_esp() && \ |
Encoded_GPR_##Base() != Encoded_GPR_r9()) { \ |
__ mov(IceType_i32, Encoded_GPR_##Base(), Immediate(BaseValue)); \ |
} \ |
__ lea(IceType_i32, Encoded_GPR_##Dst(), \ |
- Address(Encoded_GPR_##Base(), Disp)); \ |
+ Address(Encoded_GPR_##Base(), Disp, Fixup)); \ |
AssembledTest test = assemble(); \ |
test.run(); \ |
ASSERT_EQ(test.Base##d() + (Disp), test.Dst##d()) \ |
@@ -130,17 +131,18 @@ TEST_F(AssemblerX8664Test, Lea) { |
static constexpr char TestString[] = \ |
"(" #Index ", " #IndexValue ", " #Dst0 ", " #Dst1 ", " #Dst2 \ |
", " #Dst3 ")"; \ |
+ static constexpr AssemblerFixup *Fixup = nullptr; \ |
if (Encoded_GPR_##Index() != Encoded_GPR_r9()) { \ |
__ mov(IceType_i32, Encoded_GPR_##Index(), Immediate(IndexValue)); \ |
} \ |
__ lea(IceType_i32, Encoded_GPR_##Dst0(), \ |
- Address(Encoded_GPR_##Index(), Traits::TIMES_1, Disp)); \ |
+ Address(Encoded_GPR_##Index(), Traits::TIMES_1, Disp, Fixup)); \ |
__ lea(IceType_i32, Encoded_GPR_##Dst1(), \ |
- Address(Encoded_GPR_##Index(), Traits::TIMES_2, Disp)); \ |
+ Address(Encoded_GPR_##Index(), Traits::TIMES_2, Disp, Fixup)); \ |
__ lea(IceType_i32, Encoded_GPR_##Dst2(), \ |
- Address(Encoded_GPR_##Index(), Traits::TIMES_4, Disp)); \ |
+ Address(Encoded_GPR_##Index(), Traits::TIMES_4, Disp, Fixup)); \ |
__ lea(IceType_i32, Encoded_GPR_##Dst3(), \ |
- Address(Encoded_GPR_##Index(), Traits::TIMES_8, Disp)); \ |
+ Address(Encoded_GPR_##Index(), Traits::TIMES_8, Disp, Fixup)); \ |
AssembledTest test = assemble(); \ |
test.run(); \ |
ASSERT_EQ((test.Index##d() << Traits::TIMES_1) + (Disp), test.Dst0##d()) \ |
@@ -160,6 +162,7 @@ TEST_F(AssemblerX8664Test, Lea) { |
static constexpr char TestString[] = \ |
"(" #Base ", " #BaseValue ", " #Index ", " #IndexValue ", " #Dst0 \ |
", " #Dst1 ", " #Dst2 ", " #Dst3 ")"; \ |
+ static constexpr AssemblerFixup *Fixup = nullptr; \ |
if (Encoded_GPR_##Base() != Encoded_GPR_esp() && \ |
Encoded_GPR_##Base() != Encoded_GPR_r9()) { \ |
__ mov(IceType_i32, Encoded_GPR_##Base(), Immediate(BaseValue)); \ |
@@ -171,16 +174,16 @@ TEST_F(AssemblerX8664Test, Lea) { |
\ |
__ lea(IceType_i32, Encoded_GPR_##Dst0(), \ |
Address(Encoded_GPR_##Base(), Encoded_GPR_##Index(), \ |
- Traits::TIMES_1, Disp)); \ |
+ Traits::TIMES_1, Disp, Fixup)); \ |
__ lea(IceType_i32, Encoded_GPR_##Dst1(), \ |
Address(Encoded_GPR_##Base(), Encoded_GPR_##Index(), \ |
- Traits::TIMES_2, Disp)); \ |
+ Traits::TIMES_2, Disp, Fixup)); \ |
__ lea(IceType_i32, Encoded_GPR_##Dst2(), \ |
Address(Encoded_GPR_##Base(), Encoded_GPR_##Index(), \ |
- Traits::TIMES_4, Disp)); \ |
+ Traits::TIMES_4, Disp, Fixup)); \ |
__ lea(IceType_i32, Encoded_GPR_##Dst3(), \ |
Address(Encoded_GPR_##Base(), Encoded_GPR_##Index(), \ |
- Traits::TIMES_8, Disp)); \ |
+ Traits::TIMES_8, Disp, Fixup)); \ |
AssembledTest test = assemble(); \ |
test.run(); \ |
uint32_t ExpectedIndexValue = test.Index(); \ |
@@ -322,8 +325,8 @@ TEST_F(AssemblerX8664LowLevelTest, LeaAbsolute) { |
#define TestLeaAbsolute(Dst, Value) \ |
do { \ |
static constexpr char TestString[] = "(" #Dst ", " #Value ")"; \ |
- __ lea(IceType_i32, GPRRegister::Encoded_Reg_##Dst, \ |
- Address(Address::ABSOLUTE, Value)); \ |
+ static constexpr AssemblerFixup *Fixup = nullptr; \ |
+ __ lea(IceType_i32, GPRRegister::Encoded_Reg_##Dst, Address(Value, Fixup));\ |
static constexpr uint32_t ByteCount = 6; \ |
ASSERT_EQ(ByteCount, codeBytesSize()) << TestString; \ |
static constexpr uint8_t Opcode = 0x8D; \ |