diff options
author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-09-05 10:36:45 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-09-05 10:36:45 +0000 |
commit | 16277c4698f36a756c540fae326874774156aaed (patch) | |
tree | 640d07133c8f2ab9f909e7b2c464f96e6c1a5496 /test/MC/SystemZ | |
parent | a83aeae350d822ec84ded34ff3fdf1e0917d3bfd (diff) | |
download | llvm-16277c4698f36a756c540fae326874774156aaed.tar.gz llvm-16277c4698f36a756c540fae326874774156aaed.tar.bz2 llvm-16277c4698f36a756c540fae326874774156aaed.tar.xz |
[SystemZ] Add NC, OC and XC
For now these are just used to handle scalar ANDs, ORs and XORs in which
all operands are memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190041 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/SystemZ')
-rw-r--r-- | test/MC/SystemZ/insn-bad.s | 132 | ||||
-rw-r--r-- | test/MC/SystemZ/insn-good.s | 78 |
2 files changed, 210 insertions, 0 deletions
diff --git a/test/MC/SystemZ/insn-bad.s b/test/MC/SystemZ/insn-bad.s index 54979fdaf9..a7affaef2f 100644 --- a/test/MC/SystemZ/insn-bad.s +++ b/test/MC/SystemZ/insn-bad.s @@ -2051,6 +2051,50 @@ n %r0, -1 n %r0, 4096 +#CHECK: error: missing length in address +#CHECK: nc 0, 0 +#CHECK: error: missing length in address +#CHECK: nc 0(%r1), 0(%r1) +#CHECK: error: invalid use of length addressing +#CHECK: nc 0(1,%r1), 0(2,%r1) +#CHECK: error: invalid operand +#CHECK: nc 0(0,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: nc 0(257,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: nc -1(1,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: nc 4096(1,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: nc 0(1,%r1), -1(%r1) +#CHECK: error: invalid operand +#CHECK: nc 0(1,%r1), 4096(%r1) +#CHECK: error: %r0 used in an address +#CHECK: nc 0(1,%r0), 0(%r1) +#CHECK: error: %r0 used in an address +#CHECK: nc 0(1,%r1), 0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: nc 0(%r1,%r2), 0(%r1) +#CHECK: error: invalid use of indexed addressing +#CHECK: nc 0(1,%r2), 0(%r1,%r2) +#CHECK: error: unknown token in expression +#CHECK: nc 0(-), 0 + + nc 0, 0 + nc 0(%r1), 0(%r1) + nc 0(1,%r1), 0(2,%r1) + nc 0(0,%r1), 0(%r1) + nc 0(257,%r1), 0(%r1) + nc -1(1,%r1), 0(%r1) + nc 4096(1,%r1), 0(%r1) + nc 0(1,%r1), -1(%r1) + nc 0(1,%r1), 4096(%r1) + nc 0(1,%r0), 0(%r1) + nc 0(1,%r1), 0(%r0) + nc 0(%r1,%r2), 0(%r1) + nc 0(1,%r2), 0(%r1,%r2) + nc 0(-), 0 + #CHECK: error: invalid operand #CHECK: ng %r0, -524289 #CHECK: error: invalid operand @@ -2167,6 +2211,50 @@ o %r0, -1 o %r0, 4096 +#CHECK: error: missing length in address +#CHECK: oc 0, 0 +#CHECK: error: missing length in address +#CHECK: oc 0(%r1), 0(%r1) +#CHECK: error: invalid use of length addressing +#CHECK: oc 0(1,%r1), 0(2,%r1) +#CHECK: error: invalid operand +#CHECK: oc 0(0,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: oc 0(257,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: oc -1(1,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: oc 4096(1,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: oc 0(1,%r1), -1(%r1) +#CHECK: error: invalid operand +#CHECK: oc 0(1,%r1), 4096(%r1) +#CHECK: error: %r0 used in an address +#CHECK: oc 0(1,%r0), 0(%r1) +#CHECK: error: %r0 used in an address +#CHECK: oc 0(1,%r1), 0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: oc 0(%r1,%r2), 0(%r1) +#CHECK: error: invalid use of indexed addressing +#CHECK: oc 0(1,%r2), 0(%r1,%r2) +#CHECK: error: unknown token in expression +#CHECK: oc 0(-), 0 + + oc 0, 0 + oc 0(%r1), 0(%r1) + oc 0(1,%r1), 0(2,%r1) + oc 0(0,%r1), 0(%r1) + oc 0(257,%r1), 0(%r1) + oc -1(1,%r1), 0(%r1) + oc 4096(1,%r1), 0(%r1) + oc 0(1,%r1), -1(%r1) + oc 0(1,%r1), 4096(%r1) + oc 0(1,%r0), 0(%r1) + oc 0(1,%r1), 0(%r0) + oc 0(%r1,%r2), 0(%r1) + oc 0(1,%r2), 0(%r1,%r2) + oc 0(-), 0 + #CHECK: error: invalid operand #CHECK: og %r0, -524289 #CHECK: error: invalid operand @@ -2903,6 +2991,50 @@ x %r0, -1 x %r0, 4096 +#CHECK: error: missing length in address +#CHECK: xc 0, 0 +#CHECK: error: missing length in address +#CHECK: xc 0(%r1), 0(%r1) +#CHECK: error: invalid use of length addressing +#CHECK: xc 0(1,%r1), 0(2,%r1) +#CHECK: error: invalid operand +#CHECK: xc 0(0,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: xc 0(257,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: xc -1(1,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: xc 4096(1,%r1), 0(%r1) +#CHECK: error: invalid operand +#CHECK: xc 0(1,%r1), -1(%r1) +#CHECK: error: invalid operand +#CHECK: xc 0(1,%r1), 4096(%r1) +#CHECK: error: %r0 used in an address +#CHECK: xc 0(1,%r0), 0(%r1) +#CHECK: error: %r0 used in an address +#CHECK: xc 0(1,%r1), 0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: xc 0(%r1,%r2), 0(%r1) +#CHECK: error: invalid use of indexed addressing +#CHECK: xc 0(1,%r2), 0(%r1,%r2) +#CHECK: error: unknown token in expression +#CHECK: xc 0(-), 0 + + xc 0, 0 + xc 0(%r1), 0(%r1) + xc 0(1,%r1), 0(2,%r1) + xc 0(0,%r1), 0(%r1) + xc 0(257,%r1), 0(%r1) + xc -1(1,%r1), 0(%r1) + xc 4096(1,%r1), 0(%r1) + xc 0(1,%r1), -1(%r1) + xc 0(1,%r1), 4096(%r1) + xc 0(1,%r0), 0(%r1) + xc 0(1,%r1), 0(%r0) + xc 0(%r1,%r2), 0(%r1) + xc 0(1,%r2), 0(%r1,%r2) + xc 0(-), 0 + #CHECK: error: invalid operand #CHECK: xg %r0, -524289 #CHECK: error: invalid operand diff --git a/test/MC/SystemZ/insn-good.s b/test/MC/SystemZ/insn-good.s index be7e308549..0cbccc4a29 100644 --- a/test/MC/SystemZ/insn-good.s +++ b/test/MC/SystemZ/insn-good.s @@ -5774,6 +5774,32 @@ n %r0, 4095(%r15,%r1) n %r15, 0 +#CHECK: nc 0(1), 0 # encoding: [0xd4,0x00,0x00,0x00,0x00,0x00] +#CHECK: nc 0(1), 0(%r1) # encoding: [0xd4,0x00,0x00,0x00,0x10,0x00] +#CHECK: nc 0(1), 0(%r15) # encoding: [0xd4,0x00,0x00,0x00,0xf0,0x00] +#CHECK: nc 0(1), 4095 # encoding: [0xd4,0x00,0x00,0x00,0x0f,0xff] +#CHECK: nc 0(1), 4095(%r1) # encoding: [0xd4,0x00,0x00,0x00,0x1f,0xff] +#CHECK: nc 0(1), 4095(%r15) # encoding: [0xd4,0x00,0x00,0x00,0xff,0xff] +#CHECK: nc 0(1,%r1), 0 # encoding: [0xd4,0x00,0x10,0x00,0x00,0x00] +#CHECK: nc 0(1,%r15), 0 # encoding: [0xd4,0x00,0xf0,0x00,0x00,0x00] +#CHECK: nc 4095(1,%r1), 0 # encoding: [0xd4,0x00,0x1f,0xff,0x00,0x00] +#CHECK: nc 4095(1,%r15), 0 # encoding: [0xd4,0x00,0xff,0xff,0x00,0x00] +#CHECK: nc 0(256,%r1), 0 # encoding: [0xd4,0xff,0x10,0x00,0x00,0x00] +#CHECK: nc 0(256,%r15), 0 # encoding: [0xd4,0xff,0xf0,0x00,0x00,0x00] + + nc 0(1), 0 + nc 0(1), 0(%r1) + nc 0(1), 0(%r15) + nc 0(1), 4095 + nc 0(1), 4095(%r1) + nc 0(1), 4095(%r15) + nc 0(1,%r1), 0 + nc 0(1,%r15), 0 + nc 4095(1,%r1), 0 + nc 4095(1,%r15), 0 + nc 0(256,%r1), 0 + nc 0(256,%r15), 0 + #CHECK: ng %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x80] #CHECK: ng %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x80] #CHECK: ng %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x80] @@ -5948,6 +5974,32 @@ o %r0, 4095(%r15,%r1) o %r15, 0 +#CHECK: oc 0(1), 0 # encoding: [0xd6,0x00,0x00,0x00,0x00,0x00] +#CHECK: oc 0(1), 0(%r1) # encoding: [0xd6,0x00,0x00,0x00,0x10,0x00] +#CHECK: oc 0(1), 0(%r15) # encoding: [0xd6,0x00,0x00,0x00,0xf0,0x00] +#CHECK: oc 0(1), 4095 # encoding: [0xd6,0x00,0x00,0x00,0x0f,0xff] +#CHECK: oc 0(1), 4095(%r1) # encoding: [0xd6,0x00,0x00,0x00,0x1f,0xff] +#CHECK: oc 0(1), 4095(%r15) # encoding: [0xd6,0x00,0x00,0x00,0xff,0xff] +#CHECK: oc 0(1,%r1), 0 # encoding: [0xd6,0x00,0x10,0x00,0x00,0x00] +#CHECK: oc 0(1,%r15), 0 # encoding: [0xd6,0x00,0xf0,0x00,0x00,0x00] +#CHECK: oc 4095(1,%r1), 0 # encoding: [0xd6,0x00,0x1f,0xff,0x00,0x00] +#CHECK: oc 4095(1,%r15), 0 # encoding: [0xd6,0x00,0xff,0xff,0x00,0x00] +#CHECK: oc 0(256,%r1), 0 # encoding: [0xd6,0xff,0x10,0x00,0x00,0x00] +#CHECK: oc 0(256,%r15), 0 # encoding: [0xd6,0xff,0xf0,0x00,0x00,0x00] + + oc 0(1), 0 + oc 0(1), 0(%r1) + oc 0(1), 0(%r15) + oc 0(1), 4095 + oc 0(1), 4095(%r1) + oc 0(1), 4095(%r15) + oc 0(1,%r1), 0 + oc 0(1,%r15), 0 + oc 4095(1,%r1), 0 + oc 4095(1,%r15), 0 + oc 0(256,%r1), 0 + oc 0(256,%r15), 0 + #CHECK: og %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x81] #CHECK: og %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x81] #CHECK: og %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x81] @@ -7340,6 +7392,32 @@ x %r0, 4095(%r15,%r1) x %r15, 0 +#CHECK: xc 0(1), 0 # encoding: [0xd7,0x00,0x00,0x00,0x00,0x00] +#CHECK: xc 0(1), 0(%r1) # encoding: [0xd7,0x00,0x00,0x00,0x10,0x00] +#CHECK: xc 0(1), 0(%r15) # encoding: [0xd7,0x00,0x00,0x00,0xf0,0x00] +#CHECK: xc 0(1), 4095 # encoding: [0xd7,0x00,0x00,0x00,0x0f,0xff] +#CHECK: xc 0(1), 4095(%r1) # encoding: [0xd7,0x00,0x00,0x00,0x1f,0xff] +#CHECK: xc 0(1), 4095(%r15) # encoding: [0xd7,0x00,0x00,0x00,0xff,0xff] +#CHECK: xc 0(1,%r1), 0 # encoding: [0xd7,0x00,0x10,0x00,0x00,0x00] +#CHECK: xc 0(1,%r15), 0 # encoding: [0xd7,0x00,0xf0,0x00,0x00,0x00] +#CHECK: xc 4095(1,%r1), 0 # encoding: [0xd7,0x00,0x1f,0xff,0x00,0x00] +#CHECK: xc 4095(1,%r15), 0 # encoding: [0xd7,0x00,0xff,0xff,0x00,0x00] +#CHECK: xc 0(256,%r1), 0 # encoding: [0xd7,0xff,0x10,0x00,0x00,0x00] +#CHECK: xc 0(256,%r15), 0 # encoding: [0xd7,0xff,0xf0,0x00,0x00,0x00] + + xc 0(1), 0 + xc 0(1), 0(%r1) + xc 0(1), 0(%r15) + xc 0(1), 4095 + xc 0(1), 4095(%r1) + xc 0(1), 4095(%r15) + xc 0(1,%r1), 0 + xc 0(1,%r15), 0 + xc 4095(1,%r1), 0 + xc 4095(1,%r15), 0 + xc 0(256,%r1), 0 + xc 0(256,%r15), 0 + #CHECK: xg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x82] #CHECK: xg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x82] #CHECK: xg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x82] |