Add support for far returns
This commit is contained in:
2
decode.c
2
decode.c
@@ -517,7 +517,7 @@ fd_decode(const uint8_t* buffer, size_t len_sz, int mode_int, uintptr_t address,
|
|||||||
uint8_t imm_size;
|
uint8_t imm_size;
|
||||||
if (DESC_IMM_BYTE(desc))
|
if (DESC_IMM_BYTE(desc))
|
||||||
imm_size = 1;
|
imm_size = 1;
|
||||||
else if (UNLIKELY(instr->type == FDI_RET_IMM))
|
else if (UNLIKELY(instr->type == FDI_RET_IMM || instr->type == FDI_RETF))
|
||||||
imm_size = 2;
|
imm_size = 2;
|
||||||
else if (UNLIKELY(instr->type == FDI_ENTER))
|
else if (UNLIKELY(instr->type == FDI_ENTER))
|
||||||
imm_size = 3;
|
imm_size = 3;
|
||||||
|
|||||||
@@ -203,8 +203,9 @@ c7//f8 D IMM - - - XBEGIN
|
|||||||
# ENTER immediate handled in code
|
# ENTER immediate handled in code
|
||||||
c8 I IMM32 - - - ENTER DEF64 INSTR_WIDTH
|
c8 I IMM32 - - - ENTER DEF64 INSTR_WIDTH
|
||||||
c9 NP - - - - LEAVE DEF64 INSTR_WIDTH
|
c9 NP - - - - LEAVE DEF64 INSTR_WIDTH
|
||||||
#ca RETf TODO, ONLY32
|
# RETF immediate size handled in code
|
||||||
#cb RETf TODO, ONLY32
|
ca I IMM16 - - - RETF DEF64 INSTR_WIDTH
|
||||||
|
cb NP - - - - RETF DEF64 INSTR_WIDTH
|
||||||
cc NP - - - - INT3
|
cc NP - - - - INT3
|
||||||
cd I IMM8 - - - INT IMM_8
|
cd I IMM8 - - - INT IMM_8
|
||||||
ce NP - - - - INTO ONLY32
|
ce NP - - - - INTO ONLY32
|
||||||
|
|||||||
Reference in New Issue
Block a user