|
| 1 | +@RUN: llvm-mc -triple arm-none-eabi -mcpu=cortex-m33 -filetype=obj %s | llvm-objdump -d --mcpu=cortex-m3 - | FileCheck %s |
| 2 | + |
| 3 | +@ Check that instructions that are disassembled as <undefined> within an IT |
| 4 | +@ block advance the IT state. This prevents the IT state spilling over into |
| 5 | +@ the next instruction. |
| 6 | + |
| 7 | +@ The vldmiaeq instruction is disassembled as <undefined> with |
| 8 | +@ -mcpu=cortex-m3 as this does not have a fpu. |
| 9 | +.text |
| 10 | +.fpu fp-armv8 |
| 11 | +.thumb |
| 12 | + ite eq |
| 13 | + vldmiaeq r0!, {s16-s31} |
| 14 | + addne r0, r0, r0 |
| 15 | + add r1, r1, r1 |
| 16 | + |
| 17 | + itet eq |
| 18 | + vldmiaeq r0!, {s16-s31} |
| 19 | + vldmiane r0!, {s16-s31} |
| 20 | + vldmiaeq r0!, {s16-s31} |
| 21 | + add r0, r0, r0 |
| 22 | + add r1, r1, r1 |
| 23 | + add r2, r2, r2 |
| 24 | + |
| 25 | + it eq |
| 26 | + vldmiaeq r0!, {s16-s31} |
| 27 | + |
| 28 | + it ne |
| 29 | + addne r0, r0, r0 |
| 30 | + |
| 31 | +@ CHECK: 0: bf0c ite eq |
| 32 | +@ CHECK-NEXT: 2: ecb0 8a10 <unknown> |
| 33 | +@ CHECK-NEXT: 6: 1800 addne r0, r0, r0 |
| 34 | +@ CHECK-NEXT: 8: 4409 add r1, r1 |
| 35 | +@ CHECK-NEXT: a: bf0a itet eq |
| 36 | +@ CHECK-NEXT: c: ecb0 8a10 <unknown> |
| 37 | +@ CHECK-NEXT: 10: ecb0 8a10 <unknown> |
| 38 | +@ CHECK-NEXT: 14: ecb0 8a10 <unknown> |
| 39 | +@ CHECK-NEXT: 18: 4400 add r0, r0 |
| 40 | +@ CHECK-NEXT: 1a: 4409 add r1, r1 |
| 41 | +@ CHECK-NEXT: 1c: 4412 add r2, r2 |
| 42 | +@ CHECK-NEXT: 1e: bf08 it eq |
| 43 | +@ CHECK-NEXT: 20: ecb0 8a10 <unknown> |
| 44 | +@ CHECK-NEXT: 24: bf18 it ne |
| 45 | +@ CHECK-NEXT: 26: 1800 addne r0, r0, r0 |
0 commit comments