Update ARM STM tests. Fix check: prefix for diagnostic tests.
authorJim Grosbach <grosbach@apple.com>
Tue, 26 Jul 2011 15:41:22 +0000 (15:41 +0000)
committerJim Grosbach <grosbach@apple.com>
Tue, 26 Jul 2011 15:41:22 +0000 (15:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136088 91177308-0d34-0410-b5e6-96231b3b80d8

test/MC/ARM/basic-arm-instructions.s
test/MC/ARM/diagnostics.s

index 16d3fd0c8987323dfa940913bf593b9cde8f2e29..5174b956ca93bef072e951357c493e84b2a52f6c 100644 (file)
@@ -1669,25 +1669,26 @@ _func:
 @ STM*
 @------------------------------------------------------------------------------
         stm       r2, {r1,r3-r6,sp}
-        stmia     r2, {r1,r3-r6,sp}
-        stmib     r2, {r1,r3-r6,sp}
-        stmda     r2, {r1,r3-r6,sp}
-        stmdb     r2, {r1,r3-r6,sp}
-        stmfd     r2, {r1,r3-r6,sp}
+        stmia     r3, {r1,r3-r6,lr}
+        stmib     r4, {r1,r3-r6,sp}
+        stmda     r5, {r1,r3-r6,sp}
+        stmdb     r6, {r1,r3-r6,r8}
+        stmfd     sp, {r1,r3-r6,sp}
 
         @ with update
-        stmia     r2!, {r1,r3-r6,sp}
-        stmib     r2!, {r1,r3-r6,sp}
-        stmda     r2!, {r1,r3-r6,sp}
-        stmdb     r2!, {r1,r3-r6,sp}
-@ CHECK: stm   r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe8]
-@ CHECK: stm   r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe8]
-@ CHECK: stmib r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe9]
-@ CHECK: stmda r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe8]
-@ CHECK: stmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe9]
-@ CHECK: stmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe9]
-
-@ CHECK: stm   r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa2,0xe8]
-@ CHECK: stmib r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa2,0xe9]
-@ CHECK: stmda r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x22,0xe8]
-@ CHECK: stmdb r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x22,0xe9]
+        stm       r8!, {r1,r3-r6,sp}
+        stmib     r9!, {r1,r3-r6,sp}
+        stmda     sp!, {r1,r3-r6}
+        stmdb     r0!, {r1,r5,r7,sp}
+
+@ CHECK: stm   r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe8]
+@ CHECK: stm   r3, {lr, r1, r3, r4, r5, r6} @ encoding: [0x7a,0x40,0x83,0xe8]
+@ CHECK: stmib r4, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x84,0xe9]
+@ CHECK: stmda r5, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x05,0xe8]
+@ CHECK: stmdb r6, {r1, r3, r4, r5, r6, r8} @ encoding: [0x7a,0x01,0x06,0xe9]
+@ CHECK: stmdb sp, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x0d,0xe9]
+
+@ CHECK: stm   r8!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa8,0xe8]
+@ CHECK: stmib r9!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa9,0xe9]
+@ CHECK: stmda sp!, {r1, r3, r4, r5, r6} @ encoding: [0x7a,0x00,0x2d,0xe8]
+@ CHECK: stmdb r0!, {r1, r5, r7, sp}   @ encoding: [0xa2,0x20,0x20,0xe9]
index aff242cc0beefb862303b85acff4fea3212a3ede..afbbb36ed7425bfb4626a80d49b172e108ecb846 100644 (file)
         pkhbt r2, r2, r3, asr #3
         pkhtb r2, r2, r3, lsl #3
 
-@ CHECK: error: immediate value out of range
-@ CHECK:         pkhbt r2, r2, r3, lsl #-1
-@ CHECK:                                ^
-@ CHECK: error: immediate value out of range
-@ CHECK:         pkhbt r2, r2, r3, lsl #32
-@ CHECK:                                ^
-@ CHECK: error: immediate value out of range
-@ CHECK:         pkhtb r2, r2, r3, asr #0
-@ CHECK:                                ^
-@ CHECK: error: immediate value out of range
-@ CHECK:         pkhtb r2, r2, r3, asr #33
-@ CHECK:                                ^
-@ CHECK: error: lsl operand expected.
-@ CHECK:         pkhbt r2, r2, r3, asr #3
-@ CHECK:                           ^
-@ CHECK: error: asr operand expected.
-@ CHECK:         pkhtb r2, r2, r3, lsl #3
-@ CHECK:                           ^
+@ CHECK-ERRORS: error: immediate value out of range
+@ CHECK-ERRORS:         pkhbt r2, r2, r3, lsl #-1
+@ CHECK-ERRORS:                                ^
+@ CHECK-ERRORS: error: immediate value out of range
+@ CHECK-ERRORS:         pkhbt r2, r2, r3, lsl #32
+@ CHECK-ERRORS:                                ^
+@ CHECK-ERRORS: error: immediate value out of range
+@ CHECK-ERRORS:         pkhtb r2, r2, r3, asr #0
+@ CHECK-ERRORS:                                ^
+@ CHECK-ERRORS: error: immediate value out of range
+@ CHECK-ERRORS:         pkhtb r2, r2, r3, asr #33
+@ CHECK-ERRORS:                                ^
+@ CHECK-ERRORS: error: lsl operand expected.
+@ CHECK-ERRORS:         pkhbt r2, r2, r3, asr #3
+@ CHECK-ERRORS:                           ^
+@ CHECK-ERRORS: error: asr operand expected.
+@ CHECK-ERRORS:         pkhtb r2, r2, r3, lsl #3
+@ CHECK-ERRORS:                           ^
 
 
         @ bad values for SETEND
         setend me
         setend 1
 
