summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/x86/il.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/x86/il.cpp b/arch/x86/il.cpp
index 3dd9f87a..ba36190b 100644
--- a/arch/x86/il.cpp
+++ b/arch/x86/il.cpp
@@ -3552,11 +3552,19 @@ bool GetLowLevelILForInstruction(Architecture* arch, const uint64_t addr, LowLev
break;
case XED_ICLASS_SYSEXIT:
- case XED_ICLASS_SYSRET:
case XED_ICLASS_HLT:
il.AddInstruction(il.Trap(TRAP_GPF));
return false;
+ case XED_ICLASS_SYSRET:
+ il.AddInstruction(il.Return(il.Register(addrSize, XED_REG_ECX)));
+ break;
+
+ case XED_ICLASS_SYSRET64:
+ case XED_ICLASS_SYSRET_AMD:
+ il.AddInstruction(il.Return(il.Register(addrSize, XED_REG_RCX)));
+ break;
+
case XED_ICLASS_FLD:
il.AddInstruction(
il.RegisterStackPush(10,