rev |
line source |
shann@25634
|
1 --- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp 2015-05-07 17:14:48.000000000 +0300
|
shann@25634
|
2 +++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp 2019-05-04 13:10:49.491856288 +0300
|
shann@25634
|
3 @@ -114,11 +114,11 @@
|
shann@25634
|
4 COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 16 == 0x0, JITStackFrame_maintains_16byte_stack_alignment);
|
shann@25634
|
5 COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x3c, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
|
shann@25634
|
6 COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
|
shann@25634
|
7 COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x50, JITStackFrame_code_offset_matches_ctiTrampoline);
|
shann@25634
|
8
|
shann@25634
|
9 -asm volatile (
|
shann@25634
|
10 +asm (
|
shann@25634
|
11 ".text\n"
|
shann@25634
|
12 ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
|
shann@25634
|
13 HIDE_SYMBOL(ctiTrampoline) "\n"
|
shann@25634
|
14 SYMBOL_STRING(ctiTrampoline) ":" "\n"
|
shann@25634
|
15 "pushl %ebp" "\n"
|
shann@25634
|
16 @@ -136,11 +136,11 @@
|
shann@25634
|
17 "popl %esi" "\n"
|
shann@25634
|
18 "popl %ebp" "\n"
|
shann@25634
|
19 "ret" "\n"
|
shann@25634
|
20 );
|
shann@25634
|
21
|
shann@25634
|
22 -asm volatile (
|
shann@25634
|
23 +asm (
|
shann@25634
|
24 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
25 HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
26 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
|
shann@25634
|
27 #if !USE(JIT_STUB_ARGUMENT_VA_LIST)
|
shann@25634
|
28 "movl %esp, %ecx" "\n"
|
shann@25634
|
29 @@ -152,11 +152,11 @@
|
shann@25634
|
30 "popl %esi" "\n"
|
shann@25634
|
31 "popl %ebp" "\n"
|
shann@25634
|
32 "ret" "\n"
|
shann@25634
|
33 );
|
shann@25634
|
34
|
shann@25634
|
35 -asm volatile (
|
shann@25634
|
36 +asm (
|
shann@25634
|
37 ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
|
shann@25634
|
38 HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
|
shann@25634
|
39 SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
|
shann@25634
|
40 "addl $0x3c, %esp" "\n"
|
shann@25634
|
41 "popl %ebx" "\n"
|
shann@25634
|
42 @@ -177,11 +177,11 @@
|
shann@25634
|
43 COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 32 == 0x0, JITStackFrame_maintains_32byte_stack_alignment);
|
shann@25634
|
44 COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x48, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
|
shann@25634
|
45 COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x90, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
|
shann@25634
|
46 COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x80, JITStackFrame_code_offset_matches_ctiTrampoline);
|
shann@25634
|
47
|
shann@25634
|
48 -asm volatile (
|
shann@25634
|
49 +asm (
|
shann@25634
|
50 ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
|
shann@25634
|
51 HIDE_SYMBOL(ctiTrampoline) "\n"
|
shann@25634
|
52 SYMBOL_STRING(ctiTrampoline) ":" "\n"
|
shann@25634
|
53 "pushq %rbp" "\n"
|
shann@25634
|
54 "movq %rsp, %rbp" "\n"
|
shann@25634
|
55 @@ -204,11 +204,11 @@
|
shann@25634
|
56 "popq %r12" "\n"
|
shann@25634
|
57 "popq %rbp" "\n"
|
shann@25634
|
58 "ret" "\n"
|
shann@25634
|
59 );
|
shann@25634
|
60
|
shann@25634
|
61 -asm volatile (
|
shann@25634
|
62 +asm (
|
shann@25634
|
63 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
64 HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
65 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
|
shann@25634
|
66 "movq %rsp, %rdi" "\n"
|
shann@25634
|
67 "call " SYMBOL_STRING_RELOCATION(cti_vm_throw) "\n"
|
shann@25634
|
68 @@ -220,11 +220,11 @@
|
shann@25634
|
69 "popq %r12" "\n"
|
shann@25634
|
70 "popq %rbp" "\n"
|
shann@25634
|
71 "ret" "\n"
|
shann@25634
|
72 );
|
shann@25634
|
73
|
shann@25634
|
74 -asm volatile (
|
shann@25634
|
75 +asm (
|
shann@25634
|
76 ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
|
shann@25634
|
77 HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
|
shann@25634
|
78 SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
|
shann@25634
|
79 "addq $0x48, %rsp" "\n"
|
shann@25634
|
80 "popq %rbx" "\n"
|
shann@25634
|
81 @@ -240,11 +240,11 @@
|
shann@25634
|
82
|
shann@25634
|
83 #if USE(JIT_STUB_ARGUMENT_VA_LIST)
|
shann@25634
|
84 #error "JIT_STUB_ARGUMENT_VA_LIST not supported on ARMv7."
|
shann@25634
|
85 #endif
|
shann@25634
|
86
|
shann@25634
|
87 -asm volatile (
|
shann@25634
|
88 +asm (
|
shann@25634
|
89 ".text" "\n"
|
shann@25634
|
90 ".align 2" "\n"
|
shann@25634
|
91 ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
|
shann@25634
|
92 HIDE_SYMBOL(ctiTrampoline) "\n"
|
shann@25634
|
93 ".thumb" "\n"
|
shann@25634
|
94 @@ -267,11 +267,11 @@
|
shann@25634
|
95 "ldr lr, [sp, #0x20]" "\n"
|
shann@25634
|
96 "add sp, sp, #0x3c" "\n"
|
shann@25634
|
97 "bx lr" "\n"
|
shann@25634
|
98 );
|
shann@25634
|
99
|
shann@25634
|
100 -asm volatile (
|
shann@25634
|
101 +asm (
|
shann@25634
|
102 ".text" "\n"
|
shann@25634
|
103 ".align 2" "\n"
|
shann@25634
|
104 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
105 HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
106 ".thumb" "\n"
|
shann@25634
|
107 @@ -285,11 +285,11 @@
|
shann@25634
|
108 "ldr lr, [sp, #0x20]" "\n"
|
shann@25634
|
109 "add sp, sp, #0x3c" "\n"
|
shann@25634
|
110 "bx lr" "\n"
|
shann@25634
|
111 );
|
shann@25634
|
112
|
shann@25634
|
113 -asm volatile (
|
shann@25634
|
114 +asm (
|
shann@25634
|
115 ".text" "\n"
|
shann@25634
|
116 ".align 2" "\n"
|
shann@25634
|
117 ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
|
shann@25634
|
118 HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
|
shann@25634
|
119 ".thumb" "\n"
|
shann@25634
|
120 @@ -303,11 +303,11 @@
|
shann@25634
|
121 "bx lr" "\n"
|
shann@25634
|
122 );
|
shann@25634
|
123
|
shann@25634
|
124 #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
|
shann@25634
|
125
|
shann@25634
|
126 -asm volatile (
|
shann@25634
|
127 +asm (
|
shann@25634
|
128 ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
|
shann@25634
|
129 HIDE_SYMBOL(ctiTrampoline) "\n"
|
shann@25634
|
130 SYMBOL_STRING(ctiTrampoline) ":" "\n"
|
shann@25634
|
131 "stmdb sp!, {r1-r3}" "\n"
|
shann@25634
|
132 "stmdb sp!, {r4-r8, lr}" "\n"
|
shann@25634
|
133 @@ -321,11 +321,11 @@
|
shann@25634
|
134 "ldmia sp!, {r4-r8, lr}" "\n"
|
shann@25634
|
135 "add sp, sp, #12" "\n"
|
shann@25634
|
136 "mov pc, lr" "\n"
|
shann@25634
|
137 );
|
shann@25634
|
138
|
shann@25634
|
139 -asm volatile (
|
shann@25634
|
140 +asm (
|
shann@25634
|
141 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
142 HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
143 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
|
shann@25634
|
144 "mov r0, sp" "\n"
|
shann@25634
|
145 "bl " SYMBOL_STRING(cti_vm_throw) "\n"
|
shann@25634
|
146 @@ -416,11 +416,11 @@
|
shann@25634
|
147 // need to change the assembly trampolines below to match.
|
shann@25634
|
148 COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x38, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
|
shann@25634
|
149 COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x30, JITStackFrame_code_offset_matches_ctiTrampoline);
|
shann@25634
|
150 COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x1c, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
|
shann@25634
|
151
|
shann@25634
|
152 -asm volatile (
|
shann@25634
|
153 +asm (
|
shann@25634
|
154 ".text\n"
|
shann@25634
|
155 ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
|
shann@25634
|
156 HIDE_SYMBOL(ctiTrampoline) "\n"
|
shann@25634
|
157 SYMBOL_STRING(ctiTrampoline) ":" "\n"
|
shann@25634
|
158 "pushl %ebp" "\n"
|
shann@25634
|
159 @@ -438,11 +438,11 @@
|
shann@25634
|
160 "popl %esi" "\n"
|
shann@25634
|
161 "popl %ebp" "\n"
|
shann@25634
|
162 "ret" "\n"
|
shann@25634
|
163 );
|
shann@25634
|
164
|
shann@25634
|
165 -asm volatile (
|
shann@25634
|
166 +asm (
|
shann@25634
|
167 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
168 HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
169 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
|
shann@25634
|
170 #if !USE(JIT_STUB_ARGUMENT_VA_LIST)
|
shann@25634
|
171 "movl %esp, %ecx" "\n"
|
shann@25634
|
172 @@ -454,11 +454,11 @@
|
shann@25634
|
173 "popl %esi" "\n"
|
shann@25634
|
174 "popl %ebp" "\n"
|
shann@25634
|
175 "ret" "\n"
|
shann@25634
|
176 );
|
shann@25634
|
177
|
shann@25634
|
178 -asm volatile (
|
shann@25634
|
179 +asm (
|
shann@25634
|
180 ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
|
shann@25634
|
181 HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
|
shann@25634
|
182 SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
|
shann@25634
|
183 "addl $0x1c, %esp" "\n"
|
shann@25634
|
184 "popl %ebx" "\n"
|
shann@25634
|
185 @@ -478,11 +478,11 @@
|
shann@25634
|
186 // need to change the assembly trampolines below to match.
|
shann@25634
|
187 COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
|
shann@25634
|
188 COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x48, JITStackFrame_code_offset_matches_ctiTrampoline);
|
shann@25634
|
189 COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x78, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
|
shann@25634
|
190
|
shann@25634
|
191 -asm volatile (
|
shann@25634
|
192 +asm (
|
shann@25634
|
193 ".text\n"
|
shann@25634
|
194 ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
|
shann@25634
|
195 HIDE_SYMBOL(ctiTrampoline) "\n"
|
shann@25634
|
196 SYMBOL_STRING(ctiTrampoline) ":" "\n"
|
shann@25634
|
197 "pushq %rbp" "\n"
|
shann@25634
|
198 @@ -513,11 +513,11 @@
|
shann@25634
|
199 "popq %r12" "\n"
|
shann@25634
|
200 "popq %rbp" "\n"
|
shann@25634
|
201 "ret" "\n"
|
shann@25634
|
202 );
|
shann@25634
|
203
|
shann@25634
|
204 -asm volatile (
|
shann@25634
|
205 +asm (
|
shann@25634
|
206 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
207 HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
208 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
|
shann@25634
|
209 "movq %rsp, %rdi" "\n"
|
shann@25634
|
210 "call " SYMBOL_STRING_RELOCATION(cti_vm_throw) "\n"
|
shann@25634
|
211 @@ -529,11 +529,11 @@
|
shann@25634
|
212 "popq %r12" "\n"
|
shann@25634
|
213 "popq %rbp" "\n"
|
shann@25634
|
214 "ret" "\n"
|
shann@25634
|
215 );
|
shann@25634
|
216
|
shann@25634
|
217 -asm volatile (
|
shann@25634
|
218 +asm (
|
shann@25634
|
219 ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
|
shann@25634
|
220 HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
|
shann@25634
|
221 SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
|
shann@25634
|
222 "addq $0x78, %rsp" "\n"
|
shann@25634
|
223 "popq %rbx" "\n"
|
shann@25634
|
224 @@ -549,11 +549,11 @@
|
shann@25634
|
225
|
shann@25634
|
226 #if USE(JIT_STUB_ARGUMENT_VA_LIST)
|
shann@25634
|
227 #error "JIT_STUB_ARGUMENT_VA_LIST not supported on ARMv7."
|
shann@25634
|
228 #endif
|
shann@25634
|
229
|
shann@25634
|
230 -asm volatile (
|
shann@25634
|
231 +asm (
|
shann@25634
|
232 ".text" "\n"
|
shann@25634
|
233 ".align 2" "\n"
|
shann@25634
|
234 ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
|
shann@25634
|
235 HIDE_SYMBOL(ctiTrampoline) "\n"
|
shann@25634
|
236 ".thumb" "\n"
|
shann@25634
|
237 @@ -576,11 +576,11 @@
|
shann@25634
|
238 "ldr lr, [sp, #0x20]" "\n"
|
shann@25634
|
239 "add sp, sp, #0x40" "\n"
|
shann@25634
|
240 "bx lr" "\n"
|
shann@25634
|
241 );
|
shann@25634
|
242
|
shann@25634
|
243 -asm volatile (
|
shann@25634
|
244 +asm (
|
shann@25634
|
245 ".text" "\n"
|
shann@25634
|
246 ".align 2" "\n"
|
shann@25634
|
247 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
248 HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
249 ".thumb" "\n"
|
shann@25634
|
250 @@ -594,11 +594,11 @@
|
shann@25634
|
251 "ldr lr, [sp, #0x20]" "\n"
|
shann@25634
|
252 "add sp, sp, #0x40" "\n"
|
shann@25634
|
253 "bx lr" "\n"
|
shann@25634
|
254 );
|
shann@25634
|
255
|
shann@25634
|
256 -asm volatile (
|
shann@25634
|
257 +asm (
|
shann@25634
|
258 ".text" "\n"
|
shann@25634
|
259 ".align 2" "\n"
|
shann@25634
|
260 ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
|
shann@25634
|
261 HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
|
shann@25634
|
262 ".thumb" "\n"
|
shann@25634
|
263 @@ -612,11 +612,11 @@
|
shann@25634
|
264 "bx lr" "\n"
|
shann@25634
|
265 );
|
shann@25634
|
266
|
shann@25634
|
267 #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
|
shann@25634
|
268
|
shann@25634
|
269 -asm volatile (
|
shann@25634
|
270 +asm (
|
shann@25634
|
271 ".text\n"
|
shann@25634
|
272 ".globl " SYMBOL_STRING(ctiTrampoline) "\n"
|
shann@25634
|
273 HIDE_SYMBOL(ctiTrampoline) "\n"
|
shann@25634
|
274 SYMBOL_STRING(ctiTrampoline) ":" "\n"
|
shann@25634
|
275 "stmdb sp!, {r1-r3}" "\n"
|
shann@25634
|
276 @@ -630,11 +630,11 @@
|
shann@25634
|
277 "ldmia sp!, {r4-r8, lr}" "\n"
|
shann@25634
|
278 "add sp, sp, #12" "\n"
|
shann@25634
|
279 "mov pc, lr" "\n"
|
shann@25634
|
280 );
|
shann@25634
|
281
|
shann@25634
|
282 -asm volatile (
|
shann@25634
|
283 +asm (
|
shann@25634
|
284 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
285 HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
|
shann@25634
|
286 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
|
shann@25634
|
287 "mov r0, sp" "\n"
|
shann@25634
|
288 "bl " SYMBOL_STRING_RELOCATION(cti_vm_throw) "\n"
|
shann@25634
|
289 @@ -1022,11 +1022,11 @@
|
shann@25634
|
290
|
shann@25634
|
291 #define DEFINE_STUB_FUNCTION(rtype, op) \
|
shann@25634
|
292 extern "C" { \
|
shann@25634
|
293 rtype JITStubThunked_##op(STUB_ARGS_DECLARATION); \
|
shann@25634
|
294 }; \
|
shann@25634
|
295 - asm volatile ( \
|
shann@25634
|
296 + asm ( \
|
shann@25634
|
297 ".text" "\n" \
|
shann@25634
|
298 ".align 2" "\n" \
|
shann@25634
|
299 ".globl " SYMBOL_STRING(cti_##op) "\n" \
|
shann@25634
|
300 HIDE_SYMBOL(cti_##op) "\n" \
|
shann@25634
|
301 ".thumb" "\n" \
|
shann@25634
|
302 @@ -1051,11 +1051,11 @@
|
shann@25634
|
303
|
shann@25634
|
304 #define DEFINE_STUB_FUNCTION(rtype, op) \
|
shann@25634
|
305 extern "C" { \
|
shann@25634
|
306 rtype JITStubThunked_##op(STUB_ARGS_DECLARATION); \
|
shann@25634
|
307 }; \
|
shann@25634
|
308 - asm volatile ( \
|
shann@25634
|
309 + asm ( \
|
shann@25634
|
310 ".globl " SYMBOL_STRING(cti_##op) "\n" \
|
shann@25634
|
311 HIDE_SYMBOL(cti_##op) "\n" \
|
shann@25634
|
312 SYMBOL_STRING(cti_##op) ":" "\n" \
|
shann@25634
|
313 "str lr, [sp, #" STRINGIZE_VALUE_OF(THUNK_RETURN_ADDRESS_OFFSET) "]" "\n" \
|
shann@25634
|
314 "bl " SYMBOL_STRING(JITStubThunked_##op) "\n" \
|
shann@25634
|
315
|