diff options
Diffstat (limited to 'src/armv8/a64.rs')
-rw-r--r-- | src/armv8/a64.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/armv8/a64.rs b/src/armv8/a64.rs index eb709d0..c0d61e6 100644 --- a/src/armv8/a64.rs +++ b/src/armv8/a64.rs @@ -7421,7 +7421,7 @@ impl Decoder<ARMv8> for InstDecoder { return Err(DecodeError::InvalidOpcode); } - if opcode >= 0b001000 && Rn != 0b11111 { + if opcode >= 0b100000 { return Err(DecodeError::InvalidOperand); } @@ -7449,6 +7449,9 @@ impl Decoder<ARMv8> for InstDecoder { if opcode < 0b001000 { Operand::RegisterOrSP(SizeCode::X, Rn) } else { + if Rn != 0b11111 { + return Err(DecodeError::InvalidOpcode); + } Operand::Nothing }, Operand::Nothing, |