Index: unittest/AssemblerX8664/ControlFlow.cpp |
diff --git a/unittest/AssemblerX8664/ControlFlow.cpp b/unittest/AssemblerX8664/ControlFlow.cpp |
index d22cca541c6a75f8e5f82a5eba7f2083679eb6bf..47272fa5f4e764633f4495b3921896d077ecfa42 100644 |
--- a/unittest/AssemblerX8664/ControlFlow.cpp |
+++ b/unittest/AssemblerX8664/ControlFlow.cpp |
@@ -160,6 +160,7 @@ TEST_F(AssemblerX8664Test, CallAddr) { |
do { \ |
const uint32_t T0 = allocateQword(); \ |
const uint64_t V0 = 0xA0C0FFEEBEEFFEEFull; \ |
+ const uint32_t T1 = allocateDword(); \ |
__ call(Immediate(16)); \ |
int CallTargetAddr = codeBytesSize() + 12; \ |
__ mov(IceType_i8, Encoded_GPR_##Dst##l(), Immediate(0xf4)); \ |
@@ -168,9 +169,9 @@ TEST_F(AssemblerX8664Test, CallAddr) { |
__ hlt(); \ |
} \ |
__ mov(IceType_i64, Encoded_GPR_##Dst##q(), dwordAddress(T0)); \ |
- __ mov(IceType_i64, Encoded_GPR_##Src##q(), Encoded_GPR_rsp()); \ |
- __ call(Address(Encoded_GPR_##Src##q(), 0, AssemblerFixup::NoFixup)); \ |
__ popl(Encoded_GPR_##Src##q()); \ |
+ __ mov(IceType_i32, dwordAddress(T1), Encoded_GPR_##Src##d()); \ |
+ __ call(dwordAddress(T1)); \ |
\ |
AssembledTest test = assemble(); \ |
test.setQwordTo(T0, V0); \ |