[SystemZ] Add missing assembler/disassembler tests
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Tue, 30 May 2017 10:11:13 +0000 (10:11 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Tue, 30 May 2017 10:11:13 +0000 (10:11 +0000)
A few instructions that are actually correctly supported in the
assembler and disassembler did not have any tests.

llvm-svn: 304200

llvm/test/MC/Disassembler/SystemZ/insns.txt
llvm/test/MC/SystemZ/insn-bad.s
llvm/test/MC/SystemZ/insn-good.s

index dac9409..3a7bbd2 100644 (file)
 # CHECK: ltxbr %f13, %f9
 0xb3 0x42 0x00 0xd9
 
+# CHECK: lxdb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x05
+
+# CHECK: lxdb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x05
+
+# CHECK: lxdb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x05
+
+# CHECK: lxdb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x05
+
+# CHECK: lxdb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x05
+
+# CHECK: lxdb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x05
+
+# CHECK: lxdb %f13, 0
+0xed 0xd0 0x00 0x00 0x00 0x05
+
+# CHECK: lxdbr %f0, %f8
+0xb3 0x05 0x00 0x08
+
+# CHECK: lxdbr %f0, %f13
+0xb3 0x05 0x00 0x0d
+
+# CHECK: lxdbr %f13, %f0
+0xb3 0x05 0x00 0xd0
+
+# CHECK: lxdbr %f13, %f15
+0xb3 0x05 0x00 0xdf
+
+# CHECK: lxeb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x06
+
+# CHECK: lxeb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x06
+
+# CHECK: lxeb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x06
+
+# CHECK: lxeb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x06
+
+# CHECK: lxeb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x06
+
+# CHECK: lxeb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x06
+
+# CHECK: lxeb %f13, 0
+0xed 0xd0 0x00 0x00 0x00 0x06
+
+# CHECK: lxebr %f0, %f8
+0xb3 0x06 0x00 0x08
+
+# CHECK: lxebr %f0, %f13
+0xb3 0x06 0x00 0x0d
+
+# CHECK: lxebr %f13, %f0
+0xb3 0x06 0x00 0xd0
+
+# CHECK: lxebr %f13, %f15
+0xb3 0x06 0x00 0xdf
+
 # CHECK: lxr %f0, %f8
 0xb3 0x65 0x00 0x08
 
index b96c661..aeef916 100644 (file)
        ltxbr   %f0, %f14
        ltxbr   %f14, %f0
 
+#CHECK: error: invalid operand
+#CHECK: lxdb   %f0, -1
+#CHECK: error: invalid operand
+#CHECK: lxdb   %f0, 4096
+#CHECK: error: invalid register pair
+#CHECK: lxdb   %f2, 0
+
+       lxdb    %f0, -1
+       lxdb    %f0, 4096
+       lxdb    %f2, 0
+
+#CHECK: error: invalid register pair
+#CHECK: lxdbr  %f2, %f0
+
+       lxdbr   %f2, %f0
+
+#CHECK: error: invalid operand
+#CHECK: lxeb   %f0, -1
+#CHECK: error: invalid operand
+#CHECK: lxeb   %f0, 4096
+#CHECK: error: invalid register pair
+#CHECK: lxeb   %f2, 0
+
+       lxeb    %f0, -1
+       lxeb    %f0, 4096
+       lxeb    %f2, 0
+
+#CHECK: error: invalid register pair
+#CHECK: lxebr  %f2, %f0
+
+       lxebr   %f2, %f0
+
 #CHECK: error: invalid register pair
 #CHECK: lxr    %f0, %f2
 #CHECK: error: invalid register pair
index a6228f2..54dd153 100644 (file)
        ltxbr   %f13,%f0
        ltxbr   %f13,%f9
 
+#CHECK: lxdb   %f0, 4095               # encoding: [0xed,0x00,0x0f,0xff,0x00,0x05]
+#CHECK: lxdb   %f0, 0(%r1)             # encoding: [0xed,0x00,0x10,0x00,0x00,0x05]
+#CHECK: lxdb   %f0, 0(%r15)            # encoding: [0xed,0x00,0xf0,0x00,0x00,0x05]
+#CHECK: lxdb   %f0, 4095(%r1,%r15)     # encoding: [0xed,0x01,0xff,0xff,0x00,0x05]
+#CHECK: lxdb   %f0, 4095(%r15,%r1)     # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x05]
+#CHECK: lxdb   %f13, 0                 # encoding: [0xed,0xd0,0x00,0x00,0x00,0x05]
+
+       lxdb    %f0, 0
+       lxdb    %f0, 4095
+       lxdb    %f0, 0(%r1)
+       lxdb    %f0, 0(%r15)
+       lxdb    %f0, 4095(%r1,%r15)
+       lxdb    %f0, 4095(%r15,%r1)
+       lxdb    %f13, 0
+
+#CHECK: lxdbr  %f0, %f8                # encoding: [0xb3,0x05,0x00,0x08]
+#CHECK: lxdbr  %f0, %f13               # encoding: [0xb3,0x05,0x00,0x0d]
+#CHECK: lxdbr  %f13, %f0               # encoding: [0xb3,0x05,0x00,0xd0]
+#CHECK: lxdbr  %f13, %f15              # encoding: [0xb3,0x05,0x00,0xdf]
+
+       lxdbr   %f0,%f8
+       lxdbr   %f0,%f13
+       lxdbr   %f13,%f0
+       lxdbr   %f13,%f15
+
+#CHECK: lxeb   %f0, 4095               # encoding: [0xed,0x00,0x0f,0xff,0x00,0x06]
+#CHECK: lxeb   %f0, 0(%r1)             # encoding: [0xed,0x00,0x10,0x00,0x00,0x06]
+#CHECK: lxeb   %f0, 0(%r15)            # encoding: [0xed,0x00,0xf0,0x00,0x00,0x06]
+#CHECK: lxeb   %f0, 4095(%r1,%r15)     # encoding: [0xed,0x01,0xff,0xff,0x00,0x06]
+#CHECK: lxeb   %f0, 4095(%r15,%r1)     # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x06]
+#CHECK: lxeb   %f13, 0                 # encoding: [0xed,0xd0,0x00,0x00,0x00,0x06]
+
+       lxeb    %f0, 0
+       lxeb    %f0, 4095
+       lxeb    %f0, 0(%r1)
+       lxeb    %f0, 0(%r15)
+       lxeb    %f0, 4095(%r1,%r15)
+       lxeb    %f0, 4095(%r15,%r1)
+       lxeb    %f13, 0
+
+#CHECK: lxebr  %f0, %f8                # encoding: [0xb3,0x06,0x00,0x08]
+#CHECK: lxebr  %f0, %f13               # encoding: [0xb3,0x06,0x00,0x0d]
+#CHECK: lxebr  %f13, %f0               # encoding: [0xb3,0x06,0x00,0xd0]
+#CHECK: lxebr  %f13, %f15              # encoding: [0xb3,0x06,0x00,0xdf]
+
+       lxebr   %f0,%f8
+       lxebr   %f0,%f13
+       lxebr   %f13,%f0
+       lxebr   %f13,%f15
+
 #CHECK: lxr    %f0, %f8                # encoding: [0xb3,0x65,0x00,0x08]
 #CHECK: lxr    %f0, %f13               # encoding: [0xb3,0x65,0x00,0x0d]
 #CHECK: lxr    %f13, %f0               # encoding: [0xb3,0x65,0x00,0xd0]