xref: /llvm-project/llvm/test/tools/llvm-objdump/ELF/ARM/branch-symbols.s (revision 75cdab6dc2453a508157a9c383b93373a93078d6)
1@ RUN: llvm-mc < %s --triple=armv8a   -mattr=+mve,+lob -filetype=obj | llvm-objdump --no-print-imm-hex -dr - --triple armv8a --mattr=+mve,+lob --no-show-raw-insn | FileCheck %s
2@ RUN: llvm-mc < %s --triple=thumbv8a -mattr=+mve,+lob -filetype=obj | llvm-objdump --no-print-imm-hex -dr - --triple armv8a --mattr=+mve,+lob --no-show-raw-insn | FileCheck %s
3
4foo:
5
6  // Branches
7  .arm
8  b foo
9  ble foo
10@ CHECK:       0: b       0x0 <foo>                 @ imm = #-8
11@ CHECK:       4: ble     0x0 <foo>                 @ imm = #-12
12
13  .thumb
14  b foo
15  b.w foo
16  ble foo
17  ble.w foo
18  le foo
19  le lr, foo
20  cbz r0, bar
21  cbnz r0, bar
22@ CHECK:       8: b       0x0 <foo>                 @ imm = #-12
23@ CHECK:       a: b.w     0x0 <foo>                 @ imm = #-14
24@ CHECK:       e: ble     0x0 <foo>                 @ imm = #-18
25@ CHECK:      10: ble.w   0x0 <foo>                 @ imm = #-20
26@ CHECK:      14: le      0x0 <foo>                 @ imm = #-24
27@ CHECK:      18: le      lr, 0x0 <foo>             @ imm = #-28
28@ CHECK:      1c: cbz     r0, 0x48 <bar>            @ imm = #40
29@ CHECK:      1e: cbnz    r0, 0x48 <bar>            @ imm = #38
30
31  // Calls without relocations (these offsets al correspond to label foo).
32  .arm
33  bl #-40
34  blx #-44
35  bleq #-48
36@ CHECK:      20:   bl      0x0 <foo>               @ imm = #-40
37@ CHECK:      24:   blx     0x0 <foo>               @ imm = #-44
38@ CHECK:      28:   bleq    0x0 <foo>               @ imm = #-48
39
40  .thumb
41  bl #-48
42  blx #-52
43@ CHECK:      2c:   bl      0x0 <foo>               @ imm = #-48
44@ CHECK:      30:   blx     0x0 <foo>               @ imm = #-52
45
46  // Calls with relocations. These currently emit a reference to their own
47  // location, because we don't take relocations into account when printing
48  // branch targets.
49  .arm
50  bl baz
51  blx baz
52  bleq baz
53@ CHECK:      34:   bl      {{.+}}                  @ imm = #-8
54@ CHECK:            00000034:  R_ARM_CALL   baz
55@ CHECK:      38:   blx     {{.+}}                  @ imm = #-8
56@ CHECK:            00000038:  R_ARM_CALL   baz
57@ CHECK:      3c:   bleq    {{.+}}                  @ imm = #-8
58@ CHECK:            0000003c:  R_ARM_JUMP24 baz
59
60  .thumb
61  bl baz
62  blx baz
63@ CHECK:      40:   bl      {{.+}}                  @ imm = #-4
64@ CHECK:            00000040:  R_ARM_THM_CALL baz
65@ CHECK:      44:   blx     {{.+}}                  @ imm = #-4
66@ CHECK:            00000044:  R_ARM_THM_CALL baz
67
68bar:
69