diff options
Diffstat (limited to 'src/long_mode')
| -rw-r--r-- | src/long_mode/display.rs | 22 | 
1 files changed, 20 insertions, 2 deletions
| diff --git a/src/long_mode/display.rs b/src/long_mode/display.rs index 8750cc6..3631800 100644 --- a/src/long_mode/display.rs +++ b/src/long_mode/display.rs @@ -2709,10 +2709,28 @@ fn contextualize_c<T: fmt::Write, Color: fmt::Display, Y: YaxColors<Color>>(inst              write!(out, "{} = movntq({})", instr.operand(0), instr.operand(1))?;          }          Opcode::INC => { -            write!(out, "{}++", instr.operand(0))?; +            if instr.operand(0).is_memory() { +                match instr.mem_size { +                    1 => { write!(out, "byte {}++", instr.operand(0))?; }, +                    2 => { write!(out, "word {}++", instr.operand(0))?; }, +                    4 => { write!(out, "dword {}++", instr.operand(0))?; }, +                    _ => { write!(out, "qword {}++", instr.operand(0))?; }, // sizes that are not 1, 2, or 4, *better* be 8. +                } +            } else { +                write!(out, "{}++", instr.operand(0))?; +            }          }          Opcode::DEC => { -            write!(out, "{}--", instr.operand(0))?; +            if instr.operand(0).is_memory() { +                match instr.mem_size { +                    1 => { write!(out, "byte {}--", instr.operand(0))?; }, +                    2 => { write!(out, "word {}--", instr.operand(0))?; }, +                    4 => { write!(out, "dword {}--", instr.operand(0))?; }, +                    _ => { write!(out, "qword {}--", instr.operand(0))?; }, // sizes that are not 1, 2, or 4, *better* be 8. +                } +            } else { +                write!(out, "{}--", instr.operand(0))?; +            }          }          Opcode::JG => {              write!(out, "if greater(rflags) then jmp {}", instr.operand(0))?; | 
