2018-06-05 17:32:28 +08:00
|
|
|
@ RUN: not llvm-mc %s -triple thumbv7-linux-gnueabi -filetype=obj -o /dev/null 2>&1 | FileCheck %s
|
|
|
|
@ RUN: not llvm-mc %s -triple thumbv8-m.baseline-none-eabi -filetype=obj -o /dev/null 2>&1 | FileCheck %s
|
|
|
|
@ RUN: not llvm-mc %s -triple thumbv8-m.mainline-none-eabi -filetype=obj -o /dev/null 2>&1 | FileCheck %s
|
|
|
|
@ RUN: not llvm-mc %s -triple thumbv6m-none-eabi -filetype=obj -o /dev/null 2>&1 | FileCheck %s
|
|
|
|
@ RUN: not llvm-mc %s -triple thumbv5-linux-gnueabi -filetype=obj -o /dev/null 2>&1 | FileCheck -check-prefix=CHECKSHORT %s
|
|
|
|
|
|
|
|
// Thumb BL has range +- 4 Megabytes if CPU does not support Thumb2 or does not
|
|
|
|
// have v8-M baseline ops, it is +- 16 Megabytes otherwise.
|
2015-11-05 07:00:39 +08:00
|
|
|
|
2017-06-24 06:52:36 +08:00
|
|
|
.code 16
|
2018-06-05 17:32:28 +08:00
|
|
|
bl shortend
|
|
|
|
.space 0x3fffff
|
|
|
|
shortend:
|
|
|
|
// CHECKSHORT-NOT: error
|
|
|
|
// CHECKSHORT: [[@LINE+1]]:{{[0-9]}}: error: Relocation out of range
|
|
|
|
bl shortend2
|
|
|
|
.space 0x400000
|
|
|
|
shortend2:
|
2015-11-05 07:00:39 +08:00
|
|
|
|
2018-06-05 17:32:28 +08:00
|
|
|
// CHECKSHORT: [[@LINE+1]]:{{[0-9]}}: error: Relocation out of range
|
2015-11-05 07:00:39 +08:00
|
|
|
bl end
|
2018-06-05 17:32:28 +08:00
|
|
|
.space 0xffffff
|
2015-11-05 07:00:39 +08:00
|
|
|
end:
|
|
|
|
bl end2
|
2018-06-05 17:32:28 +08:00
|
|
|
.space 0xffffff
|
2015-11-05 07:00:39 +08:00
|
|
|
.global end2
|
|
|
|
end2:
|
|
|
|
|
|
|
|
bl end3
|
2018-06-05 17:32:28 +08:00
|
|
|
.space 0x1000000
|
2015-11-05 07:00:39 +08:00
|
|
|
.global end3
|
|
|
|
end3:
|
|
|
|
|
2017-06-24 06:52:36 +08:00
|
|
|
// CHECK-NOT: error
|
2018-06-05 17:32:28 +08:00
|
|
|
// CHECKSHORT-NOT: error
|
|
|
|
// CHECKSHORT: [[@LINE+2]]:{{[0-9]}}: error: Relocation out of range
|
2017-06-24 06:52:36 +08:00
|
|
|
// CHECK: [[@LINE+1]]:{{[0-9]}}: error: Relocation out of range
|
2015-11-05 09:10:15 +08:00
|
|
|
bl end4
|
2018-06-05 17:32:28 +08:00
|
|
|
.space 0x1000000
|
2015-11-05 09:10:15 +08:00
|
|
|
end4:
|
|
|
|
|
2018-06-05 17:32:28 +08:00
|
|
|
shortstart1:
|
|
|
|
.space 0x3ffffc
|
|
|
|
bl shortstart1
|
|
|
|
|
|
|
|
shortstart2:
|
|
|
|
.space 0x400000
|
|
|
|
// CHECKSHORT: [[@LINE+1]]:{{[0-9]}}: error: Relocation out of range
|
|
|
|
bl shortstart2
|
|
|
|
|
2017-06-24 06:52:36 +08:00
|
|
|
start1:
|
2018-06-05 17:32:28 +08:00
|
|
|
.space 0xfffffc
|
|
|
|
// CHECKSHORT: [[@LINE+1]]:{{[0-9]}}: error: Relocation out of range
|
2017-06-24 06:52:36 +08:00
|
|
|
bl start1
|
|
|
|
|
|
|
|
.global start2
|
|
|
|
start2:
|
2018-06-05 17:32:28 +08:00
|
|
|
.space 0xfffffc
|
2017-06-24 06:52:36 +08:00
|
|
|
bl start2
|
|
|
|
|
|
|
|
.global start3
|
|
|
|
start3:
|
2018-06-05 17:32:28 +08:00
|
|
|
.space 0xfffffd
|
2017-06-24 06:52:36 +08:00
|
|
|
bl start3
|
|
|
|
|
2018-06-05 17:32:28 +08:00
|
|
|
// CHECK-NOT: error
|
2017-06-24 06:52:36 +08:00
|
|
|
start4:
|
2018-06-05 17:32:28 +08:00
|
|
|
.space 0xfffffd
|
|
|
|
// CHECK: [[@LINE+2]]:{{[0-9]}}: error: Relocation out of range
|
|
|
|
// CHECKSHORT: [[@LINE+1]]:{{[0-9]}}: error: Relocation out of range
|
2017-06-24 06:52:36 +08:00
|
|
|
bl start4
|