aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/tools/llvm-objdump/ELF/SystemZ/adjust-vma.test
blob: 4f6eb8fa0f76d9f1025846412621153f6db6639f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
## SystemZDisassembler sets the branch target information during getInstruction instead of printInst.
## Test we display the branch targets correctly in the presence of --adjust-vma.
# RUN: rm -rf %t && split-file %s %t && cd %t
# RUN: yaml2obj a.yaml -o out
# RUN: llvm-objdump -td --adjust-vma=0x200000 --no-show-raw-insn out | FileCheck %s --match-full-lines

# CHECK:      SYMBOL TABLE:
# CHECK-NEXT: 0000000001200104 l       .text  0000000000000000 f1
# CHECK-NEXT: 0000000001200106 l       .text  0000000000000000 f2
# CHECK-NEXT: 0000000000000800 l       *ABS*  0000000000000000 abs

# CHECK:      00000000012000f8 <_start>:
# CHECK-NEXT:  12000f8: brasl   %r14, 0x1200104
# CHECK-NEXT:  12000fe: brasl   %r14, 0x1200106
# CHECK-EMPTY:
# CHECK-NEXT: 0000000001200104 <f1>:
# CHECK-NEXT:  1200104: br      %r14
# CHECK-EMPTY:
# CHECK-NEXT: 0000000001200106 <f2>:
# CHECK-NEXT:  1200106: br      %r14

#--- a.s
.globl _start
_start:
  brasl %r14, f1
  brasl %r14, f2

f1:
  br %r14
f2:
  br %r14

abs = 0x800
#--- gen
LLD_IN_TEST=1 clang --target=s390x-linux -no-pie -nostdlib -Wl,--no-rosegment,-zseparate-code,-znorelro,-znognustack -fuse-ld=lld a.s -o a
obj2yaml a
#--- a.yaml
--- !ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2MSB
  Type:            ET_EXEC
  Machine:         EM_S390
  Entry:           0x10000F8
ProgramHeaders:
  - Type:            PT_PHDR
    Flags:           [ PF_R ]
    VAddr:           0x1000040
    Align:           0x8
    Offset:          0x40
  - Type:            PT_INTERP
    Flags:           [ PF_R ]
    FirstSec:        .interp
    LastSec:         .interp
    VAddr:           0x10000E8
    Offset:          0xE8
  - Type:            PT_LOAD
    Flags:           [ PF_X, PF_R ]
    FirstSec:        .interp
    LastSec:         .text
    VAddr:           0x1000000
    Align:           0x1000
    Offset:          0x0
Sections:
  - Name:            .interp
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC ]
    Address:         0x10000E8
    AddressAlign:    0x1
    Content:         2F6C69622F6C6436342E736F2E3100
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    Address:         0x10000F8
    AddressAlign:    0x4
    Content:         C0E500000006C0E50000000407FE07FE
  - Name:            .comment
    Type:            SHT_PROGBITS
    Flags:           [ SHF_MERGE, SHF_STRINGS ]
    AddressAlign:    0x1
    EntSize:         0x1
    Offset:          0x1000
    Content:         4C696E6B65723A204C4C442032312E302E3000
Symbols:
  - Name:            f1
    Section:         .text
    Value:           0x1000104
  - Name:            f2
    Section:         .text
    Value:           0x1000106
  - Name:            abs
    Index:           SHN_ABS
    Value:           0x800
  - Name:            _start
    Section:         .text
    Binding:         STB_GLOBAL
    Value:           0x10000F8
...