Remove the 'N' modifier from llvm-ar.
[oota-llvm.git] / test / MC / SystemZ / regs-bad.s
index 6a8bff6ec79df3528419adc9a8afe32ed6150472..65720578ff8fa0482e761358d2b62226947e16c7 100644 (file)
 # RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t
 # RUN: FileCheck < %t %s
 
-#CHECK: error: invalid register
-#CHECK: lr     %r16,%r1
-#CHECK: error: invalid register
+# Test GR32 operands
+#
+#CHECK: error: invalid operand for instruction
 #CHECK: lr     %f0,%r1
-#CHECK: error: invalid register
+#CHECK: error: invalid operand for instruction
 #CHECK: lr     %a0,%r1
 #CHECK: error: invalid operand for instruction
-#CHECK: lr     %arid,%r1
+#CHECK: lr     %r0,%f1
 #CHECK: error: invalid operand for instruction
-#CHECK: lr     %0,%r1
+#CHECK: lr     %r0,%a1
 #CHECK: error: invalid operand for instruction
-#CHECK: lr     0,%r1
-#CHECK: error: unknown token in expression
-#CHECK: lr     (%r0),%r1
-#CHECK: error: unknown token in expression
-#CHECK: lr     %,%r1
+#CHECK: lr     %r0,0
+#CHECK: error: invalid operand for instruction
+#CHECK: lr     %r0,0(%r1)
 
-       lr      %r16,%r1
        lr      %f0,%r1
        lr      %a0,%r1
-       lr      %arid,%r1
-       lr      %0,%r1
-       lr      0,%r1
-       lr      (%r0),%r1
-       lr      %,%r1
+       lr      %r0,%f1
+       lr      %r0,%a1
+       lr      %r0,0
+       lr      %r0,0(%r1)
 
-#CHECK: error: invalid register
-#CHECK: lgr    %r16,%r1
-#CHECK: error: invalid register
+# Test GR64 operands
+#
+#CHECK: error: invalid operand for instruction
 #CHECK: lgr    %f0,%r1
-#CHECK: error: invalid register
+#CHECK: error: invalid operand for instruction
 #CHECK: lgr    %a0,%r1
 #CHECK: error: invalid operand for instruction
-#CHECK: lgr    %arid,%r1
+#CHECK: lgr    %r0,%f1
+#CHECK: error: invalid operand for instruction
+#CHECK: lgr    %r0,%a1
 #CHECK: error: invalid operand for instruction
-#CHECK: lgr    %0,%r1
+#CHECK: lgr    %r0,0
 #CHECK: error: invalid operand for instruction
-#CHECK: lgr    0,%r1
-#CHECK: error: unknown token in expression
-#CHECK: lgr    (%r0),%r1
-#CHECK: error: unknown token in expression
-#CHECK: lgr    %,%r1
+#CHECK: lgr    %r0,0(%r1)
 
-       lgr     %r16,%r1
        lgr     %f0,%r1
        lgr     %a0,%r1
-       lgr     %arid,%r1
-       lgr     %0,%r1
-       lgr     0,%r1
-       lgr     (%r0),%r1
-       lgr     %,%r1
+       lgr     %r0,%f1
+       lgr     %r0,%a1
+       lgr     %r0,0
+       lgr     %r0,0(%r1)
 
-#CHECK: error: invalid register
-#CHECK: dlr    %r1,%r8
-#CHECK: error: invalid register
-#CHECK: dlr    %r16,%r1
-#CHECK: error: invalid register
+# Test GR128 operands
+#
+#CHECK: error: invalid register pair
+#CHECK: dlr    %r1,%r0
+#CHECK: error: invalid register pair
+#CHECK: dlr    %r3,%r0
+#CHECK: error: invalid register pair
+#CHECK: dlr    %r5,%r0
+#CHECK: error: invalid register pair
+#CHECK: dlr    %r7,%r0
+#CHECK: error: invalid register pair
+#CHECK: dlr    %r9,%r0
+#CHECK: error: invalid register pair
+#CHECK: dlr    %r11,%r0
+#CHECK: error: invalid register pair
+#CHECK: dlr    %r13,%r0
+#CHECK: error: invalid register pair
+#CHECK: dlr    %r15,%r0
+#CHECK: error: invalid operand for instruction
 #CHECK: dlr    %f0,%r1
-#CHECK: error: invalid register
+#CHECK: error: invalid operand for instruction
 #CHECK: dlr    %a0,%r1
 #CHECK: error: invalid operand for instruction
-#CHECK: dlr    %arid,%r1
+#CHECK: dlr    %r0,%f1
+#CHECK: error: invalid operand for instruction
+#CHECK: dlr    %r0,%a1
 #CHECK: error: invalid operand for instruction
-#CHECK: dlr    %0,%r1
+#CHECK: dlr    %r0,0
 #CHECK: error: invalid operand for instruction
