summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2017-06-30 12:56:29 +0000
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2017-06-30 12:56:29 +0000
commit31866f9f66bf8ebee9f79a9fb10960cdc358a7cd (patch)
treeb350d7a7e00948ebe2e398cb32764a17acf99aa6 /test
parentd1814a363fbb24beaedb901a1e40def6c9392186 (diff)
[SystemZ] Add missing high-word facility instructions
There are a few instructions provided by the high-word facility (z196) that we cannot easily exploit for code generation. This patch at least adds those missing instructions for the assembler and disassembler. This means that now all nonprivileged instructions up to z13 are supported by the LLVM assembler / disassembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306821 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/MC/Disassembler/SystemZ/insns.txt204
-rw-r--r--test/MC/SystemZ/insn-bad-z196.s16
-rw-r--r--test/MC/SystemZ/insn-bad.s70
-rw-r--r--test/MC/SystemZ/insn-good-z196.s164
4 files changed, 454 insertions, 0 deletions
diff --git a/test/MC/Disassembler/SystemZ/insns.txt b/test/MC/Disassembler/SystemZ/insns.txt
index 75f7f9669b5..9775466137c 100644
--- a/test/MC/Disassembler/SystemZ/insns.txt
+++ b/test/MC/Disassembler/SystemZ/insns.txt
@@ -406,6 +406,36 @@
# CHECK: ah %r15, 0
0x4a 0xf0 0x00 0x00
+# CHECK: ahhhr %r0, %r0, %r0
+0xb9 0xc8 0x00 0x00
+
+# CHECK: ahhhr %r0, %r0, %r15
+0xb9 0xc8 0xf0 0x00
+
+# CHECK: ahhhr %r0, %r15, %r0
+0xb9 0xc8 0x00 0x0f
+
+# CHECK: ahhhr %r15, %r0, %r0
+0xb9 0xc8 0x00 0xf0
+
+# CHECK: ahhhr %r7, %r8, %r9
+0xb9 0xc8 0x90 0x78
+
+# CHECK: ahhlr %r0, %r0, %r0
+0xb9 0xd8 0x00 0x00
+
+# CHECK: ahhlr %r0, %r0, %r15
+0xb9 0xd8 0xf0 0x00
+
+# CHECK: ahhlr %r0, %r15, %r0
+0xb9 0xd8 0x00 0x0f
+
+# CHECK: ahhlr %r15, %r0, %r0
+0xb9 0xd8 0x00 0xf0
+
+# CHECK: ahhlr %r7, %r8, %r9
+0xb9 0xd8 0x90 0x78
+
# CHECK: ahi %r0, -32768
0xa7 0x0a 0x80 0x00
@@ -754,6 +784,36 @@
# CHECK: algsi 524287(%r15), 42
0xeb 0x2a 0xff 0xff 0x7f 0x7e
+# CHECK: alhhhr %r0, %r0, %r0
+0xb9 0xca 0x00 0x00
+
+# CHECK: alhhhr %r0, %r0, %r15
+0xb9 0xca 0xf0 0x00
+
+# CHECK: alhhhr %r0, %r15, %r0
+0xb9 0xca 0x00 0x0f
+
+# CHECK: alhhhr %r15, %r0, %r0
+0xb9 0xca 0x00 0xf0
+
+# CHECK: alhhhr %r7, %r8, %r9
+0xb9 0xca 0x90 0x78
+
+# CHECK: alhhlr %r0, %r0, %r0
+0xb9 0xda 0x00 0x00
+
+# CHECK: alhhlr %r0, %r0, %r15
+0xb9 0xda 0xf0 0x00
+
+# CHECK: alhhlr %r0, %r15, %r0
+0xb9 0xda 0x00 0x0f
+
+# CHECK: alhhlr %r15, %r0, %r0
+0xb9 0xda 0x00 0xf0
+
+# CHECK: alhhlr %r7, %r8, %r9
+0xb9 0xda 0x90 0x78
+
# CHECK: alhsik %r0, %r1, -32768
0xec 0x01 0x80 0x00 0x00 0xda
@@ -826,6 +886,42 @@
# CHECK: alsi 524287(%r15), 42
0xeb 0x2a 0xff 0xff 0x7f 0x6e
+# CHECK: alsih %r0, -2147483648
+0xcc 0x0a 0x80 0x00 0x00 0x00
+
+# CHECK: alsih %r0, -1
+0xcc 0x0a 0xff 0xff 0xff 0xff
+
+# CHECK: alsih %r0, 0
+0xcc 0x0a 0x00 0x00 0x00 0x00
+
+# CHECK: alsih %r0, 1
+0xcc 0x0a 0x00 0x00 0x00 0x01
+
+# CHECK: alsih %r0, 2147483647
+0xcc 0x0a 0x7f 0xff 0xff 0xff
+
+# CHECK: alsih %r15, 0
+0xcc 0xfa 0x00 0x00 0x00 0x00
+
+# CHECK: alsihn %r0, -2147483648
+0xcc 0x0b 0x80 0x00 0x00 0x00
+
+# CHECK: alsihn %r0, -1
+0xcc 0x0b 0xff 0xff 0xff 0xff
+
+# CHECK: alsihn %r0, 0
+0xcc 0x0b 0x00 0x00 0x00 0x00
+
+# CHECK: alsihn %r0, 1
+0xcc 0x0b 0x00 0x00 0x00 0x01
+
+# CHECK: alsihn %r0, 2147483647
+0xcc 0x0b 0x7f 0xff 0xff 0xff
+
+# CHECK: alsihn %r15, 0
+0xcc 0xfb 0x00 0x00 0x00 0x00
+
# CHECK: aly %r0, -524288
0xe3 0x00 0x00 0x00 0x80 0x5e
@@ -3058,6 +3154,18 @@
# CHECK: chf %r15, 0
0xe3 0xf0 0x00 0x00 0x00 0xcd
+# CHECK: chhr %r0, %r0
+0xb9 0xcd 0x00 0x00
+
+# CHECK: chhr %r0, %r15
+0xb9 0xcd 0x00 0x0f
+
+# CHECK: chhr %r15, %r0
+0xb9 0xcd 0x00 0xf0
+
+# CHECK: chhr %r7, %r8
+0xb9 0xcd 0x00 0x78
+
# CHECK: chhsi 0, 0
0xe5 0x54 0x00 0x00 0x00 0x00
@@ -3109,6 +3217,18 @@
# CHECK: chi %r15, 0
0xa7 0xfe 0x00 0x00
+# CHECK: chlr %r0, %r0
+0xb9 0xdd 0x00 0x00
+
+# CHECK: chlr %r0, %r15
+0xb9 0xdd 0x00 0x0f
+
+# CHECK: chlr %r15, %r0
+0xb9 0xdd 0x00 0xf0
+
+# CHECK: chlr %r7, %r8
+0xb9 0xdd 0x00 0x78
+
# CHECK: chsi 0, 0
0xe5 0x5c 0x00 0x00 0x00 0x00
@@ -3940,6 +4060,18 @@
# CHECK: clhf %r15, 0
0xe3 0xf0 0x00 0x00 0x00 0xcf
+# CHECK: clhhr %r0, %r0
+0xb9 0xcf 0x00 0x00
+
+# CHECK: clhhr %r0, %r15
+0xb9 0xcf 0x00 0x0f
+
+# CHECK: clhhr %r15, %r0
+0xb9 0xcf 0x00 0xf0
+
+# CHECK: clhhr %r7, %r8
+0xb9 0xcf 0x00 0x78
+
# CHECK: clhhsi 0, 0
0xe5 0x55 0x00 0x00 0x00 0x00
@@ -3961,6 +4093,18 @@
# CHECK: clhhsi 4095(%r15), 42
0xe5 0x55 0xff 0xff 0x00 0x2a
+# CHECK: clhlr %r0, %r0
+0xb9 0xdf 0x00 0x00
+
+# CHECK: clhlr %r0, %r15
+0xb9 0xdf 0x00 0x0f
+
+# CHECK: clhlr %r15, %r0
+0xb9 0xdf 0x00 0xf0
+
+# CHECK: clhlr %r7, %r8
+0xb9 0xdf 0x00 0x78
+
# CHECK: cli 0, 0
0x95 0x00 0x00 0x00
@@ -13332,6 +13476,36 @@
# CHECK: sh %r15, 0
0x4b 0xf0 0x00 0x00
+# CHECK: shhhr %r0, %r0, %r0
+0xb9 0xc9 0x00 0x00
+
+# CHECK: shhhr %r0, %r0, %r15
+0xb9 0xc9 0xf0 0x00
+
+# CHECK: shhhr %r0, %r15, %r0
+0xb9 0xc9 0x00 0x0f
+
+# CHECK: shhhr %r15, %r0, %r0
+0xb9 0xc9 0x00 0xf0
+
+# CHECK: shhhr %r7, %r8, %r9
+0xb9 0xc9 0x90 0x78
+
+# CHECK: shhlr %r0, %r0, %r0
+0xb9 0xd9 0x00 0x00
+
+# CHECK: shhlr %r0, %r0, %r15
+0xb9 0xd9 0xf0 0x00
+
+# CHECK: shhlr %r0, %r15, %r0
+0xb9 0xd9 0x00 0x0f
+
+# CHECK: shhlr %r15, %r0, %r0
+0xb9 0xd9 0x00 0xf0
+
+# CHECK: shhlr %r7, %r8, %r9
+0xb9 0xd9 0x90 0x78
+
# CHECK: shy %r0, -524288
0xe3 0x00 0x00 0x00 0x80 0x7b
@@ -13746,6 +13920,36 @@
# CHECK: slgrk %r2, %r3, %r4
0xb9 0xeb 0x40 0x23
+# CHECK: slhhhr %r0, %r0, %r0
+0xb9 0xcb 0x00 0x00
+
+# CHECK: slhhhr %r0, %r0, %r15
+0xb9 0xcb 0xf0 0x00
+
+# CHECK: slhhhr %r0, %r15, %r0
+0xb9 0xcb 0x00 0x0f
+
+# CHECK: slhhhr %r15, %r0, %r0
+0xb9 0xcb 0x00 0xf0
+
+# CHECK: slhhhr %r7, %r8, %r9
+0xb9 0xcb 0x90 0x78
+
+# CHECK: slhhlr %r0, %r0, %r0
+0xb9 0xdb 0x00 0x00
+
+# CHECK: slhhlr %r0, %r0, %r15
+0xb9 0xdb 0xf0 0x00
+
+# CHECK: slhhlr %r0, %r15, %r0
+0xb9 0xdb 0x00 0x0f
+
+# CHECK: slhhlr %r15, %r0, %r0
+0xb9 0xdb 0x00 0xf0
+
+# CHECK: slhhlr %r7, %r8, %r9
+0xb9 0xdb 0x90 0x78
+
# CHECK: sll %r0, 0
0x89 0x00 0x00 0x00
diff --git a/test/MC/SystemZ/insn-bad-z196.s b/test/MC/SystemZ/insn-bad-z196.s
index 78d50bca974..81cabef7840 100644
--- a/test/MC/SystemZ/insn-bad-z196.s
+++ b/test/MC/SystemZ/insn-bad-z196.s
@@ -43,6 +43,22 @@
aih %r0, (1 << 31)
#CHECK: error: invalid operand
+#CHECK: alsih %r0, (-1 << 31) - 1
+#CHECK: error: invalid operand
+#CHECK: alsih %r0, (1 << 31)
+
+ alsih %r0, (-1 << 31) - 1
+ alsih %r0, (1 << 31)
+
+#CHECK: error: invalid operand
+#CHECK: alsihn %r0, (-1 << 31) - 1
+#CHECK: error: invalid operand
+#CHECK: alsihn %r0, (1 << 31)
+
+ alsihn %r0, (-1 << 31) - 1
+ alsihn %r0, (1 << 31)
+
+#CHECK: error: invalid operand
#CHECK: axtra %f0, %f0, %f0, -1
#CHECK: error: invalid operand
#CHECK: axtra %f0, %f0, %f0, 16
diff --git a/test/MC/SystemZ/insn-bad.s b/test/MC/SystemZ/insn-bad.s
index 259ad05e5f4..f7a2a378930 100644
--- a/test/MC/SystemZ/insn-bad.s
+++ b/test/MC/SystemZ/insn-bad.s
@@ -127,6 +127,16 @@
ah %r0, -1
ah %r0, 4096
+#CHECK: error: instruction requires: high-word
+#CHECK: ahhhr %r0, %r0, %r0
+
+ ahhhr %r0, %r0, %r0
+
+#CHECK: error: instruction requires: high-word
+#CHECK: ahhlr %r0, %r0, %r0
+
+ ahhlr %r0, %r0, %r0
+
#CHECK: error: invalid operand
#CHECK: ahi %r0, -32769
#CHECK: error: invalid operand
@@ -222,6 +232,16 @@
algrk %r2,%r3,%r4
+#CHECK: error: instruction requires: high-word
+#CHECK: alhhhr %r0, %r0, %r0
+
+ alhhhr %r0, %r0, %r0
+
+#CHECK: error: instruction requires: high-word
+#CHECK: alhhlr %r0, %r0, %r0
+
+ alhhlr %r0, %r0, %r0
+
#CHECK: error: instruction requires: distinct-ops
#CHECK: alhsik %r1, %r2, 3
@@ -266,6 +286,16 @@
alsi 0, -129
alsi 0, 128
+#CHECK: error: instruction requires: high-word
+#CHECK: alsih %r0, 0
+
+ alsih %r0, 0
+
+#CHECK: error: instruction requires: high-word
+#CHECK: alsihn %r0, 0
+
+ alsihn %r0, 0
+
#CHECK: error: invalid operand
#CHECK: aly %r0, -524289
#CHECK: error: invalid operand
@@ -1176,6 +1206,11 @@
chf %r0, 0
+#CHECK: error: instruction requires: high-word
+#CHECK: chhr %r0, %r0
+
+ chhr %r0, %r0
+
#CHECK: error: invalid operand
#CHECK: chhsi -1, 0
#CHECK: error: invalid operand
@@ -1204,6 +1239,11 @@
chi %r0, 32768
chi %r0, foo
+#CHECK: error: instruction requires: high-word
+#CHECK: chlr %r0, %r0
+
+ chlr %r0, %r0
+
#CHECK: error: offset out of range
#CHECK: chrl %r0, -0x1000000002
#CHECK: error: offset out of range
@@ -1628,6 +1668,11 @@
clhf %r0, 0
+#CHECK: error: instruction requires: high-word
+#CHECK: clhhr %r0, %r0
+
+ clhhr %r0, %r0
+
#CHECK: error: invalid operand
#CHECK: clhhsi -1, 0
#CHECK: error: invalid operand
@@ -1645,6 +1690,11 @@
clhhsi 0, -1
clhhsi 0, 65536
+#CHECK: error: instruction requires: high-word
+#CHECK: clhlr %r0, %r0
+
+ clhlr %r0, %r0
+
#CHECK: error: offset out of range
#CHECK: clhrl %r0, -0x1000000002
#CHECK: error: offset out of range
@@ -5403,6 +5453,16 @@
sh %r0, -1
sh %r0, 4096
+#CHECK: error: instruction requires: high-word
+#CHECK: shhhr %r0, %r0, %r0
+
+ shhhr %r0, %r0, %r0
+
+#CHECK: error: instruction requires: high-word
+#CHECK: shhlr %r0, %r0, %r0
+
+ shhlr %r0, %r0, %r0
+
#CHECK: error: invalid operand
#CHECK: shy %r0, -524289
#CHECK: error: invalid operand
@@ -5547,6 +5607,16 @@
slgrk %r2,%r3,%r4
+#CHECK: error: instruction requires: high-word
+#CHECK: slhhhr %r0, %r0, %r0
+
+ slhhhr %r0, %r0, %r0
+
+#CHECK: error: instruction requires: high-word
+#CHECK: slhhlr %r0, %r0, %r0
+
+ slhhlr %r0, %r0, %r0
+
#CHECK: error: invalid operand
#CHECK: sll %r0,-1
#CHECK: error: invalid operand
diff --git a/test/MC/SystemZ/insn-good-z196.s b/test/MC/SystemZ/insn-good-z196.s
index 31d257d7448..ba56a8ef3cf 100644
--- a/test/MC/SystemZ/insn-good-z196.s
+++ b/test/MC/SystemZ/insn-good-z196.s
@@ -46,6 +46,30 @@
agrk %r15,%r0,%r0
agrk %r7,%r8,%r9
+#CHECK: ahhhr %r0, %r0, %r0 # encoding: [0xb9,0xc8,0x00,0x00]
+#CHECK: ahhhr %r0, %r0, %r15 # encoding: [0xb9,0xc8,0xf0,0x00]
+#CHECK: ahhhr %r0, %r15, %r0 # encoding: [0xb9,0xc8,0x00,0x0f]
+#CHECK: ahhhr %r15, %r0, %r0 # encoding: [0xb9,0xc8,0x00,0xf0]
+#CHECK: ahhhr %r7, %r8, %r9 # encoding: [0xb9,0xc8,0x90,0x78]
+
+ ahhhr %r0, %r0, %r0
+ ahhhr %r0, %r0, %r15
+ ahhhr %r0, %r15, %r0
+ ahhhr %r15, %r0, %r0
+ ahhhr %r7, %r8, %r9
+
+#CHECK: ahhlr %r0, %r0, %r0 # encoding: [0xb9,0xd8,0x00,0x00]
+#CHECK: ahhlr %r0, %r0, %r15 # encoding: [0xb9,0xd8,0xf0,0x00]
+#CHECK: ahhlr %r0, %r15, %r0 # encoding: [0xb9,0xd8,0x00,0x0f]
+#CHECK: ahhlr %r15, %r0, %r0 # encoding: [0xb9,0xd8,0x00,0xf0]
+#CHECK: ahhlr %r7, %r8, %r9 # encoding: [0xb9,0xd8,0x90,0x78]
+
+ ahhlr %r0, %r0, %r0
+ ahhlr %r0, %r0, %r15
+ ahhlr %r0, %r15, %r0
+ ahhlr %r15, %r0, %r0
+ ahhlr %r7, %r8, %r9
+
#CHECK: ahik %r0, %r0, -32768 # encoding: [0xec,0x00,0x80,0x00,0x00,0xd8]
#CHECK: ahik %r0, %r0, -1 # encoding: [0xec,0x00,0xff,0xff,0x00,0xd8]
#CHECK: ahik %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xd8]
@@ -108,6 +132,30 @@
algrk %r15,%r0,%r0
algrk %r7,%r8,%r9
+#CHECK: alhhhr %r0, %r0, %r0 # encoding: [0xb9,0xca,0x00,0x00]
+#CHECK: alhhhr %r0, %r0, %r15 # encoding: [0xb9,0xca,0xf0,0x00]
+#CHECK: alhhhr %r0, %r15, %r0 # encoding: [0xb9,0xca,0x00,0x0f]
+#CHECK: alhhhr %r15, %r0, %r0 # encoding: [0xb9,0xca,0x00,0xf0]
+#CHECK: alhhhr %r7, %r8, %r9 # encoding: [0xb9,0xca,0x90,0x78]
+
+ alhhhr %r0, %r0, %r0
+ alhhhr %r0, %r0, %r15
+ alhhhr %r0, %r15, %r0
+ alhhhr %r15, %r0, %r0
+ alhhhr %r7, %r8, %r9
+
+#CHECK: alhhlr %r0, %r0, %r0 # encoding: [0xb9,0xda,0x00,0x00]
+#CHECK: alhhlr %r0, %r0, %r15 # encoding: [0xb9,0xda,0xf0,0x00]
+#CHECK: alhhlr %r0, %r15, %r0 # encoding: [0xb9,0xda,0x00,0x0f]
+#CHECK: alhhlr %r15, %r0, %r0 # encoding: [0xb9,0xda,0x00,0xf0]
+#CHECK: alhhlr %r7, %r8, %r9 # encoding: [0xb9,0xda,0x90,0x78]
+
+ alhhlr %r0, %r0, %r0
+ alhhlr %r0, %r0, %r15
+ alhhlr %r0, %r15, %r0
+ alhhlr %r15, %r0, %r0
+ alhhlr %r7, %r8, %r9
+
#CHECK: alhsik %r0, %r0, -32768 # encoding: [0xec,0x00,0x80,0x00,0x00,0xda]
#CHECK: alhsik %r0, %r0, -1 # encoding: [0xec,0x00,0xff,0xff,0x00,0xda]
#CHECK: alhsik %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xda]
@@ -138,6 +186,34 @@
alrk %r15,%r0,%r0
alrk %r7,%r8,%r9
+#CHECK: alsih %r0, -2147483648 # encoding: [0xcc,0x0a,0x80,0x00,0x00,0x00]
+#CHECK: alsih %r0, -1 # encoding: [0xcc,0x0a,0xff,0xff,0xff,0xff]
+#CHECK: alsih %r0, 0 # encoding: [0xcc,0x0a,0x00,0x00,0x00,0x00]
+#CHECK: alsih %r0, 1 # encoding: [0xcc,0x0a,0x00,0x00,0x00,0x01]
+#CHECK: alsih %r0, 2147483647 # encoding: [0xcc,0x0a,0x7f,0xff,0xff,0xff]
+#CHECK: alsih %r15, 0 # encoding: [0xcc,0xfa,0x00,0x00,0x00,0x00]
+
+ alsih %r0, -1 << 31
+ alsih %r0, -1
+ alsih %r0, 0
+ alsih %r0, 1
+ alsih %r0, (1 << 31) - 1
+ alsih %r15, 0
+
+#CHECK: alsihn %r0, -2147483648 # encoding: [0xcc,0x0b,0x80,0x00,0x00,0x00]
+#CHECK: alsihn %r0, -1 # encoding: [0xcc,0x0b,0xff,0xff,0xff,0xff]
+#CHECK: alsihn %r0, 0 # encoding: [0xcc,0x0b,0x00,0x00,0x00,0x00]
+#CHECK: alsihn %r0, 1 # encoding: [0xcc,0x0b,0x00,0x00,0x00,0x01]
+#CHECK: alsihn %r0, 2147483647 # encoding: [0xcc,0x0b,0x7f,0xff,0xff,0xff]
+#CHECK: alsihn %r15, 0 # encoding: [0xcc,0xfb,0x00,0x00,0x00,0x00]
+
+ alsihn %r0, -1 << 31
+ alsihn %r0, -1
+ alsihn %r0, 0
+ alsihn %r0, 1
+ alsihn %r0, (1 << 31) - 1
+ alsihn %r15, 0
+
#CHECK: ark %r0, %r0, %r0 # encoding: [0xb9,0xf8,0x00,0x00]
#CHECK: ark %r0, %r0, %r15 # encoding: [0xb9,0xf8,0xf0,0x00]
#CHECK: ark %r0, %r15, %r0 # encoding: [0xb9,0xf8,0x00,0x0f]
@@ -531,6 +607,26 @@
chf %r0, 524287(%r15,%r1)
chf %r15, 0
+#CHECK: chhr %r0, %r0 # encoding: [0xb9,0xcd,0x00,0x00]
+#CHECK: chhr %r0, %r15 # encoding: [0xb9,0xcd,0x00,0x0f]
+#CHECK: chhr %r15, %r0 # encoding: [0xb9,0xcd,0x00,0xf0]
+#CHECK: chhr %r7, %r8 # encoding: [0xb9,0xcd,0x00,0x78]
+
+ chhr %r0,%r0
+ chhr %r0,%r15
+ chhr %r15,%r0
+ chhr %r7,%r8
+
+#CHECK: chlr %r0, %r0 # encoding: [0xb9,0xdd,0x00,0x00]
+#CHECK: chlr %r0, %r15 # encoding: [0xb9,0xdd,0x00,0x0f]
+#CHECK: chlr %r15, %r0 # encoding: [0xb9,0xdd,0x00,0xf0]
+#CHECK: chlr %r7, %r8 # encoding: [0xb9,0xdd,0x00,0x78]
+
+ chlr %r0,%r0
+ chlr %r0,%r15
+ chlr %r15,%r0
+ chlr %r7,%r8
+
#CHECK: cih %r0, -2147483648 # encoding: [0xcc,0x0d,0x80,0x00,0x00,0x00]
#CHECK: cih %r0, -1 # encoding: [0xcc,0x0d,0xff,0xff,0xff,0xff]
#CHECK: cih %r0, 0 # encoding: [0xcc,0x0d,0x00,0x00,0x00,0x00]
@@ -707,6 +803,26 @@
clhf %r0, 524287(%r15,%r1)
clhf %r15, 0
+#CHECK: clhhr %r0, %r0 # encoding: [0xb9,0xcf,0x00,0x00]
+#CHECK: clhhr %r0, %r15 # encoding: [0xb9,0xcf,0x00,0x0f]
+#CHECK: clhhr %r15, %r0 # encoding: [0xb9,0xcf,0x00,0xf0]
+#CHECK: clhhr %r7, %r8 # encoding: [0xb9,0xcf,0x00,0x78]
+
+ clhhr %r0,%r0
+ clhhr %r0,%r15
+ clhhr %r15,%r0
+ clhhr %r7,%r8
+
+#CHECK: clhlr %r0, %r0 # encoding: [0xb9,0xdf,0x00,0x00]
+#CHECK: clhlr %r0, %r15 # encoding: [0xb9,0xdf,0x00,0x0f]
+#CHECK: clhlr %r15, %r0 # encoding: [0xb9,0xdf,0x00,0xf0]
+#CHECK: clhlr %r7, %r8 # encoding: [0xb9,0xdf,0x00,0x78]
+
+ clhlr %r0,%r0
+ clhlr %r0,%r15
+ clhlr %r15,%r0
+ clhlr %r7,%r8
+
#CHECK: clih %r0, 0 # encoding: [0xcc,0x0f,0x00,0x00,0x00,0x00]
#CHECK: clih %r0, 1 # encoding: [0xcc,0x0f,0x00,0x00,0x00,0x01]
#CHECK: clih %r0, 4294967295 # encoding: [0xcc,0x0f,0xff,0xff,0xff,0xff]
@@ -1713,6 +1829,30 @@
sgrk %r15,%r0,%r0
sgrk %r7,%r8,%r9
+#CHECK: shhhr %r0, %r0, %r0 # encoding: [0xb9,0xc9,0x00,0x00]
+#CHECK: shhhr %r0, %r0, %r15 # encoding: [0xb9,0xc9,0xf0,0x00]
+#CHECK: shhhr %r0, %r15, %r0 # encoding: [0xb9,0xc9,0x00,0x0f]
+#CHECK: shhhr %r15, %r0, %r0 # encoding: [0xb9,0xc9,0x00,0xf0]
+#CHECK: shhhr %r7, %r8, %r9 # encoding: [0xb9,0xc9,0x90,0x78]
+
+ shhhr %r0, %r0, %r0
+ shhhr %r0, %r0, %r15
+ shhhr %r0, %r15, %r0
+ shhhr %r15, %r0, %r0
+ shhhr %r7, %r8, %r9
+
+#CHECK: shhlr %r0, %r0, %r0 # encoding: [0xb9,0xd9,0x00,0x00]
+#CHECK: shhlr %r0, %r0, %r15 # encoding: [0xb9,0xd9,0xf0,0x00]
+#CHECK: shhlr %r0, %r15, %r0 # encoding: [0xb9,0xd9,0x00,0x0f]
+#CHECK: shhlr %r15, %r0, %r0 # encoding: [0xb9,0xd9,0x00,0xf0]
+#CHECK: shhlr %r7, %r8, %r9 # encoding: [0xb9,0xd9,0x90,0x78]
+
+ shhlr %r0, %r0, %r0
+ shhlr %r0, %r0, %r15
+ shhlr %r0, %r15, %r0
+ shhlr %r15, %r0, %r0
+ shhlr %r7, %r8, %r9
+
#CHECK: slak %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0xdd]
#CHECK: slak %r15, %r1, 0 # encoding: [0xeb,0xf1,0x00,0x00,0x00,0xdd]
#CHECK: slak %r1, %r15, 0 # encoding: [0xeb,0x1f,0x00,0x00,0x00,0xdd]
@@ -1751,6 +1891,30 @@
slgrk %r15,%r0,%r0
slgrk %r7,%r8,%r9
+#CHECK: slhhhr %r0, %r0, %r0 # encoding: [0xb9,0xcb,0x00,0x00]
+#CHECK: slhhhr %r0, %r0, %r15 # encoding: [0xb9,0xcb,0xf0,0x00]
+#CHECK: slhhhr %r0, %r15, %r0 # encoding: [0xb9,0xcb,0x00,0x0f]
+#CHECK: slhhhr %r15, %r0, %r0 # encoding: [0xb9,0xcb,0x00,0xf0]
+#CHECK: slhhhr %r7, %r8, %r9 # encoding: [0xb9,0xcb,0x90,0x78]
+
+ slhhhr %r0, %r0, %r0
+ slhhhr %r0, %r0, %r15
+ slhhhr %r0, %r15, %r0
+ slhhhr %r15, %r0, %r0
+ slhhhr %r7, %r8, %r9
+
+#CHECK: slhhlr %r0, %r0, %r0 # encoding: [0xb9,0xdb,0x00,0x00]
+#CHECK: slhhlr %r0, %r0, %r15 # encoding: [0xb9,0xdb,0xf0,0x00]
+#CHECK: slhhlr %r0, %r15, %r0 # encoding: [0xb9,0xdb,0x00,0x0f]
+#CHECK: slhhlr %r15, %r0, %r0 # encoding: [0xb9,0xdb,0x00,0xf0]
+#CHECK: slhhlr %r7, %r8, %r9 # encoding: [0xb9,0xdb,0x90,0x78]
+
+ slhhlr %r0, %r0, %r0
+ slhhlr %r0, %r0, %r15
+ slhhlr %r0, %r15, %r0
+ slhhlr %r15, %r0, %r0
+ slhhlr %r7, %r8, %r9
+
#CHECK: sllk %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0xdf]
#CHECK: sllk %r15, %r1, 0 # encoding: [0xeb,0xf1,0x00,0x00,0x00,0xdf]
#CHECK: sllk %r1, %r15, 0 # encoding: [0xeb,0x1f,0x00,0x00,0x00,0xdf]