80 lines · plain
1# RUN: llvm-mc --triple=aarch64-elf --filetype=obj < %s | \2# RUN: llvm-objdump -d -r --symbolize-operands --no-show-raw-insn --no-leading-addr - | \3# RUN: FileCheck %s --match-full-lines4 5# CHECK: <fn1>:6# CHECK-NEXT: b <L0>7# CHECK-NEXT: tbz x0, #0x2c, <L2>8# CHECK-NEXT: <L0>:9# CHECK-NEXT: b.eq <L1>10# CHECK-NEXT: <L1>:11# CHECK-NEXT: cbz x1, <L0>12# CHECK-NEXT: <L2>:13# CHECK-NEXT: nop14# CHECK-NEXT: <L3>:15# CHECK-NEXT: bl <L3>16# CHECK-NEXT: R_AARCH64_CALL26 fn217# CHECK-NEXT: bl <fn2>18# CHECK-NEXT: adr x0, <L2>19# CHECK-NEXT: <L4>:20# CHECK-NEXT: adr x1, <L4>21# CHECK-NEXT: R_AARCH64_ADR_PREL_LO21 fn222# CHECK-NEXT: adr x2, <fn2>23# CHECK-NEXT: ldr w0, <L2>24# CHECK-NEXT: <L5>:25# CHECK-NEXT: ldr w0, <L5>26# CHECK-NEXT: R_AARCH64_LD_PREL_LO19 fn227# CHECK-NEXT: ret28# CHECK-NEXT: nop29# CHECK-NEXT: nop30# CHECK-NEXT: nop31# CHECK-EMPTY:32# CHECK-NEXT: <fn2>:33# CHECK-NEXT: bl <L0>34# CHECK-NEXT: adrp x3, 0x0 <fn1>35# CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 fn236# CHECK-NEXT: add x3, x3, #0x037# CHECK-NEXT: R_AARCH64_ADD_ABS_LO12_NC fn238# CHECK-NEXT: adrp x3, 0x0 <fn1>39# CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 fn240# CHECK-NEXT: ldr x0, [x3]41# CHECK-NEXT: R_AARCH64_LDST64_ABS_LO12_NC fn242# CHECK-NEXT: ret43# CHECK-NEXT: nop44# CHECK-NEXT: nop45# CHECK-NEXT: <L0>:46# CHECK-NEXT: ret47 48 .p2align 449 .global fn150fn1:51 b 0f52 tbz x0, 44, 2f530: b.eq 1f541: cbz x1, 0b552: nop56 bl fn257 bl .Lfn258 adr x0, 2b59 adr x1, fn260 adr x2, .Lfn261 ldr w0, 2b62 ldr w0, fn263 ret64 65 .p2align 466 .global fn267fn2:68.Lfn2: ## Local label for non-interposable call.69 bl .Lfn370 ## In future, we might identify the pairs and symbolize the operands properly.71 adrp x3, fn272 add x3, x3, :lo12:fn273 adrp x3, fn274 ldr x0, [x3, :lo12:fn2]75 ret76 77 .p2align 478.Lfn3: ## Private function79 ret80