-#CHECK: dlr    0,%r1
-#CHECK: error: unknown token in expression
-#CHECK: dlr    (%r0),%r1
-#CHECK: error: unknown token in expression
-#CHECK: dlr    %,%r1
+#CHECK: dlr    %r0,0(%r1)
 
-       dlr     %r1,%r8
-       dlr     %r16,%r1
+       dlr     %r1,%r0
+       dlr     %r3,%r0
+       dlr     %r5,%r0
+       dlr     %r7,%r0
+       dlr     %r9,%r0
+       dlr     %r11,%r0
+       dlr     %r13,%r0
+       dlr     %r15,%r0
        dlr     %f0,%r1
        dlr     %a0,%r1
-       dlr     %arid,%r1
-       dlr     %0,%r1
-       dlr     0,%r1
-       dlr     (%r0),%r1
-       dlr     %,%r1
+       dlr     %r0,%f1
+       dlr     %r0,%a1
+       dlr     %r0,0
+       dlr     %r0,0(%r1)
 
-#CHECK: error: invalid register
-#CHECK: ler    %f1,%f16
-#CHECK: error: invalid register
-#CHECK: ler    %f1,%r0
-#CHECK: error: invalid register
-#CHECK: ler    %f1,%a0
+# Test FP32 operands
+#
+#CHECK: error: invalid operand for instruction
+#CHECK: ler    %r0,%f1
+#CHECK: error: invalid operand for instruction
+#CHECK: ler    %a0,%f1
 #CHECK: error: invalid operand for instruction
-#CHECK: ler    %f1,%fly
+#CHECK: ler    %f0,%r1
 #CHECK: error: invalid operand for instruction
-#CHECK: ler    %f1,%0
+#CHECK: ler    %f0,%a1
 #CHECK: error: invalid operand for instruction
-#CHECK: ler    %f1,0
-#CHECK: error: unknown token in expression
-#CHECK: ler    %f1,(%f0)
-#CHECK: error: unknown token in expression
-#CHECK: ler    %f1,%
+#CHECK: ler    %f0,0
+#CHECK: error: invalid operand for instruction
+#CHECK: ler    %f0,0(%r1)
 
-       ler     %f1,%f16
-       ler     %f1,%r0
-       ler     %f1,%a0
-       ler     %f1,%fly
-       ler     %f1,%0
-       ler     %f1,0
-       ler     %f1,(%f0)
-       ler     %f1,%
+       ler     %r0,%f1
+       ler     %a0,%f1
+       ler     %f0,%r1
+       ler     %f0,%a1
+       ler     %f0,0
+       ler     %f0,0(%r1)
 
-#CHECK: error: invalid register
-#CHECK: ldr    %f1,%f16
-#CHECK: error: invalid register
-#CHECK: ldr    %f1,%r0
-#CHECK: error: invalid register
-#CHECK: ldr    %f1,%a0
+# Test FP64 operands
+#
 #CHECK: error: invalid operand for instruction
-#CHECK: ldr    %f1,%fly
+#CHECK: ldr    %r0,%f1
 #CHECK: error: invalid operand for instruction
-#CHECK: ldr    %f1,%0
+#CHECK: ldr    %a0,%f1
 #CHECK: error: invalid operand for instruction
-#CHECK: ldr    %f1,0
-#CHECK: error: unknown token in expression
-#CHECK: ldr    %f1,(%f0)
-#CHECK: error: unknown token in expression
-#CHECK: ldr    %f1,%
+#CHECK: ldr    %f0,%r1
+#CHECK: error: invalid operand for instruction
+#CHECK: ldr    %f0,%a1
+#CHECK: error: invalid operand for instruction
+#CHECK: ldr    %f0,0
+#CHECK: error: invalid operand for instruction
+#CHECK: ldr    %f0,0(%r1)
 
-       ldr     %f1,%f16
-       ldr     %f1,%r0
-       ldr     %f1,%a0
-       ldr     %f1,%fly
-       ldr     %f1,%0
-       ldr     %f1,0
-       ldr     %f1,(%f0)
-       ldr     %f1,%
+       ldr     %r0,%f1
+       ldr     %a0,%f1
+       ldr     %f0,%r1
+       ldr     %f0,%a1
+       ldr     %f0,0
+       ldr     %f0,0(%r1)
 
-#CHECK: error: invalid register
-#CHECK: lxr    %f1,%f2
-#CHECK: error: invalid register
-#CHECK: lxr    %f1,%f16
-#CHECK: error: invalid register
-#CHECK: lxr    %f1,%r0
-#CHECK: error: invalid register
-#CHECK: lxr    %f1,%a0
+# Test FP128 operands
+#
+#CHECK: error: invalid register pair
+#CHECK: lxr    %f2,%f0
+#CHECK: error: invalid register pair
+#CHECK: lxr    %f0,%f3
+#CHECK: error: invalid register pair
+#CHECK: lxr    %f6,%f0
+#CHECK: error: invalid register pair
+#CHECK: lxr    %f0,%f7
+#CHECK: error: invalid register pair
+#CHECK: lxr    %f10,%f0
+#CHECK: error: invalid register pair
+#CHECK: lxr    %f0,%f11
+#CHECK: error: invalid register pair
+#CHECK: lxr    %f14,%f0
+#CHECK: error: invalid register pair
+#CHECK: lxr    %f0,%f15
+#CHECK: error: invalid operand for instruction
+#CHECK: lxr    %r0,%f1
+#CHECK: error: invalid operand for instruction
+#CHECK: lxr    %a0,%f1
 #CHECK: error: invalid operand for instruction
