diff options
author | iximeow <me@iximeow.net> | 2024-06-23 15:15:50 -0700 |
---|---|---|
committer | iximeow <me@iximeow.net> | 2024-06-23 15:15:50 -0700 |
commit | 2002347272391dc6a70d83fe8293f2ce35ed26ee (patch) | |
tree | 2afdfc0e24a07237752377f2cd30d243c465488b /src/protected_mode/mod.rs | |
parent | 2ac46a98585b93f62961fdd82a1f2d1266761305 (diff) |
add additional `call` test cases
fix 32-bit 66-prefixed ff /2 call not having 16-bit operands
fix momentary regression in rendering `call` instructions to string
Diffstat (limited to 'src/protected_mode/mod.rs')
-rw-r--r-- | src/protected_mode/mod.rs | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/protected_mode/mod.rs b/src/protected_mode/mod.rs index f2b10f5..38f8310 100644 --- a/src/protected_mode/mod.rs +++ b/src/protected_mode/mod.rs @@ -7529,11 +7529,8 @@ fn read_operands< .with_id(modrm_start - 8) ); if instruction.operands[0] == OperandSpec::RegMMM { - if opcode == Opcode::CALL || opcode == Opcode::JMP { - instruction.regs[1].bank = RegisterBank::D; - if opcode == Opcode::CALL { - instruction.mem_size = 4; - } + if opcode == Opcode::CALL { + instruction.mem_size = 4; } else if opcode == Opcode::PUSH || opcode == Opcode::POP { if instruction.prefixes.operand_size() { instruction.mem_size = 2; |