68 lines · plain
1// REQUIRES: arm2// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7a-none-linux-gnueabi %s -o %t3// RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=thumbv7a-none-linux-gnueabi %S/Inputs/far-arm-thumb-abs.s -o %tfar4// RUN: echo "SECTIONS { \5// RUN: . = 0xb4; \6// RUN: .callee1 : { *(.callee_low) } \7// RUN: .caller : { *(.text) } \8// RUN: .callee2 : { *(.callee_high) } } " > %t.script9// RUN: ld.lld --script %t.script %t %tfar -o %t210// RUN: llvm-objdump -d %t2 | FileCheck %s11 12 .syntax unified13 .thumb14 .section .callee_low, "ax",%progbits15 .align 216 .type callee_low,%function17callee_low:18 bx lr19 20 .section .text, "ax",%progbits21 .globl _start22 .balign 0x1000023 .type _start,%function24_start:25 bl callee_low26 b callee_low27 beq callee_low28 bl callee_high29 b callee_high30 bne callee_high31 bl far_uncond32 b far_uncond33 bgt far_cond34 bx lr35 36 .section .callee_high, "ax",%progbits37 .align 238 .type callee_high,%function39callee_high:40 bx lr41 42// CHECK: Disassembly of section .callee1:43// CHECK-EMPTY:44// CHECK-NEXT: <callee_low>:45// CHECK-NEXT: b4: 4770 bx lr46// CHECK-EMPTY:47// CHECK-NEXT: Disassembly of section .caller:48// CHECK-EMPTY:49// CHECK-NEXT: <_start>:50// CHECK-NEXT: 10000: f7f0 f858 bl 0xb4 <callee_low>51// CHECK-NEXT: 10004: f7f0 b856 b.w 0xb4 <callee_low>52// CHECK-NEXT: 10008: f430 a854 beq.w 0xb4 <callee_low>53// CHECK-NEXT: 1000c: f000 f80c bl 0x10028 <callee_high>54// CHECK-NEXT: 10010: f000 b80a b.w 0x10028 <callee_high>55// CHECK-NEXT: 10014: f040 8008 bne.w 0x10028 <callee_high>56/// far_uncond = 0x101001b57// CHECK-NEXT: 10018: f3ff d7ff bl 0x101001a58// CHECK-NEXT: 1001c: f3ff 97fd b.w 0x101001a59/// far_cond = 0x11002360// CHECK-NEXT: 10020: f33f afff bgt.w 0x11002261// CHECK-NEXT: 10024: 4770 bx lr62// CHECK-NEXT: 10026:63// CHECK-EMPTY:64// CHECK-NEXT: Disassembly of section .callee2:65// CHECK-EMPTY:66// CHECK-NEXT: <callee_high>:67// CHECK-NEXT: 10028: 4770 bx lr68