-#CHECK: lxr    %f1,%fly
+#CHECK: lxr    %f0,%r1
 #CHECK: error: invalid operand for instruction
-#CHECK: lxr    %f1,%0
+#CHECK: lxr    %f0,%a1
 #CHECK: error: invalid operand for instruction
-#CHECK: lxr    %f1,0
-#CHECK: error: unknown token in expression
-#CHECK: lxr    %f1,(%f0)
-#CHECK: error: unknown token in expression
-#CHECK: lxr    %f1,%
+#CHECK: lxr    %f0,0
+#CHECK: error: invalid operand for instruction
+#CHECK: lxr    %f0,0(%r1)
 
-       lxr     %f1,%f2
-       lxr     %f1,%f16
-       lxr     %f1,%r0
-       lxr     %f1,%a0
-       lxr     %f1,%fly
-       lxr     %f1,%0
-       lxr     %f1,0
-       lxr     %f1,(%f0)
-       lxr     %f1,%
+       lxr     %f2,%f0
+       lxr     %f0,%f3
+       lxr     %f6,%f0
+       lxr     %f0,%f7
+       lxr     %f10,%f0
+       lxr     %f0,%f11
+       lxr     %f14,%f0
+       lxr     %f0,%f15
+       lxr     %r0,%f1
+       lxr     %a0,%f1
+       lxr     %f0,%r1
+       lxr     %f0,%a1
+       lxr     %f0,0
+       lxr     %f0,0(%r1)
 
-#CHECK: error: invalid register
-#CHECK: .cfi_offset %a0,0
-#CHECK: error: register expected
-#CHECK: .cfi_offset %foo,0
-#CHECK: error: register expected
-#CHECK: .cfi_offset %,0
+# Test access register operands
+#
+#CHECK: error: invalid operand for instruction
+#CHECK: ear    %r0,%r0
+#CHECK: error: invalid operand for instruction
+#CHECK: ear    %r0,%f0
+#CHECK: error: invalid operand for instruction
+#CHECK: ear    %r0,0
+#CHECK: error: invalid operand for instruction
+#CHECK: ear    %r0,0(%r1)
+
+       ear     %r0,%r0
+       ear     %r0,%f0
+       ear     %r0,0
+       ear     %r0,0(%r1)
+
+       .cfi_startproc
+
+# Test general register parsing, with no predetermined class in mind.
+#
 #CHECK: error: register expected
 #CHECK: .cfi_offset r0,0
+#CHECK: error: invalid register
+#CHECK: .cfi_offset %,0
+#CHECK: error: invalid register
+#CHECK: .cfi_offset %r,0
+#CHECK: error: invalid register
+#CHECK: .cfi_offset %f,0
+#CHECK: error: invalid register
+#CHECK: .cfi_offset %a,0
+#CHECK: error: invalid register
+#CHECK: .cfi_offset %0,0
+#CHECK: error: invalid register
+#CHECK: .cfi_offset %c0,0
+#CHECK: error: invalid register
+#CHECK: .cfi_offset %r16,0
+#CHECK: error: invalid register
+#CHECK: .cfi_offset %f16,0
+#CHECK: error: invalid register
+#CHECK: .cfi_offset %a16,0
+#CHECK: error: invalid register
+#CHECK: .cfi_offset %reef,0
+#CHECK: error: invalid register
+#CHECK: .cfi_offset %arid,0
 
-       .cfi_startproc
-       .cfi_offset %a0,0
-       .cfi_offset %foo,0
-       .cfi_offset %,0
        .cfi_offset r0,0
+       .cfi_offset %,0
+       .cfi_offset %r,0
+       .cfi_offset %f,0
+       .cfi_offset %a,0
+       .cfi_offset %0,0
+       .cfi_offset %c0,0
+       .cfi_offset %r16,0
+       .cfi_offset %f16,0
+       .cfi_offset %a16,0
+       .cfi_offset %reef,0
+       .cfi_offset %arid,0
+
+# Test invalid CFI registers.  Will need to be updated once access
+# registers are modelled as LLVM registers.
+#
+#CHECK: error: invalid operand for instruction
+#CHECK: .cfi_offset %a0,0
+
+       .cfi_offset %a0,0
+
        .cfi_endproc
 
 #CHECK: error: %r0 used in an address