From 9eba1bb003e65a664367c9bf2b6ed03d418aa3c2 Mon Sep 17 00:00:00 2001 From: Brandon Miller Date: Mon, 7 Apr 2025 15:38:22 -0400 Subject: Omit the branch when lifting xabort When not in RTM, the xabort intrinsic instruction is a NOP. When in RTM, the only way to resolve the branch destination is to resolve the fallback address computed by a seperate xbegin instruction --- arch/x86/arch_x86.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/arch_x86.cpp b/arch/x86/arch_x86.cpp index eb1b710d..4fb81c11 100644 --- a/arch/x86/arch_x86.cpp +++ b/arch/x86/arch_x86.cpp @@ -464,7 +464,7 @@ void X86CommonArchitecture::SetInstructionInfoForInstruction(uint64_t addr, Inst case XED_CATEGORY_UNCOND_BR: if (xed_operand_name(xed_inst_operand(xed_decoded_inst_inst(xedd), 0)) == XED_OPERAND_RELBR) result.AddBranch(UnconditionalBranch, abs_br); - else + else if (xedd_iClass != XED_ICLASS_XABORT) result.AddBranch(UnresolvedBranch); break; -- cgit v1.3.1