diff options
author | iximeow <me@iximeow.net> | 2024-06-23 15:15:50 -0700 |
---|---|---|
committer | iximeow <me@iximeow.net> | 2024-06-23 15:15:50 -0700 |
commit | 2002347272391dc6a70d83fe8293f2ce35ed26ee (patch) | |
tree | 2afdfc0e24a07237752377f2cd30d243c465488b /test/real_mode/mod.rs | |
parent | 2ac46a98585b93f62961fdd82a1f2d1266761305 (diff) |
add additional `call` test cases
fix 32-bit 66-prefixed ff /2 call not having 16-bit operands
fix momentary regression in rendering `call` instructions to string
Diffstat (limited to 'test/real_mode/mod.rs')
-rw-r--r-- | test/real_mode/mod.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/test/real_mode/mod.rs b/test/real_mode/mod.rs index c5b1548..844a95e 100644 --- a/test/real_mode/mod.rs +++ b/test/real_mode/mod.rs @@ -16950,6 +16950,7 @@ fn test_real_mode() { test_display(&[0x66, 0xf3, 0x0f, 0x01, 0xe8], "setssbsy"); test_display(&[0x66, 0xf3, 0x0f, 0x01, 0xea], "saveprevssp"); test_display(&[0x66, 0xf3, 0x0f, 0xbd, 0xc1], "lzcnt eax, ecx"); + test_display(&[0x66, 0xff, 0xd0], "call eax"); test_display(&[0x66, 0xff, 0xe0], "jmp eax"); test_display(&[0x67, 0x0f, 0x5b, 0x01], "cvtdq2ps xmm0, xmmword [ecx]"); test_display(&[0x67, 0x66, 0x0f, 0x28, 0x00], "movapd xmm0, xmmword [eax]"); @@ -16960,6 +16961,7 @@ fn test_real_mode() { test_display(&[0x67, 0x66, 0x0f, 0x38, 0xdf, 0x0f], "aesdeclast xmm1, xmmword [edi]"); test_display(&[0x67, 0x66, 0x65, 0x3e, 0x0f, 0x6d, 0xd1], "punpckhqdq xmm2, xmm1"); test_display(&[0x67, 0xe5, 0x99], "in ax, 0x99"); + test_display(&[0x67, 0xff, 0xd0], "call ax"); test_display(&[0x67, 0xff, 0xe0], "jmp ax"); test_display(&[0x68, 0x7f, 0x63], "push 0x637f"); test_display(&[0x6b, 0x43, 0x6f, 0x6d], "imul ax, word [bp + di * 1 + 0x6f], 0x6d"); @@ -17945,6 +17947,7 @@ fn test_real_mode() { test_display(&[0xff, 0x75, 0x08], "push word [di + 0x8]"); test_display(&[0xff, 0x75, 0xb8], "push word [di - 0x48]"); test_display(&[0xff, 0xe0], "jmp ax"); + test_display(&[0xff, 0xd0], "call ax"); } #[test] |