llvm/test/MC/ARM/deprecated-v8.s
Amara Emerson 6eef361b73 [ARM] Warn on deprecated IT blocks in v8 AArch32 assembly.
Patch by Artyom Skrobov.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191885 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-03 09:31:51 +00:00

52 lines
2.3 KiB
ArmAsm

@ RUN: llvm-mc -triple armv8 -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ARMV8
@ RUN: llvm-mc -triple thumbv8 -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=CHECK-THUMBV8
@ RUN: llvm-mc -triple armv7 -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ARMV7
@ RUN: llvm-mc -triple thumbv7 -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=CHECK-THUMBV7
@ RUN: llvm-mc -triple armv6 -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ARMV6
setend be
@ CHECK-ARMV8: warning: deprecated
@ CHECK-THUMBV8: warning: deprecated
@ CHECK-ARMV7-NOT: warning: deprecated
@ CHECK-THUMBV7-NOT: warning: deprecated
mcr p15, #0, r5, c7, c5, #4
@ CHECK-ARMV8: warning: deprecated since v7, use 'isb'
@ CHECK-THUMBV8: warning: deprecated since v7, use 'isb'
@ CHECK-ARMV7: warning: deprecated since v7, use 'isb'
@ CHECK-THUMBV7: warning: deprecated since v7, use 'isb'
@ CHECK-ARMV6-NOT: warning: deprecated since v7, use 'isb'
mcr p15, #0, r5, c7, c10, #4
@ CHECK-ARMV8: warning: deprecated since v7, use 'dsb'
@ CHECK-THUMBV8: warning: deprecated since v7, use 'dsb'
@ CHECK-ARMV7: warning: deprecated since v7, use 'dsb'
@ CHECK-THUMBV7: warning: deprecated since v7, use 'dsb'
@ CHECK-ARMV6-NOT: warning: deprecated since v7, use 'dsb'
mcr p15, #0, r5, c7, c10, #5
@ CHECK-ARMV8: warning: deprecated since v7, use 'dmb'
@ CHECK-THUMBV8: warning: deprecated since v7, use 'dmb'
@ CHECK-ARMV7: warning: deprecated since v7, use 'dmb'
@ CHECK-THUMBV7: warning: deprecated since v7, use 'dmb'
@ CHECK-ARMV6-NOT: warning: deprecated since v7, use 'dmb'
it ge
movge r0, #4096
@ CHECK-THUMBV8: warning: deprecated instruction in IT block
@ CHECK-THUMBV7-NOT: warning
ite ge
addge r0, r1
addlt r0, r2
@ CHECK-ARMV8: warning: applying IT instruction to more than one subsequent instruction is deprecated
@ CHECK-THUMBV8: warning: applying IT instruction to more than one subsequent instruction is deprecated
@ CHECK-THUMBV7-NOT: warning
it ge
movge r0, pc // invalid operand
@ CHECK-THUMBV8: warning: deprecated instruction in IT block
@ CHECK-THUMBV7-NOT: warning
it ge
revge r0, r0 // invalid instruction
@ CHECK-THUMBV8: warning: deprecated instruction in IT block
@ CHECK-THUMBV7-NOT: warning
it ge
clzge r0, r0 // only has 32-bit form
@ CHECK-THUMBV8: warning: deprecated instruction in IT block
@ CHECK-THUMBV7-NOT: warning