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

Ticket #340: switch_good.s

File switch_good.s, 6.5 kB (added by revcompgeek, 3 years ago)

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