diff options
author | Paul Daniel Faria <paulfaria@google.com> | 2024-05-11 16:37:52 +0000 |
---|---|---|
committer | Paul Daniel Faria <paulfaria@google.com> | 2024-05-11 16:39:21 +0000 |
commit | be4d336939a3a9bc5e384d1d81cf54e45334392a (patch) | |
tree | 8d052fed659c2f5e5bfd77c9dd336d7499387b46 | |
parent | 30bd2e62ad64b02adc849b062a4bdb61a34743d4 (diff) | |
download | binary_translation-master.tar.gz |
Needed to and with the value of the constant and not its
memory address.
Test: m berberis_all berberis_run_host_tests, inline asm tests
Change-Id: I6acc10da85213e7b01b30cd4210cc71e3874fdad
-rw-r--r-- | backend/x86_64/lir_instructions.json | 1 | ||||
-rw-r--r-- | heavy_optimizer/riscv64/frontend.h | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/backend/x86_64/lir_instructions.json b/backend/x86_64/lir_instructions.json index 663305c2..ba093ff1 100644 --- a/backend/x86_64/lir_instructions.json +++ b/backend/x86_64/lir_instructions.json @@ -31,6 +31,7 @@ "AddpdXRegXReg", "AddpsXRegXReg", "AndqRegImm", + "AndqRegMemInsns", "AndqRegReg", "BtqRegImm", "Cmc", diff --git a/heavy_optimizer/riscv64/frontend.h b/heavy_optimizer/riscv64/frontend.h index 30c5e149..17de50c8 100644 --- a/heavy_optimizer/riscv64/frontend.h +++ b/heavy_optimizer/riscv64/frontend.h @@ -376,7 +376,7 @@ class HeavyOptimizerFrontend { Gen<x86_64::AndbRegImm>(tmp, kCsrMask<kName>, GetFlagsRegister()); Gen<x86_64::MovbMemBaseDispReg>(x86_64::kMachineRegRBP, kCsrFieldOffset<kName>, tmp); } else if constexpr (sizeof(CsrFieldType<kName>) == 8) { - Gen<x86_64::AndqRegImm>( + Gen<x86_64::AndqRegMemAbsolute>( tmp, constants_pool::kConst<uint64_t{kCsrMask<kName>}>, GetFlagsRegister()); Gen<x86_64::MovqMemBaseDispReg>(x86_64::kMachineRegRBP, kCsrFieldOffset<kName>, tmp); } else { |