blob: 252f69c1875f3ac830ce12b7bd9301bd94e997b8 [file] [log] [blame]
Robert Sloan8ff03552017-06-14 12:40:58 -07001.text
Robert Sloan5cbb5c82018-04-24 11:35:46 -07002.file 1 "inserted_by_delocate.c"
3.loc 1 1 0
Robert Sloan8ff03552017-06-14 12:40:58 -07004BORINGSSL_bcm_text_start:
5 .type foo, @function
6 .globl foo
7.Lfoo_local_target:
8foo:
9 movq $0, %rax
10 ret
11
12.Lbar_local_target:
13bar:
14 # References to globals must be rewritten to their local targets.
15# WAS call foo
16 call .Lfoo_local_target
17# WAS jmp foo
18 jmp .Lfoo_local_target
19# WAS jbe foo
20 jbe .Lfoo_local_target
21# WAS jne foo
22 jne .Lfoo_local_target
23
24 # Jumps to PLT symbols are rewritten through redirectors.
25# WAS call memcpy@PLT
26 call bcm_redirector_memcpy
27# WAS jmp memcpy@PLT
28 jmp bcm_redirector_memcpy
29# WAS jbe memcpy@PLT
30 jbe bcm_redirector_memcpy
31
32 # Jumps to local PLT symbols use their local targets.
33# WAS call foo@PLT
34 call .Lfoo_local_target
35# WAS jmp foo@PLT
36 jmp .Lfoo_local_target
37# WAS jbe foo@PLT
38 jbe .Lfoo_local_target
39
40 # Synthesized symbols are treated as local ones.
41# WAS call OPENSSL_ia32cap_get@PLT
Robert Sloan4c22c5f2019-03-01 15:53:37 -080042 call .LOPENSSL_ia32cap_get_local_target
Robert Sloan8ff03552017-06-14 12:40:58 -070043
44 # References to local labels are left as-is in the first file.
45.Llocal_label:
46
47 jbe .Llocal_label
48 leaq .Llocal_label+2048(%rip), %r14
49 leaq .Llocal_label+2048+1024(%rip), %r14
50
51# WAS .section .rodata
52.text
53.L1:
54
55 .quad 42
56.L2:
57
58 .quad .L2-.L1
Pete Bentley0c61efe2019-08-13 09:32:23 +010059 .uleb128 .L2-.L1
60 .sleb128 .L2-.L1
Robert Sloan8ff03552017-06-14 12:40:58 -070061
62 # Local labels and their jumps are left alone.
63 .text
64 jmp 1f
651:
66
67 jmp 1b
68 # References to local labels are rewrittenn in subsequent files.
69.Llocal_label_BCM_1:
70
71# WAS jbe .Llocal_label
72 jbe .Llocal_label_BCM_1
73# WAS leaq .Llocal_label+2048(%rip), %r14
74 leaq .Llocal_label_BCM_1+2048(%rip), %r14
75# WAS leaq .Llocal_label+2048+1024(%rip), %r14
76 leaq .Llocal_label_BCM_1+2048+1024(%rip), %r14
77
78# WAS .section .rodata
79.text
80.L1_BCM_1:
81
82 .quad 42
83.L2_BCM_1:
84
85# WAS .quad .L2-.L1
86 .quad .L2_BCM_1-.L1_BCM_1
Pete Bentley0c61efe2019-08-13 09:32:23 +010087# WAS .uleb128 .L2-.L1
88 .uleb128 .L2_BCM_1-.L1_BCM_1
89# WAS .sleb128 .L2-.L1
90 .sleb128 .L2_BCM_1-.L1_BCM_1
Robert Sloan8ff03552017-06-14 12:40:58 -070091
92.text
Robert Sloan5cbb5c82018-04-24 11:35:46 -070093.loc 1 2 0
Robert Sloan8ff03552017-06-14 12:40:58 -070094BORINGSSL_bcm_text_end:
95.type bcm_redirector_memcpy, @function
96bcm_redirector_memcpy:
97 jmp memcpy@PLT
98.type OPENSSL_ia32cap_get, @function
Robert Sloan4c22c5f2019-03-01 15:53:37 -080099.globl OPENSSL_ia32cap_get
100.LOPENSSL_ia32cap_get_local_target:
Robert Sloan8ff03552017-06-14 12:40:58 -0700101OPENSSL_ia32cap_get:
102 leaq OPENSSL_ia32cap_P(%rip), %rax
103 ret
104.extern OPENSSL_ia32cap_P
105.type OPENSSL_ia32cap_addr_delta, @object
106.size OPENSSL_ia32cap_addr_delta, 8
107OPENSSL_ia32cap_addr_delta:
108.quad OPENSSL_ia32cap_P-OPENSSL_ia32cap_addr_delta
109.type BORINGSSL_bcm_text_hash, @object
110.size BORINGSSL_bcm_text_hash, 64
111BORINGSSL_bcm_text_hash:
112.byte 0xae
113.byte 0x2c
114.byte 0xea
115.byte 0x2a
116.byte 0xbd
117.byte 0xa6
118.byte 0xf3
119.byte 0xec
120.byte 0x97
121.byte 0x7f
122.byte 0x9b
123.byte 0xf6
124.byte 0x94
125.byte 0x9a
126.byte 0xfc
127.byte 0x83
128.byte 0x68
129.byte 0x27
130.byte 0xcb
131.byte 0xa0
132.byte 0xa0
133.byte 0x9f
134.byte 0x6b
135.byte 0x6f
136.byte 0xde
137.byte 0x52
138.byte 0xcd
139.byte 0xe2
140.byte 0xcd
141.byte 0xff
142.byte 0x31
143.byte 0x80
144.byte 0xa2
145.byte 0xd4
146.byte 0xc3
147.byte 0x66
148.byte 0xf
149.byte 0xc2
150.byte 0x6a
151.byte 0x7b
152.byte 0xf4
153.byte 0xbe
154.byte 0x39
155.byte 0xa2
156.byte 0xd7
157.byte 0x25
158.byte 0xdb
159.byte 0x21
160.byte 0x98
161.byte 0xe9
162.byte 0xd5
163.byte 0x53
164.byte 0xbf
165.byte 0x5c
166.byte 0x32
167.byte 0x6
168.byte 0x83
169.byte 0x34
170.byte 0xc
171.byte 0x65
172.byte 0x89
173.byte 0x52
174.byte 0xbd
175.byte 0x1f