From 10f16410684f0b13245af2220d33dbd09dbdf897 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Mon, 28 Sep 2020 16:52:37 -0700 Subject: [PATCH] Extends SHLD/SHRD unit tests to ensure Zext behaviour --- unittests/ASM/TwoByte/0F_A4_2.asm | 24 ++++++++++++++++++++++++ unittests/ASM/TwoByte/0F_A5_2.asm | 5 ++++- unittests/ASM/TwoByte/0F_AC_2.asm | 24 ++++++++++++++++++++++++ unittests/ASM/TwoByte/0F_AD_2.asm | 5 ++++- 4 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 unittests/ASM/TwoByte/0F_A4_2.asm create mode 100644 unittests/ASM/TwoByte/0F_AC_2.asm diff --git a/unittests/ASM/TwoByte/0F_A4_2.asm b/unittests/ASM/TwoByte/0F_A4_2.asm new file mode 100644 index 000000000..a78958b5e --- /dev/null +++ b/unittests/ASM/TwoByte/0F_A4_2.asm @@ -0,0 +1,24 @@ +%ifdef CONFIG +{ + "RegData": { + "R15": "0xFFFFFFFFFFFFFFFF", + "R14": "0x4141414141410000", + "R13": "0", + "R12": "0", + "R11": "0x00000000FFFFFFFF" + } +} +%endif + +mov r15, -1 +mov r14, 0x4141414141410000 +mov r13, 0 +mov r12, 0 +mov r11, -1 + +shld r14w, r15w, 0 +shld r13d, r15d, 0 +shld r12, r15, 0 +shld r11d, r15d, 0 + +hlt diff --git a/unittests/ASM/TwoByte/0F_A5_2.asm b/unittests/ASM/TwoByte/0F_A5_2.asm index 4e5f6f1ef..54fd9d1e1 100644 --- a/unittests/ASM/TwoByte/0F_A5_2.asm +++ b/unittests/ASM/TwoByte/0F_A5_2.asm @@ -4,7 +4,8 @@ "R15": "0xFFFFFFFFFFFFFFFF", "R14": "0x4141414141410000", "R13": "0", - "R12": "0" + "R12": "0", + "R11": "0x00000000FFFFFFFF" } } %endif @@ -14,9 +15,11 @@ mov r15, -1 mov r14, 0x4141414141410000 mov r13, 0 mov r12, 0 +mov r11, -1 shld r14w, r15w, cl shld r13d, r15d, cl shld r12, r15, cl +shld r11d, r15d, cl hlt diff --git a/unittests/ASM/TwoByte/0F_AC_2.asm b/unittests/ASM/TwoByte/0F_AC_2.asm new file mode 100644 index 000000000..119ab5c77 --- /dev/null +++ b/unittests/ASM/TwoByte/0F_AC_2.asm @@ -0,0 +1,24 @@ +%ifdef CONFIG +{ + "RegData": { + "R15": "0xFFFFFFFFFFFFFFFF", + "R14": "0x4141414141410000", + "R13": "0", + "R12": "0", + "R11": "0x00000000FFFFFFFF" + } +} +%endif + +mov r15, -1 +mov r14, 0x4141414141410000 +mov r13, 0 +mov r12, 0 +mov r11, -1 + +shrd r14w, r15w, 0 +shrd r13d, r15d, 0 +shrd r12, r15, 0 +shrd r11d, r15d, 0 + +hlt diff --git a/unittests/ASM/TwoByte/0F_AD_2.asm b/unittests/ASM/TwoByte/0F_AD_2.asm index 223ac68c9..aaad50598 100644 --- a/unittests/ASM/TwoByte/0F_AD_2.asm +++ b/unittests/ASM/TwoByte/0F_AD_2.asm @@ -4,7 +4,8 @@ "R15": "0xFFFFFFFFFFFFFFFF", "R14": "0x4141414141410000", "R13": "0", - "R12": "0" + "R12": "0", + "R11": "0x00000000FFFFFFFF" } } %endif @@ -14,9 +15,11 @@ mov r15, -1 mov r14, 0x4141414141410000 mov r13, 0 mov r12, 0 +mov r11, -1 shrd r14w, r15w, cl shrd r13d, r15d, cl shrd r12, r15, cl +shrd r11d, r15d, cl hlt