-@ CHECK: error: instruction 'setend' is not predicable, but condition code specified
-@ CHECK:         setendne be
-@ CHECK:         ^
-@ CHECK: error: 'be' or 'le' operand expected
-@ CHECK:         setend me
-@ CHECK:                  ^
-@ CHECK: error: 'be' or 'le' operand expected
-@ CHECK:         setend 1
-@ CHECK:                ^
+@ CHECK-ERRORS: error: instruction 'setend' is not predicable, but condition code specified
+@ CHECK-ERRORS:         setendne be
+@ CHECK-ERRORS:         ^
+@ CHECK-ERRORS: error: 'be' or 'le' operand expected
+@ CHECK-ERRORS:         setend me
+@ CHECK-ERRORS:                  ^
+@ CHECK-ERRORS: error: 'be' or 'le' operand expected
+@ CHECK-ERRORS:         setend 1
+@ CHECK-ERRORS:                ^
 
 
         @ Out of range immediates and bad shift types for SSAT
         ssat    r8, #1, r10, lsl fred
         ssat    r8, #1, r10, lsl #fred
 
-@ CHECK: error: invalid operand for instruction
-@ CHECK:       ssat    r8, #0, r10, lsl #8
-@ CHECK:                   ^
-@ CHECK: error: invalid operand for instruction
-@ CHECK:       ssat    r8, #33, r10, lsl #8
-@ CHECK:                   ^
-@ CHECK: error: 'lsr' shift amount must be in range [0,31]
-@ CHECK:       ssat    r8, #1, r10, lsl #-1
-@ CHECK:                                 ^
-@ CHECK: error: 'lsr' shift amount must be in range [0,31]
-@ CHECK:       ssat    r8, #1, r10, lsl #32
-@ CHECK:                                 ^
-@ CHECK: error: 'asr' shift amount must be in range [1,32]
-@ CHECK:       ssat    r8, #1, r10, asr #0
-@ CHECK:                                 ^
-@ CHECK: error: 'asr' shift amount must be in range [1,32]
-@ CHECK:       ssat    r8, #1, r10, asr #33
-@ CHECK:                                 ^
-@ CHECK: error: shift operator 'asr' or 'lsl' expected
-@ CHECK:         ssat    r8, #1, r10, lsr #5
-@ CHECK:                              ^
-@ CHECK: error: '#' expected
-@ CHECK:         ssat    r8, #1, r10, lsl fred
-@ CHECK:                                  ^
-@ CHECK: error: shift amount must be an immediate
-@ CHECK:         ssat    r8, #1, r10, lsl #fred
-@ CHECK:                                   ^
+@ CHECK-ERRORS: error: invalid operand for instruction
+@ CHECK-ERRORS:        ssat    r8, #0, r10, lsl #8
+@ CHECK-ERRORS:                    ^
+@ CHECK-ERRORS: error: invalid operand for instruction
+@ CHECK-ERRORS:        ssat    r8, #33, r10, lsl #8
+@ CHECK-ERRORS:                    ^
+@ CHECK-ERRORS: error: 'lsr' shift amount must be in range [0,31]
+@ CHECK-ERRORS:        ssat    r8, #1, r10, lsl #-1
+@ CHECK-ERRORS:                                  ^
+@ CHECK-ERRORS: error: 'lsr' shift amount must be in range [0,31]
+@ CHECK-ERRORS:        ssat    r8, #1, r10, lsl #32
+@ CHECK-ERRORS:                                  ^
+@ CHECK-ERRORS: error: 'asr' shift amount must be in range [1,32]
+@ CHECK-ERRORS:        ssat    r8, #1, r10, asr #0
+@ CHECK-ERRORS:                                  ^
+@ CHECK-ERRORS: error: 'asr' shift amount must be in range [1,32]
+@ CHECK-ERRORS:        ssat    r8, #1, r10, asr #33
+@ CHECK-ERRORS:                                  ^
+@ CHECK-ERRORS: error: shift operator 'asr' or 'lsl' expected
+@ CHECK-ERRORS:         ssat    r8, #1, r10, lsr #5
+@ CHECK-ERRORS:                              ^
+@ CHECK-ERRORS: error: '#' expected
+@ CHECK-ERRORS:         ssat    r8, #1, r10, lsl fred
+@ CHECK-ERRORS:                                  ^
+@ CHECK-ERRORS: error: shift amount must be an immediate
+@ CHECK-ERRORS:         ssat    r8, #1, r10, lsl #fred
+@ CHECK-ERRORS:                                   ^
 
         @ Out of range immediates for SSAT16
        ssat16  r2, #0, r7
        ssat16  r3, #17, r5
 
-@ CHECK: error: invalid operand for instruction
-@ CHECK:       ssat16  r2, #0, r7
-@ CHECK:                   ^
-@ CHECK: error: invalid operand for instruction
-@ CHECK:       ssat16  r3, #17, r5
-@ CHECK:                   ^
+@ CHECK-ERRORS: error: invalid operand for instruction
+@ CHECK-ERRORS:        ssat16  r2, #0, r7
+@ CHECK-ERRORS:                    ^
+@ CHECK-ERRORS: error: invalid operand for instruction
+@ CHECK-ERRORS:        ssat16  r3, #17, r5
+@ CHECK-ERRORS:                    ^
+
+
+        @ Out of order STM registers
+        stmda sp!, {r5, r2}
+
+@ CHECK-ERRORS: warning: register not in ascending order in register list
+@ CHECK-ERRORS:         stmda     sp!, {r5, r2}
+@ CHECK-ERRORS:                            ^