1 @ RUN: not llvm-mc -triple=armv7-unknown-linux-gnueabi < %s 2> %t 2 @ RUN: FileCheck --check-prefix=CHECK < %t %s 3 4 @ Check the diagnostics for .setfp directive. 5 6 7 .syntax unified 8 .text 9 10 @------------------------------------------------------------------------------- 11 @ TEST1: .setfp before .fnstart 12 @------------------------------------------------------------------------------- 13 .globl func1 14 .align 2 15 .type func1,%function 16 .setfp fp, sp, #0 17 @ CHECK: error: .fnstart must precede .setfp directive 18 @ CHECK: .setfp fp, sp, #0 19 @ CHECK: ^ 20 .fnstart 21 func1: 22 .fnend 23 24 25 26 @------------------------------------------------------------------------------- 27 @ TEST2: .setfp after .handlerdata 28 @------------------------------------------------------------------------------- 29 .globl func2 30 .align 2 31 .type func2,%function 32 .fnstart 33 func2: 34 .handlerdata 35 .setfp fp, sp, #0 36 @ CHECK: error: .setfp must precede .handlerdata directive 37 @ CHECK: .setfp fp, sp, #0 38 @ CHECK: ^ 39 .fnend 40 41 42 43 @------------------------------------------------------------------------------- 44 @ TEST3: .setfp with bad fp register 45 @------------------------------------------------------------------------------- 46 .globl func3 47 .align 2 48 .type func3,%function 49 .fnstart 50 func3: 51 .setfp 0, r0, #0 52 @ CHECK: error: frame pointer register expected 53 @ CHECK: .setfp 0, r0, #0 54 @ CHECK: ^ 55 .fnend 56 57 58 59 @------------------------------------------------------------------------------- 60 @ TEST4: .setfp with bad sp register 61 @------------------------------------------------------------------------------- 62 .globl func4 63 .align 2 64 .type func4,%function 65 .fnstart 66 func4: 67 .setfp fp, 0, #0 68 @ CHECK: error: stack pointer register expected 69 @ CHECK: .setfp fp, 0, #0 70 @ CHECK: ^ 71 .fnend 72 73 74 75 @------------------------------------------------------------------------------- 76 @ TEST5: .setfp with non-sp register as second operand 77 @------------------------------------------------------------------------------- 78 .globl func5 79 .align 2 80 .type func5,%function 81 .fnstart 82 func5: 83 .setfp fp, r0, #0 84 @ CHECK: error: register should be either $sp or the latest fp register 85 @ CHECK: .setfp fp, r0, #0 86 @ CHECK: ^ 87 .fnend 88