1// REQUIRES: arm 2// RUN: llvm-mc --triple=thumbv6m-none-eabi --arm-add-build-attributes -filetype=obj -o %t.o %s 3// RUN: ld.lld %t.o -o %t 4// RUN: llvm-objdump -d --no-show-raw-insn %t --triple=thumbv6m-none-eabi | FileCheck %s 5 6/// Test R_ARM_THM_PC8 as used in the adr pseudo instruction. Only positive 7/// 4-byte aligned offsets are permitted. 8 .section .text.01, "ax", %progbits 9 .balign 4 10 .global _start 11 .thumb_func 12_start: 13/// adr r0, target1 14 .inst.n 0xa0ff 15 .reloc 0, R_ARM_THM_PC8, target1 16/// adr r1, target2 17 .inst.n 0xa1ff 18 .reloc 2, R_ARM_THM_PC8, target2 19 .section .text.02, "ax", %progbits 20 .balign 4 21 .global target1 22 .type target1, %function 23target1: 24 nop 25 bx lr 26 .section .text.03, "ax", %progbits 27 .balign 4 28 .space 1016 29 .type target2, %function 30target2: 31 nop 32 bx lr 33 34// CHECK: 000200b4 <_start>: 35// CHECK-NEXT: 200b4: adr r0, #0 36// CHECK-NEXT: 200b6: adr r1, #1020 37 38// CHECK: 000200b8 <target1>: 39// CHECK-NEXT: 200b8: nop 40// CHECK-NEXT: 200ba: bx lr 41 42// CHECK: 000204b4 <target2>: 43// CHECK-NEXT: 204b4: nop 44// CHECK-NEXT: 204b6: bx lr 45