150
|
1 // REQUIRES: aarch64
|
|
2 // RUN: llvm-mc -filetype=obj -triple=aarch64-windows %s -o %t.obj
|
236
|
3 // RUN: lld-link -entry:main -subsystem:console %t.obj -out:%t.exe -map -verbose 2>&1 | FileCheck -check-prefix=VERBOSE %s
|
|
4 // RUN: llvm-objdump --no-print-imm-hex -d %t.exe | FileCheck --check-prefix=DISASM %s
|
150
|
5
|
|
6 // VERBOSE: Added 2 thunks with margin {{.*}} in 1 passes
|
|
7
|
|
8 .globl main
|
|
9 .globl func1
|
|
10 .globl func2
|
|
11 .text
|
|
12 main:
|
|
13 tbz w0, #0, func1
|
|
14 ret
|
|
15 .section .text$a, "xr"
|
|
16 .space 0x8000
|
|
17 .section .text$b, "xr"
|
|
18 func1:
|
|
19 tbz w0, #0, func2
|
|
20 ret
|
|
21 .space 1
|
|
22 .section .text$c, "xr"
|
|
23 .space 0x8000
|
|
24 .section .text$d, "xr"
|
|
25 .align 2
|
|
26 func2:
|
|
27 ret
|
|
28
|
173
|
29 // DISASM: 0000000140001000 <.text>:
|
236
|
30 // DISASM: 140001000: 36000040 tbz w0, #0, 0x140001008 <.text+0x8>
|
|
31 // DISASM: 140001004: d65f03c0 ret
|
|
32 // DISASM: 140001008: 90000050 adrp x16, 0x140009000
|
|
33 // DISASM: 14000100c: 91005210 add x16, x16, #20
|
|
34 // DISASM: 140001010: d61f0200 br x16
|
150
|
35
|
236
|
36 // DISASM: 140009014: 36000060 tbz w0, #0, 0x140009020 <.text+0x8020>
|
|
37 // DISASM: 140009018: d65f03c0 ret
|
150
|
38
|
236
|
39 // DISASM: 140009020: 90000050 adrp x16, 0x140011000
|
|
40 // DISASM: 140009024: 9100b210 add x16, x16, #44
|
|
41 // DISASM: 140009028: d61f0200 br x16
|
150
|
42
|
236
|
43 // DISASM: 14001102c: d65f03c0 ret
|