Add support for far returns

This commit is contained in:
Alexis Engelke
2019-11-02 17:08:37 +01:00
parent c4a4df458d
commit 915c2296c1
2 changed files with 4 additions and 3 deletions

View File

@@ -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;

View File

@@ -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