Wiki Roadmap Timeline Tickets New Ticket Source Search Help / Guide About Trac Login

Ticket #340: switch_bad.s

File switch_bad.s, 7.3 kB (added by revcompgeek, 3 years ago)

Generated assembly for bad module

Line 
1     .machine ppc7400
2     .section __TEXT,__textcoal_nt,coalesced,pure_instructions
3     .section __TEXT,__symbol_stub1,symbol_stubs,pure_instructions,16
4     .text
5
6
7     .globl  __Dmain
8     .align  4
9 __Dmain:
10 Leh_func_begin1:
11     mflr r0
12     stw r0, 8(r1)
13 Llabel1:
14     stwu r1, -64(r1)
15 Llabel2:
16     stw r29, 60(r1)
17     stw r30, 56(r1)
18     lis r2, ha16(L__D4test10__T3FooTiZ3Foo7__ClassZ$non_lazy_ptr)
19     lis r4, ha16(L__D4test10__T3FooTiZ3Foo6__vtblZ$non_lazy_ptr)
20     lwz r3, lo16(L__D4test10__T3FooTiZ3Foo7__ClassZ$non_lazy_ptr)(r2)
21     lwz r30, lo16(L__D4test10__T3FooTiZ3Foo6__vtblZ$non_lazy_ptr)(r4)
22     li r29, 0
23     bl L__d_allocclass$stub
24     stw r30, 0(r3)
25     stw r29, 4(r3)
26     mr r3, r29
27     lwz r30, 56(r1)
28     lwz r29, 60(r1)
29     addi r1, r1, 64
30     lwz r0, 8(r1)
31     mtlr r0
32     blr
33 Leh_func_end1:
34
35
36     .section        __TEXT,__textcoal_nt,coalesced,pure_instructions
37     .globl  __D4test10__T3FooTiZ3Foo3barMFZv
38     .weak_definition    __D4test10__T3FooTiZ3Foo3barMFZv
39     .align  4
40 __D4test10__T3FooTiZ3Foo3barMFZv:
41 Leh_func_begin2:
42     mflr r0
43     stw r0, 8(r1)
44 Llabel3:
45     stwu r1, -64(r1)
46 Llabel4:
47     stw r30, 60(r1)
48     stw r3, 56(r1)
49     cmplwi cr0, r3, 0
50     bne cr0, LBB2_2 ; noassert
51 LBB2_1:
52     lis r2, ha16(_.modulefilename)
53     la r3, lo16(_.modulefilename)(r2)
54     lwz r6, 4(r3)
55     lwz r5, lo16(_.modulefilename)(r2)
56     lis r2, ha16(_.str1)
57     la r4, lo16(_.str1)(r2)
58     li r7, 5
59     li r3, 9
60     bl L__d_assert_msg$stub
61 LBB2_2:
62     lwz r3, 56(r1)
63     li r30, -5
64     bl L__d_invariant$stub
65     b LBB2_4    ; default
66 LBB2_3:
67     li r2, lo16(LJTI2_0)
68     addis r2, r2, ha16(LJTI2_0)
69     slwi r3, r30, 2
70     lwzx r2, r3, r2
71     mtctr r2
72     bctr
73 LBB2_4:
74     b LBB2_9    ; default8
75 LBB2_5:
76 LBB2_6:
77 LBB2_7:
78 LBB2_8:
79     b LBB2_10   ; switchend
80 LBB2_9:
81     lis r2, ha16(_.modulefilename)
82     la r3, lo16(_.modulefilename)(r2)
83     lwz r4, 4(r3)
84     lwz r3, lo16(_.modulefilename)(r2)
85     li r5, 7
86     bl L__d_switch_error$stub
87 LBB2_10:
88     lwz r30, 60(r1)
89     addi r1, r1, 64
90     lwz r0, 8(r1)
91     mtlr r0
92     blr
93     .align  2
94 LJTI2_0:
95     .long    LBB2_7
96     .long    LBB2_8
97     .long    LBB2_4
98     .long    LBB2_4
99     .long    LBB2_4
100     .long    LBB2_6
101     .long    LBB2_4
102     .long    LBB2_5
103 Leh_func_end2:
104
105
106     .text
107     .align  4
108 __D4test16__moduleinfoCtorZ:
109 Leh_func_begin3:
110     lis r2, ha16(L__Dmodule_ref$non_lazy_ptr)
111     lwz r2, lo16(L__Dmodule_ref$non_lazy_ptr)(r2)
112     lis r3, ha16(__D4test11__moduleRefZ)
113     la r4, lo16(__D4test11__moduleRefZ)(r3)
114     lwz r5, 0(r2)
115     stw r5, lo16(__D4test11__moduleRefZ)(r3)
116     stw r4, 0(r2)
117     blr
118 Leh_func_end3:
119     .section        __DATA,__datacoal_nt,coalesced
120     .globl __D4test10__T3FooTiZ3Foo7__ClassZ
121     .weak_definition __D4test10__T3FooTiZ3Foo7__ClassZ
122     .align  4
123 __D4test10__T3FooTiZ3Foo7__ClassZ:
124     .long   __D9ClassInfo6__vtblZ
125     .space  4
126     .long   8
127     .long   __D4test10__T3FooTiZ3Foo6__initZ
128     .long   18
129     .long   _.str
130     .long   6
131     .long   __D4test10__T3FooTiZ3Foo6__vtblZ
132     .space  8
133     .long   __D6Object7__ClassZ
134     .space  4
135     .space  4
136     .long   34
137     .space  4
138     .space  8
139     .space  4
140     .long   __D31TypeInfo_C4test10__T3FooTiZ3Foo6__initZ
141
142     .section        __DATA,__const_coal,coalesced
143     .globl __D4test10__T3FooTiZ3Foo6__initZ
144     .weak_definition __D4test10__T3FooTiZ3Foo6__initZ
145     .align  2
146 __D4test10__T3FooTiZ3Foo6__initZ:
147     .long   __D4test10__T3FooTiZ3Foo6__vtblZ
148     .space  4
149
150     .globl __D4test10__T3FooTiZ3Foo6__vtblZ
151     .weak_definition __D4test10__T3FooTiZ3Foo6__vtblZ
152     .align  4
153 __D4test10__T3FooTiZ3Foo6__vtblZ:
154     .long   __D4test10__T3FooTiZ3Foo7__ClassZ
155     .long   __D6object6Object8toStringMFZAa
156     .long   __D6object6Object6toHashMFZk
157     .long   __D6object6Object5opCmpMFC6ObjectZi
158     .long   __D6object6Object8opEqualsMFC6ObjectZi
159     .long   __D4test10__T3FooTiZ3Foo3barMFZv
160
161     .globl __D31TypeInfo_C4test10__T3FooTiZ3Foo6__initZ
162     .weak_definition __D31TypeInfo_C4test10__T3FooTiZ3Foo6__initZ
163     .align  3
164 __D31TypeInfo_C4test10__T3FooTiZ3Foo6__initZ:
165     .long   __D14TypeInfo_Class6__vtblZ
166     .space  4
167     .long   __D4test10__T3FooTiZ3Foo7__ClassZ
168
169     .cstring
170     .align  4
171 _.str:
172     .asciz  "test.Foo!(int).Foo"
173
174 _.str1:
175     .asciz  "null this"
176
177 _.str2:
178     .asciz  "switch_bad.d"
179
180 .const_data
181     .align  3
182 _.modulefilename:
183     .long   12
184     .long   _.str2
185
186     .cstring
187 _.str3:
188     .asciz  "test"
189
190     .data
191     .globl __D4test8__ModuleZ
192     .align  4
193 __D4test8__ModuleZ:
194     .long   __D10ModuleInfo6__vtblZ
195     .space  4
196     .long   4
197     .long   _.str3
198     .space  8
199     .space  8
200     .long   4
201     .space  4
202     .space  4
203     .space  4
204     .space  4
205     .space  4
206
207     .align  3
208 __D4test11__moduleRefZ:
209     .space  4
210     .long   __D4test8__ModuleZ
211
212 .mod_init_func
213     .align  2
214     .long   __D4test16__moduleinfoCtorZ
215     .section __TEXT,__symbol_stub1,symbol_stubs,pure_instructions,16
216     .align  4
217 L__d_switch_error$stub:
218     .indirect_symbol __d_switch_error
219     lis r11,ha16(L__d_switch_error$lazy_ptr)
220     lwzu r12,lo16(L__d_switch_error$lazy_ptr)(r11)
221     mtctr r12
222     bctr
223 .lazy_symbol_pointer
224 L__d_switch_error$lazy_ptr:
225     .indirect_symbol __d_switch_error
226     .long dyld_stub_binding_helper
227     .section __TEXT,__symbol_stub1,symbol_stubs,pure_instructions,16
228     .align  4
229 L__d_allocclass$stub:
230     .indirect_symbol __d_allocclass
231     lis r11,ha16(L__d_allocclass$lazy_ptr)
232     lwzu r12,lo16(L__d_allocclass$lazy_ptr)(r11)
233     mtctr r12
234     bctr
235 .lazy_symbol_pointer
236 L__d_allocclass$lazy_ptr:
237     .indirect_symbol __d_allocclass
238     .long dyld_stub_binding_helper
239     .section __TEXT,__symbol_stub1,symbol_stubs,pure_instructions,16
240     .align  4
241 L__d_invariant$stub:
242     .indirect_symbol __d_invariant
243     lis r11,ha16(L__d_invariant$lazy_ptr)
244     lwzu r12,lo16(L__d_invariant$lazy_ptr)(r11)
245     mtctr r12
246     bctr
247 .lazy_symbol_pointer
248 L__d_invariant$lazy_ptr:
249     .indirect_symbol __d_invariant
250     .long dyld_stub_binding_helper
251     .section __TEXT,__symbol_stub1,symbol_stubs,pure_instructions,16
252     .align  4
253 L__d_assert_msg$stub:
254     .indirect_symbol __d_assert_msg
255     lis r11,ha16(L__d_assert_msg$lazy_ptr)
256     lwzu r12,lo16(L__d_assert_msg$lazy_ptr)(r11)
257     mtctr r12
258     bctr
259 .lazy_symbol_pointer
260 L__d_assert_msg$lazy_ptr:
261     .indirect_symbol __d_assert_msg
262     .long dyld_stub_binding_helper
263
264 .non_lazy_symbol_pointer
265 L__D4test10__T3FooTiZ3Foo6__vtblZ$non_lazy_ptr:
266     .indirect_symbol __D4test10__T3FooTiZ3Foo6__vtblZ
267     .long   0
268 L__D4test10__T3FooTiZ3Foo7__ClassZ$non_lazy_ptr:
269     .indirect_symbol __D4test10__T3FooTiZ3Foo7__ClassZ
270     .long   0
271 L__Dmodule_ref$non_lazy_ptr:
272     .indirect_symbol __Dmodule_ref
273     .long   0
274     .subsections_via_symbols
275 .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
276 EH_frame0:
277 Lsection_eh_frame:
278 Leh_frame_common:
279     .set    Lset1eh,Leh_frame_common_end-Leh_frame_common_begin
280     .long   Lset1eh
281 Leh_frame_common_begin:
282     .long   0x0
283     .byte   0x1
284     .asciz  "zR"
285     .byte   0x1
286     .byte   0x7C
287     .byte   0x41
288     .byte   0x1
289     .byte   0x1B
290     .byte   0xC
291     .byte   0x1
292     .byte   0x0
293     .align  2
294 Leh_frame_common_end:
295
296     .globl  __Dmain.eh
297 __Dmain.eh:
298     .set    Lset2eh,Leh_frame_end1-Leh_frame_begin1
299     .long   Lset2eh
300 Leh_frame_begin1:
301     .long   Leh_frame_begin1-Leh_frame_common
302     .long   Leh_func_begin1-.
303     .set    Lset3eh,Leh_func_end1-Leh_func_begin1
304     .long   Lset3eh
305     .byte   0x0
306     .byte   0x4
307     .set    Lset4eh,Llabel1-Leh_func_begin1
308     .long   Lset4eh
309     .byte   0xE
310     .byte   0x40
311     .byte   0x9D
312     .byte   0x1
313     .byte   0x9E
314     .byte   0x2
315     .byte   0x11
316     .byte   0x41
317     .byte   0x7E
318     .byte   0x4
319     .set    Lset5eh,Llabel2-Llabel1
320     .long   Lset5eh
321     .byte   0xD
322     .byte   0x1
323     .align  2
324 Leh_frame_end1:
325     .globl  __D4test10__T3FooTiZ3Foo3barMFZv.eh
326     .weak_definition __D4test10__T3FooTiZ3Foo3barMFZv.eh
327 __D4test10__T3FooTiZ3Foo3barMFZv.eh:
328     .set    Lset6eh,Leh_frame_end2-Leh_frame_begin2
329     .long   Lset6eh
330 Leh_frame_begin2:
331     .long   Leh_frame_begin2-Leh_frame_common
332     .long   Leh_func_begin2-.
333     .set    Lset7eh,Leh_func_end2-Leh_func_begin2
334     .long   Lset7eh
335     .byte   0x0
336     .byte   0x4
337     .set    Lset8eh,Llabel3-Leh_func_begin2
338     .long   Lset8eh
339     .byte   0xE
340     .byte   0x40
341     .byte   0x9E
342     .byte   0x1
343     .byte   0x11
344     .byte   0x41
345     .byte   0x7E
346     .byte   0x4
347     .set    Lset9eh,Llabel4-Llabel3
348     .long   Lset9eh
349     .byte   0xD
350     .byte   0x1
351     .align  2
352 Leh_frame_end2:
353 __D4test16__moduleinfoCtorZ.eh = 0
354     .no_dead_strip  __D4test16__moduleinfoCtorZ.eh
Copyright © 2008, LDC Development Team.