diff options
| author | iximeow <me@iximeow.net> | 2026-05-24 21:22:13 +0000 |
|---|---|---|
| committer | iximeow <me@iximeow.net> | 2026-05-25 02:02:11 +0000 |
| commit | 5d537aee9e68ade8701f8995135b38a9d3c7f97f (patch) | |
| tree | e6fd79adaff2739dc640f0f2755eb89daa5630cf /src | |
| parent | 0363fd684c98ea08d8a9ee3a6f09d5c07e80d55c (diff) | |
gpr register size in real/protected mode
Diffstat (limited to 'src')
| -rw-r--r-- | src/protected_mode/mod.rs | 6 | ||||
| -rw-r--r-- | src/real_mode/mod.rs | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/protected_mode/mod.rs b/src/protected_mode/mod.rs index 3540aa3..4736352 100644 --- a/src/protected_mode/mod.rs +++ b/src/protected_mode/mod.rs @@ -7946,7 +7946,11 @@ fn read_operands< instruction.operand_count = 2; if mem_oper == OperandSpec::RegMMM { - instruction.regs[1].bank = RegisterBank::D; + if instruction.prefixes.operand_size() { + instruction.regs[1].bank = RegisterBank::W; + } else { + instruction.regs[1].bank = RegisterBank::D; + } } else { instruction.mem_size = 2; } diff --git a/src/real_mode/mod.rs b/src/real_mode/mod.rs index 715db85..097f6e5 100644 --- a/src/real_mode/mod.rs +++ b/src/real_mode/mod.rs @@ -7988,7 +7988,11 @@ fn read_operands< instruction.operand_count = 2; if mem_oper == OperandSpec::RegMMM { - instruction.regs[1].bank = RegisterBank::W; + if !instruction.prefixes.operand_size() { + instruction.regs[1].bank = RegisterBank::W; + } else { + instruction.regs[1].bank = RegisterBank::D; + } } else { instruction.mem_size = 2; } |
