diff options
author | iximeow <me@iximeow.net> | 2023-12-16 14:12:17 -0800 |
---|---|---|
committer | iximeow <me@iximeow.net> | 2023-12-16 14:44:07 -0800 |
commit | 4d2e196e616162726c6211abc46c043078425322 (patch) | |
tree | 5188c8b4bd59ce46872cb34422e4681ab461e65e /test | |
parent | fafbd6d37329e4b9fd862ed86767a943086334be (diff) |
abnormal memory sizes for keylocker instructions are not bugs
new `does_not_decode_invalid_registers` fuzzer found other bugs! the
384-bit accesses for 128b keylocker instructions are an
otherwise-unknown size and had a memory size of `BUG`. they are not
bugs. give the memory size a real name.
Diffstat (limited to 'test')
-rw-r--r-- | test/long_mode/mod.rs | 5 | ||||
-rw-r--r-- | test/protected_mode/mod.rs | 5 | ||||
-rw-r--r-- | test/real_mode/mod.rs | 1 |
3 files changed, 11 insertions, 0 deletions
diff --git a/test/long_mode/mod.rs b/test/long_mode/mod.rs index 25a303c..6b04be2 100644 --- a/test/long_mode/mod.rs +++ b/test/long_mode/mod.rs @@ -3442,6 +3442,11 @@ fn test_sevsnp() { test_display(&[0xf2, 0x0f, 0x01, 0xfe], "rmpupdate"); } +#[test] +fn test_keylocker() { + test_display(&[0xf3, 0x0f, 0x38, 0xdd, 0x03], "aesdec128kl xmm0, m384b [rbx]"); +} + // some test cases are best just lifted from llvm or gcc. #[test] fn from_llvm() { diff --git a/test/protected_mode/mod.rs b/test/protected_mode/mod.rs index 8b5571d..752c9df 100644 --- a/test/protected_mode/mod.rs +++ b/test/protected_mode/mod.rs @@ -3118,6 +3118,11 @@ fn test_sevsnp() { test_display(&[0xf2, 0x0f, 0x01, 0xfe], "rmpupdate"); } +#[test] +fn test_keylocker() { + test_display(&[0xf3, 0x0f, 0x38, 0xdd, 0x03], "aesdec128kl xmm0, m384b [ebx]"); +} + // some test cases are best just lifted from llvm or gcc. #[test] fn from_llvm() { diff --git a/test/real_mode/mod.rs b/test/real_mode/mod.rs index 7987e4a..1b1a378 100644 --- a/test/real_mode/mod.rs +++ b/test/real_mode/mod.rs @@ -17879,6 +17879,7 @@ fn test_real_mode() { test_display(&[0xf3, 0x0f, 0x2c, 0xc1], "cvttss2si eax, xmm1"); test_display(&[0xf3, 0x0f, 0x2d, 0x01], "cvtss2si eax, dword [bx + di * 1]"); test_display(&[0xf3, 0x0f, 0x2d, 0xc1], "cvtss2si eax, xmm1"); + test_display(&[0xf3, 0x0f, 0x38, 0xdd, 0x03], "aesdec128kl xmm0, m384b [bp + di * 1]"); test_display(&[0xf3, 0x0f, 0x38, 0xf6, 0x01], "adox eax, dword [bx + di * 1]"); test_display(&[0xf3, 0x0f, 0x38, 0xf6, 0xc1], "adox eax, ecx"); test_display(&[0xf3, 0x0f, 0x51, 0x01], "sqrtss xmm0, dword [bx + di * 1]"); |