aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2021-12-19 11:23:18 -0800
committeriximeow <me@iximeow.net>2021-12-19 11:23:18 -0800
commite7dec7baa9c6649d71e1b349d93dce6b0cd588bf (patch)
treee286c98a3b87febaef2e237f0db224bbe0c1f981 /src
parentd13d8ebfad98b3d547f455ec9d73dab98f0899c3 (diff)
fix incorrect memory size for f30f1e-style nop
not only did the instruction have wrong data, but if displayed, the formatter would panic.
Diffstat (limited to 'src')
-rw-r--r--src/long_mode/mod.rs1
-rw-r--r--src/protected_mode/mod.rs1
-rw-r--r--src/real_mode/mod.rs1
3 files changed, 3 insertions, 0 deletions
diff --git a/src/long_mode/mod.rs b/src/long_mode/mod.rs
index 7e8dff7..44cf992 100644
--- a/src/long_mode/mod.rs
+++ b/src/long_mode/mod.rs
@@ -8854,6 +8854,7 @@ fn unlikely_operands<
};
instruction.operands[1] = OperandSpec::RegRRR;
instruction.operands[0] = read_E(words, instruction, modrm, sz, sink)?;
+ instruction.mem_size = sz;
instruction.regs[0] =
RegSpec::from_parts((modrm >> 3) & 7, instruction.prefixes.rex_unchecked().r(), bank);
instruction.operand_count = 2;
diff --git a/src/protected_mode/mod.rs b/src/protected_mode/mod.rs
index 9c03faf..040a23e 100644
--- a/src/protected_mode/mod.rs
+++ b/src/protected_mode/mod.rs
@@ -8800,6 +8800,7 @@ fn unlikely_operands<
};
instruction.operands[1] = OperandSpec::RegRRR;
instruction.operands[0] = read_E(words, instruction, modrm, sz, sink)?;
+ instruction.mem_size = sz;
instruction.regs[0] =
RegSpec::from_parts((modrm >> 3) & 7, bank);
instruction.operand_count = 2;
diff --git a/src/real_mode/mod.rs b/src/real_mode/mod.rs
index 74e1c37..0a66ab9 100644
--- a/src/real_mode/mod.rs
+++ b/src/real_mode/mod.rs
@@ -8804,6 +8804,7 @@ fn unlikely_operands<
};
instruction.operands[1] = OperandSpec::RegRRR;
instruction.operands[0] = read_E(words, instruction, modrm, sz, sink)?;
+ instruction.mem_size = sz;
instruction.regs[0] =
RegSpec::from_parts((modrm >> 3) & 7, bank);
instruction.operand_count = 2;