Index: unittest/AssemblerX8632/GPRArith.cpp |
diff --git a/unittest/AssemblerX8632/GPRArith.cpp b/unittest/AssemblerX8632/GPRArith.cpp |
index 6ca27ace641c25b6a89f35c8dc8db997016cc0fd..e4683f39980962ba3861c31dbb39b021cada5774 100644 |
--- a/unittest/AssemblerX8632/GPRArith.cpp |
+++ b/unittest/AssemblerX8632/GPRArith.cpp |
@@ -126,13 +126,14 @@ TEST_F(AssemblerX8632Test, Lea) { |
do { \ |
static constexpr char TestString[] = \ |
"(" #Base ", " #BaseValue ", " #Dst ")"; \ |
+ static constexpr AssemblerFixup *Fixup = nullptr; \ |
if (GPRRegister::Encoded_Reg_##Base != GPRRegister::Encoded_Reg_esp && \ |
GPRRegister::Encoded_Reg_##Base != GPRRegister::Encoded_Reg_ebp) { \ |
__ mov(IceType_i32, GPRRegister::Encoded_Reg_##Base, \ |
Immediate(BaseValue)); \ |
} \ |
__ lea(IceType_i32, GPRRegister::Encoded_Reg_##Dst, \ |
- Address(GPRRegister::Encoded_Reg_##Base, Disp)); \ |
+ Address(GPRRegister::Encoded_Reg_##Base, Disp, Fixup)); \ |
AssembledTest test = assemble(); \ |
test.run(); \ |
ASSERT_EQ(test.Base() + (Disp), test.Dst()) << TestString << " with Disp " \ |
@@ -145,16 +146,21 @@ TEST_F(AssemblerX8632Test, Lea) { |
static constexpr char TestString[] = \ |
"(" #Index ", " #IndexValue ", " #Dst0 ", " #Dst1 ", " #Dst2 \ |
", " #Dst3 ")"; \ |
+ static constexpr AssemblerFixup *Fixup = nullptr; \ |
__ mov(IceType_i32, GPRRegister::Encoded_Reg_##Index, \ |
Immediate(IndexValue)); \ |
__ lea(IceType_i32, GPRRegister::Encoded_Reg_##Dst0, \ |
- Address(GPRRegister::Encoded_Reg_##Index, Traits::TIMES_1, Disp)); \ |
+ Address(GPRRegister::Encoded_Reg_##Index, Traits::TIMES_1, Disp, \ |
+ Fixup)); \ |
__ lea(IceType_i32, GPRRegister::Encoded_Reg_##Dst1, \ |
- Address(GPRRegister::Encoded_Reg_##Index, Traits::TIMES_2, Disp)); \ |
+ Address(GPRRegister::Encoded_Reg_##Index, Traits::TIMES_2, Disp, \ |
+ Fixup)); \ |
__ lea(IceType_i32, GPRRegister::Encoded_Reg_##Dst2, \ |
- Address(GPRRegister::Encoded_Reg_##Index, Traits::TIMES_4, Disp)); \ |
+ Address(GPRRegister::Encoded_Reg_##Index, Traits::TIMES_4, Disp, \ |
+ Fixup)); \ |
__ lea(IceType_i32, GPRRegister::Encoded_Reg_##Dst3, \ |
- Address(GPRRegister::Encoded_Reg_##Index, Traits::TIMES_8, Disp)); \ |
+ Address(GPRRegister::Encoded_Reg_##Index, Traits::TIMES_8, Disp, \ |
+ Fixup)); \ |
AssembledTest test = assemble(); \ |
test.run(); \ |
ASSERT_EQ((test.Index() << Traits::TIMES_1) + (Disp), test.Dst0()) \ |
@@ -174,6 +180,7 @@ TEST_F(AssemblerX8632Test, Lea) { |
static constexpr char TestString[] = \ |
"(" #Base ", " #BaseValue ", " #Index ", " #IndexValue ", " #Dst0 \ |
", " #Dst1 ", " #Dst2 ", " #Dst3 ")"; \ |
+ static constexpr AssemblerFixup *Fixup = nullptr; \ |
if (GPRRegister::Encoded_Reg_##Base != GPRRegister::Encoded_Reg_esp && \ |
GPRRegister::Encoded_Reg_##Base != GPRRegister::Encoded_Reg_ebp) { \ |
__ mov(IceType_i32, GPRRegister::Encoded_Reg_##Base, \ |
@@ -186,16 +193,20 @@ TEST_F(AssemblerX8632Test, Lea) { |
} \ |
__ lea(IceType_i32, GPRRegister::Encoded_Reg_##Dst0, \ |
Address(GPRRegister::Encoded_Reg_##Base, \ |
- GPRRegister::Encoded_Reg_##Index, Traits::TIMES_1, Disp)); \ |
+ GPRRegister::Encoded_Reg_##Index, Traits::TIMES_1, Disp, \ |
+ Fixup)); \ |
__ lea(IceType_i32, GPRRegister::Encoded_Reg_##Dst1, \ |
Address(GPRRegister::Encoded_Reg_##Base, \ |
- GPRRegister::Encoded_Reg_##Index, Traits::TIMES_2, Disp)); \ |
+ GPRRegister::Encoded_Reg_##Index, Traits::TIMES_2, Disp, \ |
+ Fixup)); \ |
__ lea(IceType_i32, GPRRegister::Encoded_Reg_##Dst2, \ |
Address(GPRRegister::Encoded_Reg_##Base, \ |
- GPRRegister::Encoded_Reg_##Index, Traits::TIMES_4, Disp)); \ |
+ GPRRegister::Encoded_Reg_##Index, Traits::TIMES_4, Disp, \ |
+ Fixup)); \ |
__ lea(IceType_i32, GPRRegister::Encoded_Reg_##Dst3, \ |
Address(GPRRegister::Encoded_Reg_##Base, \ |
- GPRRegister::Encoded_Reg_##Index, Traits::TIMES_8, Disp)); \ |
+ GPRRegister::Encoded_Reg_##Index, Traits::TIMES_8, Disp, \ |
+ Fixup)); \ |
AssembledTest test = assemble(); \ |
test.run(); \ |
uint32_t ExpectedIndexValue = test.Index(); \ |
@@ -286,8 +297,8 @@ TEST_F(AssemblerX8632LowLevelTest, 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; \ |