xref: /trunk/main/bridges/source/cpp_uno/gcc3_freebsd_powerpc64/call.s (revision bb20beb59555a33c22b0d02625b5bcb621f690f0)
1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23    .file   "uno_ppc64_asm.cc"
24    .machine power4
25    .abiversion 2
26    .section    ".text"
27    .align 2
28    .globl callVirtualMethod
29    .type   callVirtualMethod, @function
30callVirtualMethod:
31.LFB0:
32    .cfi_startproc
33.LCF0:
340:  addis 2,12,.TOC.-.LCF0@ha
35    addi 2,2,.TOC.-.LCF0@l
36    .localentry callVirtualMethod,.-callVirtualMethod
37    mflr 0
38    std 0,16(1)
39    std 31,-8(1)
40    stdu 1,-208(1)
41    .cfi_def_cfa_offset 208
42    .cfi_offset 65, 16
43    .cfi_offset 31, -8
44    mr 31,1
45    .cfi_def_cfa_register 31
46    std 3,136(31)
47    std 5,128(31)
48    std 6,120(31)
49    std 7,112(31)
50    std 9,104(31)
51    mr 9,4
52    stw 9,248(31)
53    mr 9,8
54    stw 9,280(31)
55    mr 9,10
56    stw 9,296(31)
57    ld 9,304(31)
58    std 9,96(31)
59    ld 9,-28688(13)
60    std 9,184(31)
61    li 9,0
62    lwz 9,280(31)
63    cmpwi 0,9,0
64    beq 0,.L2
65    lwz 9,280(31)
66    addi 9,9,1
67    rldicl 9,9,0,32
68    rlwinm 9,9,0,0,30
69    stw 9,280(31)
70.L2:
71#ifdef __LITTLE_ENDIAN__
72    lwz 9,312(31)
73#else
74    lwz 9,316(31)
75#endif
76    cmplwi 0,9,13
77    ble 0,.L3
78    li 9,13
79#ifdef __LITTLE_ENDIAN__
80    stw 9,312(31)
81#else
82    stw 9,316(31)
83#endif
84.L3:
85    lwz 9,296(31)
86    cmplwi 0,9,8
87    ble 0,.L4
88    li 9,8
89    stw 9,296(31)
90.L4:
91    lwz 9,280(31)
92    slwi 9,9,3
93    rldicl 9,9,0,32
94    addi 9,9,15
95    srdi 9,9,4
96    sldi 9,9,4
97    ld 10,0(1)
98    neg 9,9
99    stdux 10,1,9
100    addi 9,1,96
101    addi 9,9,15
102    srdi 9,9,4
103    sldi 9,9,4
104    std 9,160(31)
105    lwz 9,280(31)
106    slwi 9,9,3
107    rldicl 9,9,0,32
108    mr 8,9
109    ld 10,160(31)
110    ld 9,112(31)
111    mr 5,8
112    mr 4,9
113    mr 3,10
114    bl memcpy
115    nop
116    ld 9,136(31)
117    ld 9,0(9)
118    std 9,168(31)
119    lwz 9,248(31)
120    slwi 9,9,3
121    rldicl 9,9,0,32
122    mr 10,9
123    ld 9,168(31)
124    add 9,9,10
125    std 9,168(31)
126    ld 9,168(31)
127    ld 9,0(9)
128    std 9,168(31)
129    ld 9,168(31)
130    std 9,176(31)
131    ld 9,96(31)
132#APP
133 # 123 "uno_ppc64_asm.cc" 1
134    lfd  1,  0(9)
135    lfd  2,  8(9)
136    lfd  3, 16(9)
137    lfd  4, 24(9)
138    lfd  5, 32(9)
139    lfd  6, 40(9)
140    lfd  7, 48(9)
141    lfd  8, 56(9)
142    lfd  9, 64(9)
143    lfd 10, 72(9)
144    lfd 11, 80(9)
145    lfd 12, 88(9)
146    lfd 13, 96(9)
147
148 # 0 "" 2
149#NO_APP
150    ld 9,104(31)
151    ld 3,0(9)
152    ld 9,104(31)
153    addi 9,9,8
154    ld 4,0(9)
155    ld 9,104(31)
156    addi 9,9,16
157    ld 5,0(9)
158    ld 9,104(31)
159    addi 9,9,24
160    ld 6,0(9)
161    ld 9,104(31)
162    addi 9,9,32
163    ld 7,0(9)
164    ld 9,104(31)
165    addi 9,9,40
166    ld 8,0(9)
167    ld 9,104(31)
168    addi 9,9,48
169    ld 0,0(9)
170    ld 9,104(31)
171    addi 9,9,56
172    ld 9,0(9)
173    ld 11,176(31)
174    mr 10,9
175    mr 9,0
176    std 2,24(1)
177    mr 12,11
178    mtctr 12
179    bctrl
180    ld 2,24(1)
181#APP
182 # 149 "uno_ppc64_asm.cc" 1
183    mr     3,     3
184    mr     4,     4
185    fmr    0,     1
186
187 # 0 "" 2
188#NO_APP
189    stfd 0,152(31)
190    mr 9,3
191    mr 10,4
192    lfd 0,152(31)
193    ld 7,128(31)
194    ld 6,120(31)
195    fmr 1,0
196    mr 4,10
197    mr 3,9
198    bl MapReturn
199    nop
200    nop
201    ld 9,184(31)
202    ld 10,-28688(13)
203    xor. 9,9,10
204    li 10,0
205    beq 0,.L5
206    bl __stack_chk_fail
207    nop
208.L5:
209    addi 1,31,208
210    .cfi_def_cfa 1, 0
211    ld 0,16(1)
212    mtlr 0
213    ld 31,-8(1)
214    blr
215    .long 0
216    .byte 0,9,0,1,128,1,0,1
217    .cfi_endproc
218.LFE0:
219    .size   callVirtualMethod,.-callVirtualMethod
220    .section    ".toc","aw"
221    .align 3
222.LC0:
223    .quad   .L9
224    .section    ".text"
225    .align 2
226    .globl privateSnippetExecutor
227    .type   privateSnippetExecutor, @function
228privateSnippetExecutor:
229.LFB1:
230    .cfi_startproc
231.LCF1:
2320:  addis 2,12,.TOC.-.LCF1@ha
233    addi 2,2,.TOC.-.LCF1@l
234    .localentry privateSnippetExecutor,.-privateSnippetExecutor
235    mflr 0
236    std 0,16(1)
237    std 31,-8(1)
238    stdu 1,-272(1)
239    .cfi_def_cfa_offset 272
240    .cfi_offset 65, 16
241    .cfi_offset 31, -8
242    mr 31,1
243    .cfi_def_cfa_register 31
244    ld 0,-28688(13)
245    std 0,248(31)
246    li 0,0
247    std 3,80(31)
248    std 4,88(31)
249    std 5,96(31)
250    std 6,104(31)
251    std 7,112(31)
252    std 8,120(31)
253    std 9,128(31)
254    mr 9,10
255    std 9,136(31)
256    addi 9,31,144
257#APP
258 # 173 "uno_ppc64_asm.cc" 1
259    stfd 1,   0(9)
260stfd 2,   8(9)
261stfd 3,  16(9)
262stfd 4,  24(9)
263stfd 5,  32(9)
264stfd 6,  40(9)
265stfd 7,  48(9)
266stfd 8,  56(9)
267stfd 9,  64(9)
268stfd 10, 72(9)
269stfd 11, 80(9)
270stfd 12, 88(9)
271stfd 13, 96(9)
272
273 # 0 "" 2
274#NO_APP
275    std 11,48(31)
276    std 1,56(31)
277    ld 9,48(31)
278    addi 7,31,64
279    addi 8,31,144
280    addi 10,31,80
281    ld 6,56(31)
282    mr 5,8
283    mr 4,10
284    mr 3,9
285    bl cpp_mediate
286    nop
287    mr 9,3
288    stw 9,44(31)
289    lwa 9,44(31)
290    cmplwi 0,9,15
291    bgt 0,.L7
292    sldi 10,9,2
293    addis 8,2,.LC0@toc@ha
294    ld 9,.LC0@toc@l(8)
295    add 9,10,9
296    lwz 10,0(9)
297    ld 9,.LC0@toc@l(8)
298    extsw 10,10
299    add 9,10,9
300    mtctr 9
301    bctr
302    .p2align 2
303    .align 2
304.L9:
305    .long .L19-.L9
306    .long .L13-.L9
307    .long .L15-.L9
308    .long .L15-.L9
309    .long .L14-.L9
310    .long .L13-.L9
311    .long .L12-.L9
312    .long .L8-.L9
313    .long .L7-.L9
314    .long .L7-.L9
315    .long .L11-.L9
316    .long .L10-.L9
317    .long .L7-.L9
318    .long .L7-.L9
319    .long .L7-.L9
320    .long .L8-.L9
321.L15:
322#APP
323 # 209 "uno_ppc64_asm.cc" 1
324    lbz 3,64(31)
325
326 # 0 "" 2
327#NO_APP
328    b .L17
329.L13:
330#APP
331 # 214 "uno_ppc64_asm.cc" 1
332    lhz 3,64(31)
333
334 # 0 "" 2
335#NO_APP
336    b .L17
337.L14:
338#APP
339 # 218 "uno_ppc64_asm.cc" 1
340    lha 3,64(31)
341
342 # 0 "" 2
343#NO_APP
344    b .L17
345.L8:
346#APP
347 # 223 "uno_ppc64_asm.cc" 1
348    lwz 3,64(31)
349
350 # 0 "" 2
351#NO_APP
352    b .L17
353.L12:
354#APP
355 # 227 "uno_ppc64_asm.cc" 1
356    lwa 3,64(31)
357
358 # 0 "" 2
359#NO_APP
360    b .L17
361.L11:
362    addi 9,31,64
363#APP
364 # 231 "uno_ppc64_asm.cc" 1
365    lfs 1,0(9)
366
367 # 0 "" 2
368#NO_APP
369    b .L17
370.L10:
371    addi 9,31,64
372#APP
373 # 235 "uno_ppc64_asm.cc" 1
374    lfd 1,0(9)
375
376 # 0 "" 2
377#NO_APP
378    b .L17
379.L7:
380#APP
381 # 239 "uno_ppc64_asm.cc" 1
382    ld 3,64(31)
383
384 # 0 "" 2
385 # 241 "uno_ppc64_asm.cc" 1
386    ld 4,72(31)
387
388 # 0 "" 2
389#NO_APP
390    b .L17
391.L19:
392    nop
393.L17:
394    nop
395    ld 9,248(31)
396    ld 10,-28688(13)
397    xor. 9,9,10
398    li 10,0
399    beq 0,.L18
400    bl __stack_chk_fail
401    nop
402.L18:
403    addi 1,31,272
404    .cfi_def_cfa 1, 0
405    ld 0,16(1)
406    mtlr 0
407    ld 31,-8(1)
408    blr
409    .long 0
410    .byte 0,9,0,1,128,1,0,1
411    .cfi_endproc
412.LFE1:
413    .size   privateSnippetExecutor,.-privateSnippetExecutor
414    .section    .rodata
415    .align 2
416    .type   _ZL15codeSnippetSize, @object
417    .size   _ZL15codeSnippetSize, 4
418_ZL15codeSnippetSize:
419    .long   32
420    .section    ".text"
421    .align 2
422    .globl codeSnippet
423    .type   codeSnippet, @function
424codeSnippet:
425.LFB2:
426    .cfi_startproc
427.LCF2:
4280:  addis 2,12,.TOC.-.LCF2@ha
429    addi 2,2,.TOC.-.LCF2@l
430    .localentry codeSnippet,.-codeSnippet
431    std 31,-8(1)
432    stdu 1,-96(1)
433    .cfi_def_cfa_offset 96
434    .cfi_offset 31, -8
435    mr 31,1
436    .cfi_def_cfa_register 31
437    std 3,56(31)
438    mr 9,4
439    mr 8,5
440    mr 10,6
441    stw 9,52(31)
442    mr 9,8
443    stw 9,48(31)
444    mr 9,10
445    stb 9,47(31)
446    lwa 9,48(31)
447    sldi 10,9,32
448    lwa 9,52(31)
449    or 9,10,9
450    std 9,64(31)
451    lbz 9,47(31)
452    cmpwi 0,9,0
453    beq 0,.L21
454    ld 9,64(31)
455    oris 9,9,0x8000
456    std 9,64(31)
457.L21:
458    ld 9,56(31)
459    std 9,72(31)
460    ld 9,72(31)
461    lis 10,0xe96c
462    ori 10,10,0x18
463    stw 10,0(9)
464    ld 9,72(31)
465    addi 9,9,4
466    lis 10,0xe98c
467    ori 10,10,0x10
468    stw 10,0(9)
469    ld 9,72(31)
470    addi 9,9,8
471    lis 10,0x7d89
472    ori 10,10,0x3a6
473    stw 10,0(9)
474    ld 9,72(31)
475    addi 9,9,12
476    lis 10,0x4e80
477    ori 10,10,0x420
478    stw 10,0(9)
479    ld 9,72(31)
480    addi 9,9,16
481    addis 10,2,privateSnippetExecutor@toc@ha
482    addi 10,10,privateSnippetExecutor@toc@l
483    std 10,0(9)
484    ld 9,72(31)
485    addi 9,9,24
486    ld 10,64(31)
487    std 10,0(9)
488    ld 9,56(31)
489    addi 9,9,32
490    mr 3,9
491    addi 1,31,96
492    .cfi_def_cfa 1, 0
493    ld 31,-8(1)
494    blr
495    .long 0
496    .byte 0,9,0,0,128,1,0,1
497    .cfi_endproc
498.LFE2:
499    .size   codeSnippet,.-codeSnippet
500    .section    .note.GNU-stack,"",@progbits
501