Ticket #5856: output.False

File output.False, 11.6 KB (added by td123, 3 years ago)

Output from ghc -fforce-recomp -o num num.hs -ddump-cmm -ddump-asm

Line 
1[1 of 1] Compiling Main             ( num.hs, num.o )
2
3==================== Cmm ====================
4[section "data" { __stginit_Main:
5 },
6 __stginit_ZCMain()
7         { update_frame: <none>
8         }
9 }]
10 
11-------------------
12 
13[section "relreadonly" {
14     sB9_srt:
15         const base_GHCziFloat_zdfFloatingDouble_closure;
16         const ghczmprim_GHCziClasses_zdfOrdDouble_closure;
17 },
18 section "data" {
19     sB9_closure:
20         const sB9_info;
21         const 0;
22         const 0;
23         const 0;
24 },
25 sB7_info()
26         { update_frame: <none>
27           label: sB7_info
28           rep:HeapRep { Thunk }
29         }
30     cBl:
31         if (Sp - 24 < SpLim) goto cBn;
32         Hp = Hp + 24;
33         if (Hp > HpLim) goto cBp;
34         I32[Sp - 8] = stg_upd_frame_info;
35         I32[Sp - 4] = R1;
36         I32[Hp - 20] = ghczmprim_GHCziTypes_Dzh_con_info;
37         F64[Hp - 16] = 2.147483648e9 :: W64;
38         I32[Hp - 8] = ghczmprim_GHCziTypes_Dzh_con_info;
39         F64[Hp - 4] = 2.0 :: W64;
40         I32[Sp - 12] = Hp - 19;
41         I32[Sp - 16] = Hp - 7;
42         I32[Sp - 20] = stg_ap_pp_info;
43         I32[Sp - 24] = base_GHCziFloat_zdfFloatingDouble_closure;
44         Sp = Sp - 24;
45         jump base_GHCziFloat_logBase_info ();
46     cBn: jump stg_gc_enter_1 ();
47     cBp:
48         HpAlloc = 24;
49         goto cBn;
50 },
51 sB9_info()
52         { update_frame: <none>
53           label: sB9_info
54           rep:HeapRep static { Thunk }
55         }
56     cBs:
57         if (Sp - 24 < SpLim) goto cBu;
58         Hp = Hp + 28;
59         if (Hp > HpLim) goto cBw;
60         I32[Hp - 24] = stg_CAF_BLACKHOLE_info;
61         I32[Hp - 20] = CurrentTSO;
62         (_cBx::I32,) = foreign "ccall"
63           newCAF((BaseReg, PtrHint), (R1, PtrHint), (Hp - 24, PtrHint));
64         if (_cBx::I32 == 0) goto cBy;
65         goto cBz;
66     cBu: jump stg_gc_enter_1 ();
67     cBw:
68         HpAlloc = 28;
69         goto cBu;
70     cBy: jump I32[R1] ();
71     cBz:
72         I32[Sp - 8] = stg_bh_upd_frame_info;
73         I32[Sp - 4] = Hp - 24;
74         I32[Hp - 16] = ghczmprim_GHCziTypes_Dzh_con_info;
75         F64[Hp - 12] = 31.0 :: W64;
76         I32[Hp - 4] = sB7_info;
77         I32[Sp - 12] = Hp - 15;
78         I32[Sp - 16] = Hp - 4;
79         I32[Sp - 20] = stg_ap_pp_info;
80         I32[Sp - 24] = ghczmprim_GHCziClasses_zdfOrdDouble_closure;
81         Sp = Sp - 24;
82         jump ghczmprim_GHCziClasses_zg_info ();
83 }]
84 
85-------------------
86 
87[section "relreadonly" {
88     sBa_srt:
89         const base_SystemziIO_print_closure;
90         const base_GHCziShow_zdfShowBool_closure;
91 },
92 section "data" {
93     sBa_closure:
94         const sBa_info;
95         const 0;
96         const 0;
97         const 0;
98 },
99 sBa_info()
100         { update_frame: <none>
101           label: sBa_info
102           rep:HeapRep static { Thunk }
103         }
104     cBI:
105         if (Sp - 12 < SpLim) goto cBK;
106         Hp = Hp + 8;
107         if (Hp > HpLim) goto cBM;
108         I32[Hp - 4] = stg_CAF_BLACKHOLE_info;
109         I32[Hp + 0] = CurrentTSO;
110         (_cBN::I32,) = foreign "ccall"
111           newCAF((BaseReg, PtrHint), (R1, PtrHint), (Hp - 4, PtrHint));
112         if (_cBN::I32 == 0) goto cBO;
113         goto cBP;
114     cBK: jump stg_gc_enter_1 ();
115     cBM:
116         HpAlloc = 8;
117         goto cBK;
118     cBO: jump I32[R1] ();
119     cBP:
120         I32[Sp - 8] = stg_bh_upd_frame_info;
121         I32[Sp - 4] = Hp - 4;
122         R1 = base_SystemziIO_print_closure;
123         I32[Sp - 12] = base_GHCziShow_zdfShowBool_closure;
124         Sp = Sp - 12;
125         jump stg_ap_p_fast ();
126 }]
127 
128-------------------
129 
130[section "relreadonly" {
131     Main_main_srt:
132         const base_GHCziBase_zd_closure;
133         const sB9_closure;
134         const sBa_closure;
135 },
136 section "data" {
137     Main_main_closure:
138         const Main_main_info;
139         const 0;
140         const 0;
141         const 0;
142 },
143 Main_main_info()
144         { update_frame: <none>
145           label: Main_main_info
146           rep:HeapRep static { Thunk }
147         }
148     cBY:
149         if (Sp - 16 < SpLim) goto cC0;
150         Hp = Hp + 8;
151         if (Hp > HpLim) goto cC2;
152         I32[Hp - 4] = stg_CAF_BLACKHOLE_info;
153         I32[Hp + 0] = CurrentTSO;
154         (_cC3::I32,) = foreign "ccall"
155           newCAF((BaseReg, PtrHint), (R1, PtrHint), (Hp - 4, PtrHint));
156         if (_cC3::I32 == 0) goto cC4;
157         goto cC5;
158     cC0: jump stg_gc_enter_1 ();
159     cC2:
160         HpAlloc = 8;
161         goto cC0;
162     cC4: jump I32[R1] ();
163     cC5:
164         I32[Sp - 8] = stg_bh_upd_frame_info;
165         I32[Sp - 4] = Hp - 4;
166         R1 = base_GHCziBase_zd_closure;
167         I32[Sp - 12] = sB9_closure;
168         I32[Sp - 16] = sBa_closure;
169         Sp = Sp - 16;
170         jump stg_ap_pp_fast ();
171 }]
172 
173-------------------
174 
175[section "relreadonly" {
176     ZCMain_main_srt:
177         const base_GHCziTopHandler_runMainIO_closure;
178         const Main_main_closure;
179 },
180 section "data" {
181     ZCMain_main_closure:
182         const ZCMain_main_info;
183         const 0;
184         const 0;
185         const 0;
186 },
187 ZCMain_main_info()
188         { update_frame: <none>
189           label: ZCMain_main_info
190           rep:HeapRep static { Thunk }
191         }
192     cCe:
193         if (Sp - 12 < SpLim) goto cCg;
194         Hp = Hp + 8;
195         if (Hp > HpLim) goto cCi;
196         I32[Hp - 4] = stg_CAF_BLACKHOLE_info;
197         I32[Hp + 0] = CurrentTSO;
198         (_cCj::I32,) = foreign "ccall"
199           newCAF((BaseReg, PtrHint), (R1, PtrHint), (Hp - 4, PtrHint));
200         if (_cCj::I32 == 0) goto cCk;
201         goto cCl;
202     cCg: jump stg_gc_enter_1 ();
203     cCi:
204         HpAlloc = 8;
205         goto cCg;
206     cCk: jump I32[R1] ();
207     cCl:
208         I32[Sp - 8] = stg_bh_upd_frame_info;
209         I32[Sp - 4] = Hp - 4;
210         R1 = base_GHCziTopHandler_runMainIO_closure;
211         I32[Sp - 12] = Main_main_closure;
212         Sp = Sp - 12;
213         jump stg_ap_p_fast ();
214 }]
215
216
217
218==================== Asm code ====================
219.data
220        .align 4
221.align 1
222.globl __stginit_Main
223.type __stginit_Main, @object
224__stginit_Main:
225.globl __stginit_ZCMain
226.type __stginit_ZCMain, @object
227__stginit_ZCMain:
228.section .data
229        .align 4
230.align 1
231sB9_srt:
232        .long   base_GHCziFloat_zdfFloatingDouble_closure
233        .long   ghczmprim_GHCziClasses_zdfOrdDouble_closure
234.data
235        .align 4
236.align 1
237sB9_closure:
238        .long   sB9_info
239        .long   0
240        .long   0
241        .long   0
242.text
243        .align 4,0x90
244        .long   sB9_srt-(sB7_info)+0
245        .long   0
246        .long   65552
247sB7_info:
248.LcBl:
249        leal -24(%ebp),%eax
250        cmpl 84(%ebx),%eax
251        jb .LcBn
252        addl $24,%edi
253        cmpl 92(%ebx),%edi
254        ja .LcBp
255        movl $stg_upd_frame_info,-8(%ebp)
256        movl %esi,-4(%ebp)
257        movl $ghczmprim_GHCziTypes_Dzh_con_info,-20(%edi)
258#       gldsd .LnCs,%fake0
259        fldl .LnCs ; fstp %st(1)
260#       gstsd %fake0,-16(%edi)
261        fstl -16(%edi)
262        movl $ghczmprim_GHCziTypes_Dzh_con_info,-8(%edi)
263#       gldsd .LnCu,%fake0
264        fldl .LnCu ; fstp %st(1)
265#       gstsd %fake0,-4(%edi)
266        fstl -4(%edi)
267        leal -19(%edi),%eax
268        movl %eax,-12(%ebp)
269        leal -7(%edi),%eax
270        movl %eax,-16(%ebp)
271        movl $stg_ap_pp_info,-20(%ebp)
272        movl $base_GHCziFloat_zdfFloatingDouble_closure,-24(%ebp)
273        addl $-24,%ebp
274        ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)
275        ffree %st(4) ;ffree %st(5)
276        jmp base_GHCziFloat_logBase_info
277.LcBp:
278        movl $24,116(%ebx)
279.LcBn:
280        ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)
281        ffree %st(4) ;ffree %st(5)
282        jmp *-8(%ebx)
283        .size sB7_info, .-sB7_info
284.section .rodata
285        .align 4
286.align 8
287.LnCs:
288        .byte   0
289        .byte   0
290        .byte   0
291        .byte   0
292        .byte   0
293        .byte   0
294        .byte   224
295        .byte   65
296.section .rodata
297        .align 4
298.align 8
299.LnCu:
300        .byte   0
301        .byte   0
302        .byte   0
303        .byte   0
304        .byte   0
305        .byte   0
306        .byte   0
307        .byte   64
308.text
309        .align 4,0x90
310        .long   sB9_srt-(sB9_info)+0
311        .long   0
312        .long   196630
313sB9_info:
314.LcBs:
315        leal -24(%ebp),%eax
316        cmpl 84(%ebx),%eax
317        jb .LcBu
318        addl $28,%edi
319        cmpl 92(%ebx),%edi
320        ja .LcBw
321        movl $stg_CAF_BLACKHOLE_info,-24(%edi)
322        movl 100(%ebx),%eax
323        movl %eax,-20(%edi)
324        leal -24(%edi),%eax
325        pushl %eax
326        pushl %esi
327        pushl %ebx
328        ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)
329        ffree %st(4) ;ffree %st(5)
330        call newCAF
331        addl $12,%esp
332        testl %eax,%eax
333        je .LcBy
334.LcBz:
335        movl $stg_bh_upd_frame_info,-8(%ebp)
336        leal -24(%edi),%eax
337        movl %eax,-4(%ebp)
338        movl $ghczmprim_GHCziTypes_Dzh_con_info,-16(%edi)
339#       gldsd .LnCE,%fake0
340        fldl .LnCE ; fstp %st(1)
341#       gstsd %fake0,-12(%edi)
342        fstl -12(%edi)
343        movl $sB7_info,-4(%edi)
344        leal -15(%edi),%eax
345        movl %eax,-12(%ebp)
346        leal -4(%edi),%eax
347        movl %eax,-16(%ebp)
348        movl $stg_ap_pp_info,-20(%ebp)
349        movl $ghczmprim_GHCziClasses_zdfOrdDouble_closure,-24(%ebp)
350        addl $-24,%ebp
351        ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)
352        ffree %st(4) ;ffree %st(5)
353        jmp ghczmprim_GHCziClasses_zg_info
354.LcBw:
355        movl $28,116(%ebx)
356.LcBu:
357        ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)
358        ffree %st(4) ;ffree %st(5)
359        jmp *-8(%ebx)
360.LcBy:
361        ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)
362        ffree %st(4) ;ffree %st(5)
363        jmp *(%esi)
364        .size sB9_info, .-sB9_info
365.section .rodata
366        .align 4
367.align 8
368.LnCE:
369        .byte   0
370        .byte   0
371        .byte   0
372        .byte   0
373        .byte   0
374        .byte   0
375        .byte   63
376        .byte   64
377.section .data
378        .align 4
379.align 1
380sBa_srt:
381        .long   base_SystemziIO_print_closure
382        .long   base_GHCziShow_zdfShowBool_closure
383.data
384        .align 4
385.align 1
386sBa_closure:
387        .long   sBa_info
388        .long   0
389        .long   0
390        .long   0
391.text
392        .align 4,0x90
393        .long   sBa_srt-(sBa_info)+0
394        .long   0
395        .long   196630
396sBa_info:
397.LcBI:
398        leal -12(%ebp),%eax
399        cmpl 84(%ebx),%eax
400        jb .LcBK
401        addl $8,%edi
402        cmpl 92(%ebx),%edi
403        ja .LcBM
404        movl $stg_CAF_BLACKHOLE_info,-4(%edi)
405        movl 100(%ebx),%eax
406        movl %eax,0(%edi)
407        leal -4(%edi),%eax
408        pushl %eax
409        pushl %esi
410        pushl %ebx
411        call newCAF
412        addl $12,%esp
413        testl %eax,%eax
414        je .LcBO
415.LcBP:
416        movl $stg_bh_upd_frame_info,-8(%ebp)
417        leal -4(%edi),%eax
418        movl %eax,-4(%ebp)
419        movl $base_SystemziIO_print_closure,%esi
420        movl $base_GHCziShow_zdfShowBool_closure,-12(%ebp)
421        addl $-12,%ebp
422        jmp stg_ap_p_fast
423.LcBM:
424        movl $8,116(%ebx)
425.LcBK:
426        jmp *-8(%ebx)
427.LcBO:
428        jmp *(%esi)
429        .size sBa_info, .-sBa_info
430.section .data
431        .align 4
432.align 1
433Main_main_srt:
434        .long   base_GHCziBase_zd_closure
435        .long   sB9_closure
436        .long   sBa_closure
437.data
438        .align 4
439.align 1
440.globl Main_main_closure
441.type Main_main_closure, @object
442Main_main_closure:
443        .long   Main_main_info
444        .long   0
445        .long   0
446        .long   0
447.text
448        .align 4,0x90
449        .long   Main_main_srt-(Main_main_info)+0
450        .long   0
451        .long   458774
452.globl Main_main_info
453.type Main_main_info, @object
454Main_main_info:
455.LcBY:
456        leal -16(%ebp),%eax
457        cmpl 84(%ebx),%eax
458        jb .LcC0
459        addl $8,%edi
460        cmpl 92(%ebx),%edi
461        ja .LcC2
462        movl $stg_CAF_BLACKHOLE_info,-4(%edi)
463        movl 100(%ebx),%eax
464        movl %eax,0(%edi)
465        leal -4(%edi),%eax
466        pushl %eax
467        pushl %esi
468        pushl %ebx
469        call newCAF
470        addl $12,%esp
471        testl %eax,%eax
472        je .LcC4
473.LcC5:
474        movl $stg_bh_upd_frame_info,-8(%ebp)
475        leal -4(%edi),%eax
476        movl %eax,-4(%ebp)
477        movl $base_GHCziBase_zd_closure,%esi
478        movl $sB9_closure,-12(%ebp)
479        movl $sBa_closure,-16(%ebp)
480        addl $-16,%ebp
481        jmp stg_ap_pp_fast
482.LcC2:
483        movl $8,116(%ebx)
484.LcC0:
485        jmp *-8(%ebx)
486.LcC4:
487        jmp *(%esi)
488        .size Main_main_info, .-Main_main_info
489.section .data
490        .align 4
491.align 1
492ZCMain_main_srt:
493        .long   base_GHCziTopHandler_runMainIO_closure
494        .long   Main_main_closure
495.data
496        .align 4
497.align 1
498.globl ZCMain_main_closure
499.type ZCMain_main_closure, @object
500ZCMain_main_closure:
501        .long   ZCMain_main_info
502        .long   0
503        .long   0
504        .long   0
505.text
506        .align 4,0x90
507        .long   ZCMain_main_srt-(ZCMain_main_info)+0
508        .long   0
509        .long   196630
510.globl ZCMain_main_info
511.type ZCMain_main_info, @object
512ZCMain_main_info:
513.LcCe:
514        leal -12(%ebp),%eax
515        cmpl 84(%ebx),%eax
516        jb .LcCg
517        addl $8,%edi
518        cmpl 92(%ebx),%edi
519        ja .LcCi
520        movl $stg_CAF_BLACKHOLE_info,-4(%edi)
521        movl 100(%ebx),%eax
522        movl %eax,0(%edi)
523        leal -4(%edi),%eax
524        pushl %eax
525        pushl %esi
526        pushl %ebx
527        call newCAF
528        addl $12,%esp
529        testl %eax,%eax
530        je .LcCk
531.LcCl:
532        movl $stg_bh_upd_frame_info,-8(%ebp)
533        leal -4(%edi),%eax
534        movl %eax,-4(%ebp)
535        movl $base_GHCziTopHandler_runMainIO_closure,%esi
536        movl $Main_main_closure,-12(%ebp)
537        addl $-12,%ebp
538        jmp stg_ap_p_fast
539.LcCi:
540        movl $8,116(%ebx)
541.LcCg:
542        jmp *-8(%ebx)
543.LcCk:
544        jmp *(%esi)
545        .size ZCMain_main_info, .-ZCMain_main_info
546
547
548Linking num ...