annotate lld/test/mach-o/arm-shims.yaml @ 192:d7606dcf6fce

Added tag llvm10 for changeset 0572611fdcc8
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 14 Dec 2020 18:01:34 +0900
parents 1d019706d866
children 2e18cbf3894f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 # RUN: ld64.lld -arch armv7 %s %p/Inputs/arm-shims.yaml \
anatofuz
parents:
diff changeset
2 # RUN: -dylib %p/Inputs/armv7/libSystem.yaml -o %t
anatofuz
parents:
diff changeset
3 # RUN: llvm-readobj -S --section-data %t | FileCheck %s
anatofuz
parents:
diff changeset
4 #
anatofuz
parents:
diff changeset
5 # Test b from arm to thumb or vice versa has shims added.s
anatofuz
parents:
diff changeset
6 #
anatofuz
parents:
diff changeset
7 #
anatofuz
parents:
diff changeset
8
anatofuz
parents:
diff changeset
9 --- !mach-o
anatofuz
parents:
diff changeset
10 arch: armv7
anatofuz
parents:
diff changeset
11 file-type: MH_OBJECT
anatofuz
parents:
diff changeset
12 flags: [ MH_SUBSECTIONS_VIA_SYMBOLS ]
anatofuz
parents:
diff changeset
13 sections:
anatofuz
parents:
diff changeset
14 - segment: __TEXT
anatofuz
parents:
diff changeset
15 section: __text
anatofuz
parents:
diff changeset
16 type: S_REGULAR
anatofuz
parents:
diff changeset
17 attributes: [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ]
anatofuz
parents:
diff changeset
18 alignment: 2
anatofuz
parents:
diff changeset
19 address: 0x0000000000000000
anatofuz
parents:
diff changeset
20 content: [ 0x00, 0xBF, 0xFF, 0xF7, 0xFE, 0xEF, 0xFF, 0xF7,
anatofuz
parents:
diff changeset
21 0xFB, 0xBF, 0x00, 0x00, 0x00, 0xF0, 0x20, 0xE3,
anatofuz
parents:
diff changeset
22 0xFA, 0xFF, 0xFF, 0xFA, 0xF9, 0xFF, 0xFF, 0xEA ]
anatofuz
parents:
diff changeset
23 relocations:
anatofuz
parents:
diff changeset
24 - offset: 0x00000014
anatofuz
parents:
diff changeset
25 type: ARM_RELOC_BR24
anatofuz
parents:
diff changeset
26 length: 2
anatofuz
parents:
diff changeset
27 pc-rel: true
anatofuz
parents:
diff changeset
28 extern: true
anatofuz
parents:
diff changeset
29 symbol: 3
anatofuz
parents:
diff changeset
30 - offset: 0x00000010
anatofuz
parents:
diff changeset
31 type: ARM_RELOC_BR24
anatofuz
parents:
diff changeset
32 length: 2
anatofuz
parents:
diff changeset
33 pc-rel: true
anatofuz
parents:
diff changeset
34 extern: true
anatofuz
parents:
diff changeset
35 symbol: 3
anatofuz
parents:
diff changeset
36 - offset: 0x00000006
anatofuz
parents:
diff changeset
37 type: ARM_THUMB_RELOC_BR22
anatofuz
parents:
diff changeset
38 length: 2
anatofuz
parents:
diff changeset
39 pc-rel: true
anatofuz
parents:
diff changeset
40 extern: true
anatofuz
parents:
diff changeset
41 symbol: 2
anatofuz
parents:
diff changeset
42 - offset: 0x00000002
anatofuz
parents:
diff changeset
43 type: ARM_THUMB_RELOC_BR22
anatofuz
parents:
diff changeset
44 length: 2
anatofuz
parents:
diff changeset
45 pc-rel: true
anatofuz
parents:
diff changeset
46 extern: true
anatofuz
parents:
diff changeset
47 symbol: 2
anatofuz
parents:
diff changeset
48 global-symbols:
anatofuz
parents:
diff changeset
49 - name: _a1
anatofuz
parents:
diff changeset
50 type: N_SECT
anatofuz
parents:
diff changeset
51 scope: [ N_EXT ]
anatofuz
parents:
diff changeset
52 sect: 1
anatofuz
parents:
diff changeset
53 value: 0x000000000000000C
anatofuz
parents:
diff changeset
54 - name: _t1
anatofuz
parents:
diff changeset
55 type: N_SECT
anatofuz
parents:
diff changeset
56 scope: [ N_EXT ]
anatofuz
parents:
diff changeset
57 sect: 1
anatofuz
parents:
diff changeset
58 desc: [ N_ARM_THUMB_DEF ]
anatofuz
parents:
diff changeset
59 value: 0x0000000000000000
anatofuz
parents:
diff changeset
60 undefined-symbols:
anatofuz
parents:
diff changeset
61 - name: _a2
anatofuz
parents:
diff changeset
62 type: N_UNDF
anatofuz
parents:
diff changeset
63 scope: [ N_EXT ]
anatofuz
parents:
diff changeset
64 value: 0x0000000000000000
anatofuz
parents:
diff changeset
65 - name: _t2
anatofuz
parents:
diff changeset
66 type: N_UNDF
anatofuz
parents:
diff changeset
67 scope: [ N_EXT ]
anatofuz
parents:
diff changeset
68 value: 0x0000000000000000
anatofuz
parents:
diff changeset
69
anatofuz
parents:
diff changeset
70 ...
anatofuz
parents:
diff changeset
71
anatofuz
parents:
diff changeset
72 # CHECK: Section {
anatofuz
parents:
diff changeset
73 # CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
anatofuz
parents:
diff changeset
74 # CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
anatofuz
parents:
diff changeset
75 # CHECK: SectionData (
anatofuz
parents:
diff changeset
76 # CHECK: 0000: 00BF00F0 10E800F0 19B80000 00F020E3
anatofuz
parents:
diff changeset
77 # CHECK: 0010: 000000FA 0F0000EA 00BFFFF7 F8EF00F0
anatofuz
parents:
diff changeset
78 # CHECK: 0020: 07B80000 00F020E3 F4FFFFFA 050000EA
anatofuz
parents:
diff changeset
79 # CHECK: 0030: DFF804C0 FF446047 D4FFFFFF DFF804C0
anatofuz
parents:
diff changeset
80 # CHECK: 0040: FF446047 E0FFFFFF 04C09FE5 0CC08FE0
anatofuz
parents:
diff changeset
81 # CHECK: 0050: 1CFF2FE1 ADFFFFFF 04C09FE5 0CC08FE0
anatofuz
parents:
diff changeset
82 # CHECK: 0060: 1CFF2FE1 B5FFFFFF
anatofuz
parents:
diff changeset
83 # CHECK: )
anatofuz
parents:
diff changeset
84
anatofuz
parents:
diff changeset
85 # When we get a good mach-o disassembler the above __text section content check can be change to be symbolic.
anatofuz
parents:
diff changeset
86
anatofuz
parents:
diff changeset
87
anatofuz
parents:
diff changeset
88 # Input file one:
anatofuz
parents:
diff changeset
89 #
anatofuz
parents:
diff changeset
90 # .align 2
anatofuz
parents:
diff changeset
91 # .code 16
anatofuz
parents:
diff changeset
92 # .globl _t1
anatofuz
parents:
diff changeset
93 # .thumb_func _t1
anatofuz
parents:
diff changeset
94 #_t1:
anatofuz
parents:
diff changeset
95 # nop
anatofuz
parents:
diff changeset
96 # blx _a2
anatofuz
parents:
diff changeset
97 # b _a2
anatofuz
parents:
diff changeset
98 #
anatofuz
parents:
diff changeset
99 # .code 32
anatofuz
parents:
diff changeset
100 # .align 2
anatofuz
parents:
diff changeset
101 # .globl _a1
anatofuz
parents:
diff changeset
102 #_a1:
anatofuz
parents:
diff changeset
103 # nop
anatofuz
parents:
diff changeset
104 # blx _t2
anatofuz
parents:
diff changeset
105 # b _t2
anatofuz
parents:
diff changeset
106
anatofuz
parents:
diff changeset
107
anatofuz
parents:
diff changeset
108
anatofuz
parents:
diff changeset
109 # Input file two:
anatofuz
parents:
diff changeset
110 #
anatofuz
parents:
diff changeset
111 # .align 2
anatofuz
parents:
diff changeset
112 # .code 16
anatofuz
parents:
diff changeset
113 # .globl _t2
anatofuz
parents:
diff changeset
114 # .thumb_func _t2
anatofuz
parents:
diff changeset
115 #_t2:
anatofuz
parents:
diff changeset
116 # nop
anatofuz
parents:
diff changeset
117 # blx _a1
anatofuz
parents:
diff changeset
118 # b _a1
anatofuz
parents:
diff changeset
119 #
anatofuz
parents:
diff changeset
120 # .code 32
anatofuz
parents:
diff changeset
121 # .align 2
anatofuz
parents:
diff changeset
122 # .globl _a2
anatofuz
parents:
diff changeset
123 #_a2:
anatofuz
parents:
diff changeset
124 # nop
anatofuz
parents:
diff changeset
125 # blx _t1
anatofuz
parents:
diff changeset
126 # b _t1