From 541c5de2fb57b2f459f0ec49f33a0ecce3532acd Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Wed, 13 Nov 2013 16:57:53 +0000 Subject: [SystemZ] Add the general form of BCR At the moment this is just the MC support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194585 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/MC/Disassembler/SystemZ/insns.txt | 45 +++++++++++++++++ test/MC/SystemZ/insn-bad.s | 8 +++ test/MC/SystemZ/insn-good.s | 91 ++++++++++++++++++++++++++++++++++ 3 files changed, 144 insertions(+) (limited to 'test/MC') diff --git a/test/MC/Disassembler/SystemZ/insns.txt b/test/MC/Disassembler/SystemZ/insns.txt index 982b35f..78d348d 100644 --- a/test/MC/Disassembler/SystemZ/insns.txt +++ b/test/MC/Disassembler/SystemZ/insns.txt @@ -790,6 +790,51 @@ # CHECK: basr %r15, %r1 0x0d 0xf1 +# CHECK: bcr 0, %r14 +0x07 0x0e + +# CHECK: bor %r13 +0x07 0x1d + +# CHECK: bhr %r12 +0x07 0x2c + +# CHECK: bnler %r11 +0x07 0x3b + +# CHECK: blr %r10 +0x07 0x4a + +# CHECK: bnher %r9 +0x07 0x59 + +# CHECK: blhr %r8 +0x07 0x68 + +# CHECK: bner %r7 +0x07 0x77 + +# CHECK: ber %r6 +0x07 0x86 + +# CHECK: bnlhr %r5 +0x07 0x95 + +# CHECK: bher %r4 +0x07 0xa4 + +# CHECK: bnlr %r3 +0x07 0xb3 + +# CHECK: bler %r2 +0x07 0xc2 + +# CHECK: bnhr %r1 +0x07 0xd1 + +# CHECK: bnor %r0 +0x07 0xe0 + # CHECK: br %r1 0x07 0xf1 diff --git a/test/MC/SystemZ/insn-bad.s b/test/MC/SystemZ/insn-bad.s index 64453a5..2a3fb98 100644 --- a/test/MC/SystemZ/insn-bad.s +++ b/test/MC/SystemZ/insn-bad.s @@ -256,6 +256,14 @@ ay %r0, -524289 ay %r0, 524288 +#CHECK: error: invalid operand +#CHECK: bcr -1, %r1 +#CHECK: error: invalid operand +#CHECK: bcr 16, %r1 + + bcr -1, %r1 + bcr 16, %r1 + #CHECK: error: offset out of range #CHECK: bras %r0, -0x100002 #CHECK: error: offset out of range diff --git a/test/MC/SystemZ/insn-good.s b/test/MC/SystemZ/insn-good.s index 204105050..23bd68a 100644 --- a/test/MC/SystemZ/insn-good.s +++ b/test/MC/SystemZ/insn-good.s @@ -527,11 +527,102 @@ basr %r14,%r9 basr %r15,%r1 +#CHECK: bcr 0, %r0 # encoding: [0x07,0x00] +#CHECK: bcr 0, %r15 # encoding: [0x07,0x0f] + bcr 0, %r0 + bcr 0, %r15 + +#CHECK: bcr 1, %r7 # encoding: [0x07,0x17] +#CHECK: bor %r15 # encoding: [0x07,0x1f] + + bcr 1, %r7 + bor %r15 + +#CHECK: bcr 2, %r7 # encoding: [0x07,0x27] +#CHECK: bhr %r15 # encoding: [0x07,0x2f] + + bcr 2, %r7 + bhr %r15 + +#CHECK: bcr 3, %r7 # encoding: [0x07,0x37] +#CHECK: bnler %r15 # encoding: [0x07,0x3f] + + bcr 3, %r7 + bnler %r15 + +#CHECK: bcr 4, %r7 # encoding: [0x07,0x47] +#CHECK: blr %r15 # encoding: [0x07,0x4f] + + bcr 4, %r7 + blr %r15 + +#CHECK: bcr 5, %r7 # encoding: [0x07,0x57] +#CHECK: bnher %r15 # encoding: [0x07,0x5f] + + bcr 5, %r7 + bnher %r15 + +#CHECK: bcr 6, %r7 # encoding: [0x07,0x67] +#CHECK: blhr %r15 # encoding: [0x07,0x6f] + + bcr 6, %r7 + blhr %r15 + +#CHECK: bcr 7, %r7 # encoding: [0x07,0x77] +#CHECK: bner %r15 # encoding: [0x07,0x7f] + + bcr 7, %r7 + bner %r15 + +#CHECK: bcr 8, %r7 # encoding: [0x07,0x87] +#CHECK: ber %r15 # encoding: [0x07,0x8f] + + bcr 8, %r7 + ber %r15 + +#CHECK: bcr 9, %r7 # encoding: [0x07,0x97] +#CHECK: bnlhr %r15 # encoding: [0x07,0x9f] + + bcr 9, %r7 + bnlhr %r15 + +#CHECK: bcr 10, %r7 # encoding: [0x07,0xa7] +#CHECK: bher %r15 # encoding: [0x07,0xaf] + + bcr 10, %r7 + bher %r15 + +#CHECK: bcr 11, %r7 # encoding: [0x07,0xb7] +#CHECK: bnlr %r15 # encoding: [0x07,0xbf] + + bcr 11, %r7 + bnlr %r15 + +#CHECK: bcr 12, %r7 # encoding: [0x07,0xc7] +#CHECK: bler %r15 # encoding: [0x07,0xcf] + + bcr 12, %r7 + bler %r15 + +#CHECK: bcr 13, %r7 # encoding: [0x07,0xd7] +#CHECK: bnhr %r15 # encoding: [0x07,0xdf] + + bcr 13, %r7 + bnhr %r15 + +#CHECK: bcr 14, %r7 # encoding: [0x07,0xe7] +#CHECK: bnor %r15 # encoding: [0x07,0xef] + + bcr 14, %r7 + bnor %r15 + +#CHECK: bcr 15, %r7 # encoding: [0x07,0xf7] #CHECK: br %r1 # encoding: [0x07,0xf1] #CHECK: br %r14 # encoding: [0x07,0xfe] #CHECK: br %r15 # encoding: [0x07,0xff] + bcr 15, %r7 br %r1 br %r14 br %r15 -- cgit v1.1