1 @ RUN: not llvm-mc %s -triple thumbv7-linux-gnueabi -filetype=obj -o /dev/null 2>&1 | FileCheck %s 2 @ RUN: not llvm-mc %s -triple thumbv8-m.baseline-none-eabi -filetype=obj -o /dev/null 2>&1 | FileCheck %s 3 @ RUN: not llvm-mc %s -triple thumbv8-m.mainline-none-eabi -filetype=obj -o /dev/null 2>&1 | FileCheck %s 4 @ RUN: not llvm-mc %s -triple thumbv6m-none-eabi -filetype=obj -o /dev/null 2>&1 | FileCheck %s 5 @ RUN: not llvm-mc %s -triple thumbv5-linux-gnueabi -filetype=obj -o /dev/null 2>&1 | FileCheck -check-prefix=CHECKSHORT %s 6 7 // Thumb BL has range +- 4 Megabytes if CPU does not support Thumb2 or does not 8 // have v8-M baseline ops, it is +- 16 Megabytes otherwise. 9 10 .code 16 11 bl shortend 12 .space 0x3fffff 13 shortend: 14 // CHECKSHORT-NOT: error 15 // CHECKSHORT: [[@LINE+1]]:{{[0-9]}}: error: Relocation out of range 16 bl shortend2 17 .space 0x400000 18 shortend2: 19 20 // CHECKSHORT: [[@LINE+1]]:{{[0-9]}}: error: Relocation out of range 21 bl end 22 .space 0xffffff 23 end: 24 bl end2 25 .space 0xffffff 26 .global end2 27 end2: 28 29 bl end3 30 .space 0x1000000 31 .global end3 32 end3: 33 34 // CHECK-NOT: error 35 // CHECKSHORT-NOT: error 36 // CHECKSHORT: [[@LINE+2]]:{{[0-9]}}: error: Relocation out of range 37 // CHECK: [[@LINE+1]]:{{[0-9]}}: error: Relocation out of range 38 bl end4 39 .space 0x1000000 40 end4: 41 42 shortstart1: 43 .space 0x3ffffc 44 bl shortstart1 45 46 shortstart2: 47 .space 0x400000 48 // CHECKSHORT: [[@LINE+1]]:{{[0-9]}}: error: Relocation out of range 49 bl shortstart2 50 51 start1: 52 .space 0xfffffc 53 // CHECKSHORT: [[@LINE+1]]:{{[0-9]}}: error: Relocation out of range 54 bl start1 55 56 .global start2 57 start2: 58 .space 0xfffffc 59 bl start2 60 61 .global start3 62 start3: 63 .space 0xfffffd 64 bl start3 65 66 // CHECK-NOT: error 67 start4: 68 .space 0xfffffd 69 // CHECK: [[@LINE+2]]:{{[0-9]}}: error: Relocation out of range 70 // CHECKSHORT: [[@LINE+1]]:{{[0-9]}}: error: Relocation out of range 71 bl start4 72