diff options
author | iximeow <me@iximeow.net> | 2024-03-16 11:50:08 -0700 |
---|---|---|
committer | iximeow <me@iximeow.net> | 2024-03-16 11:50:08 -0700 |
commit | 97c724d483c309b95cba75dae3445b069e8b7915 (patch) | |
tree | 419fa6126ce155d44328ad7e4109dd1021a57366 | |
parent | 17f9330abed70364edc404f95471298e2b9bd29a (diff) |
fix ldrsw register size
also unignore tests that would have caught this
fix test expectation that predated using pc-relative syntax
and fix a test that expected an instruction to be disassembled as "invalid" successfully, rather than returning an error
-rw-r--r-- | src/armv8/a64.rs | 2 | ||||
-rw-r--r-- | tests/armv8/a64.rs | 8 |
2 files changed, 3 insertions, 7 deletions
diff --git a/src/armv8/a64.rs b/src/armv8/a64.rs index a1fc8bf..55fbbed 100644 --- a/src/armv8/a64.rs +++ b/src/armv8/a64.rs @@ -8433,7 +8433,7 @@ impl Decoder<ARMv8> for InstDecoder { } 0b10 => { inst.opcode = Opcode::LDRSW; - SizeCode::W + SizeCode::X } 0b11 => { inst.opcode = Opcode::PRFM; diff --git a/tests/armv8/a64.rs b/tests/armv8/a64.rs index b3838cc..6af5291 100644 --- a/tests/armv8/a64.rs +++ b/tests/armv8/a64.rs @@ -153,7 +153,6 @@ fn test_decode_misc() { ); } -#[ignore] #[test] fn test_display_ldr() { test_display( @@ -168,10 +167,7 @@ fn test_display_ldr() { [0xff, 0xff, 0x00, 0x9c], "ldr q31, $+0x1ffc" ); - test_display( - [0xff, 0xff, 0x00, 0xdc], - "invalid" - ); + test_err([0xff, 0xff, 0x00, 0xdc], DecodeError::InvalidOpcode); test_display( [0x88, 0xff, 0x00, 0x18], "ldr w8, $+0x1ff0" @@ -186,7 +182,7 @@ fn test_display_ldr() { ); test_display( [0x88, 0xff, 0x00, 0xd8], - "prfm plil1keep, #0x1ff0" + "prfm plil1keep, $+0x1ff0" ); } |