diff options
author | iximeow <me@iximeow.net> | 2022-01-01 02:22:43 -0800 |
---|---|---|
committer | iximeow <me@iximeow.net> | 2022-01-01 02:22:43 -0800 |
commit | 3b834ed7b77cadb09e2f37fd6234f24925b875b8 (patch) | |
tree | 038808bb976ad5102f3cbe93ad10597c615cf9d7 /src/armv8 | |
parent | eb867d51ed8ad3b45d710f4ae3eb2fbb52605cb6 (diff) |
more inconvenient test case handling
Diffstat (limited to 'src/armv8')
-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, |