diff options
| -rw-r--r-- | arch/x86/il.cpp | 10 |
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, |
