Ticket #5856: output

File output, 9.3 KB (added by td123, 22 months ago)

Output from ghc -fforce-recomp -O -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     Main_main2_srt:
15         const base_GHCziShow_shows33_closure;
16         const base_GHCziShow_shows35_closure;
17 },
18 section "data" {
19     Main_main2_closure:
20         const Main_main2_info;
21         const 0;
22         const 0;
23         const 0;
24 },
25 Main_main2_info()
26         { update_frame: <none>
27           label: Main_main2_info
28           rep:HeapRep static { Thunk }
29         }
30     c1Te:
31         if (Sp - 8 < SpLim) goto c1Tg;
32         Hp = Hp + 8;
33         if (Hp > HpLim) goto c1Ti;
34         I32[Hp - 4] = stg_CAF_BLACKHOLE_info;
35         I32[Hp + 0] = CurrentTSO;
36         (_c1Tj::I32,) = foreign "ccall"
37           newCAF((BaseReg, PtrHint), (R1, PtrHint), (Hp - 4, PtrHint));
38         if (_c1Tj::I32 == 0) goto c1Tk;
39         goto c1Tl;
40     c1Tg: jump stg_gc_enter_1 ();
41     c1Ti:
42         HpAlloc = 8;
43         goto c1Tg;
44     c1Tk: jump I32[R1] ();
45     c1Tl:
46         I32[Sp - 8] = stg_bh_upd_frame_info;
47         I32[Sp - 4] = Hp - 4;
48         (_s1SX::F64,) = foreign "ccall" MO_F64_Log((2.0 :: W64,));
49         (_s1SW::F64,) = foreign "ccall"
50           MO_F64_Log((2.147483648e9 :: W64,));
51         _s1SZ::F64 = %MO_F_Quot_W64(_s1SW::F64, _s1SX::F64);
52         _c1Ts::I32 = %MO_F_Gt_W64(_s1SZ::F64, 31.0 :: W64);
53         ;
54         if (_c1Ts::I32 >= 1) goto c1Tv;
55         R1 = base_GHCziShow_shows35_closure;
56         Sp = Sp - 8;
57         R1 = R1 & (-4);
58         jump I32[R1] ();
59     c1Tv:
60         R1 = base_GHCziShow_shows33_closure;
61         Sp = Sp - 8;
62         R1 = R1 & (-4);
63         jump I32[R1] ();
64 }]
65 
66-------------------
67 
68[section "relreadonly" {
69     Main_main1_srt:
70         const base_GHCziIOziHandleziText_hPutStr2_closure;
71         const base_GHCziIOziHandleziFD_stdout_closure;
72         const Main_main2_closure;
73 },
74 section "data" {
75     Main_main1_closure:
76         const Main_main1_info;
77         const 0;
78 },
79 Main_main1_info()
80         { update_frame: <none>
81           label: Main_main1_info
82           rep:HeapRep static { Fun {arity: 1 fun_type: ArgSpec 3} }
83         }
84     c1TA:
85         if (Sp - 12 < SpLim) goto c1TD;
86         I32[Sp - 4] = ghczmprim_GHCziTypes_True_closure+2;
87         I32[Sp - 8] = Main_main2_closure;
88         I32[Sp - 12] = base_GHCziIOziHandleziFD_stdout_closure;
89         Sp = Sp - 12;
90         jump base_GHCziIOziHandleziText_hPutStr2_info ();
91     c1TD:
92         R1 = Main_main1_closure;
93         jump stg_gc_fun ();
94 }]
95 
96-------------------
97 
98[section "relreadonly" {
99     Main_main_srt:
100         const Main_main1_closure;
101 },
102 section "data" {
103     Main_main_closure:
104         const Main_main_info;
105         const 0;
106 },
107 Main_main_info()
108         { update_frame: <none>
109           label: Main_main_info
110           rep:HeapRep static { Fun {arity: 1 fun_type: ArgSpec 3} }
111         }
112     c1TI: jump Main_main1_info ();
113 }]
114 
115-------------------
116 
117[section "relreadonly" {
118     Main_main3_srt:
119         const base_GHCziTopHandler_runMainIO1_closure;
120         const Main_main1_closure;
121 },
122 section "data" {
123     Main_main3_closure:
124         const Main_main3_info;
125         const 0;
126 },
127 Main_main3_info()
128         { update_frame: <none>
129           label: Main_main3_info
130           rep:HeapRep static { Fun {arity: 1 fun_type: ArgSpec 3} }
131         }
132     c1TN:
133         if (Sp - 4 < SpLim) goto c1TQ;
134         I32[Sp - 4] = Main_main1_closure+1;
135         Sp = Sp - 4;
136         jump base_GHCziTopHandler_runMainIO1_info ();
137     c1TQ:
138         R1 = Main_main3_closure;
139         jump stg_gc_fun ();
140 }]
141 
142-------------------
143 
144[section "relreadonly" {
145     ZCMain_main_srt:
146         const Main_main3_closure;
147 },
148 section "data" {
149     ZCMain_main_closure:
150         const ZCMain_main_info;
151         const 0;
152 },
153 ZCMain_main_info()
154         { update_frame: <none>
155           label: ZCMain_main_info
156           rep:HeapRep static { Fun {arity: 1 fun_type: ArgSpec 3} }
157         }
158     c1TV: jump Main_main3_info ();
159 }]
160
161
162
163==================== Asm code ====================
164.data
165        .align 4
166.align 1
167.globl __stginit_Main
168.type __stginit_Main, @object
169__stginit_Main:
170.globl __stginit_ZCMain
171.type __stginit_ZCMain, @object
172__stginit_ZCMain:
173.section .data
174        .align 4
175.align 1
176Main_main2_srt:
177        .long   base_GHCziShow_shows33_closure
178        .long   base_GHCziShow_shows35_closure
179.data
180        .align 4
181.align 1
182.globl Main_main2_closure
183.type Main_main2_closure, @object
184Main_main2_closure:
185        .long   Main_main2_info
186        .long   0
187        .long   0
188        .long   0
189.text
190        .align 4,0x90
191        .long   Main_main2_srt-(Main_main2_info)+0
192        .long   0
193        .long   196630
194.globl Main_main2_info
195.type Main_main2_info, @object
196Main_main2_info:
197.Lc1Te:
198        leal -8(%ebp),%eax
199        cmpl 84(%ebx),%eax
200        jb .Lc1Tg
201        addl $8,%edi
202        cmpl 92(%ebx),%edi
203        ja .Lc1Ti
204        movl $stg_CAF_BLACKHOLE_info,-4(%edi)
205        movl 100(%ebx),%eax
206        movl %eax,0(%edi)
207        leal -4(%edi),%eax
208        pushl %eax
209        pushl %esi
210        pushl %ebx
211        ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)
212        ffree %st(4) ;ffree %st(5)
213        call newCAF
214        addl $12,%esp
215        testl %eax,%eax
216        je .Lc1Tk
217.Lc1Tl:
218        movl $stg_bh_upd_frame_info,-8(%ebp)
219        leal -4(%edi),%eax
220        movl %eax,-4(%ebp)
221        subl $4,%esp
222#       gldsd .Ln1U7,%fake0
223        fldl .Ln1U7 ; fstp %st(1)
224        subl $8,%esp
225#       gstsd %fake0,(%esp)
226        fstl (%esp)
227        ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)
228        ffree %st(4) ;ffree %st(5)
229        call log
230        addl $12,%esp
231        subl $4,%esp
232#       gldsd .Ln1Ub,%fake1
233        fldl .Ln1Ub ; fstp %st(2)
234        subl $8,%esp
235#       gstsd %fake1,(%esp)
236        fld %st(1) ; fstpl (%esp)
237#       gstt %fake0,76(%esp)
238        fld %st(0) ; fstpt 76(%esp)
239        ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)
240        ffree %st(4) ;ffree %st(5)
241        call log
242        addl $12,%esp
243#       gldt 64(%esp),%fake1
244        fldt 64(%esp) ; fstp %st(2)
245#       gdivt %fake0,%fake1,%fake0
246        #GDIV-xxxcase1
247        fld %st(1) ; fdivrp %st(0),%st(1)
248#       gldsd .Ln1Ue,%fake1
249        fldl .Ln1Ue ; fstp %st(2)
250#       gcmp_g %fake0,%fake1
251        pushl %eax ; fld %st(0)
252        fcomp %st(2); fstsw %ax ; sahf ;  setpo %ah
253        seta %al ;  andb %ah,%al ;  decb %al ;  popl %eax
254        je .Lc1Tv
255        movl $base_GHCziShow_shows35_closure,%esi
256        addl $-8,%ebp
257        andl $-4,%esi
258        ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)
259        ffree %st(4) ;ffree %st(5)
260        jmp *(%esi)
261.Lc1Ti:
262        movl $8,116(%ebx)
263.Lc1Tg:
264        ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)
265        ffree %st(4) ;ffree %st(5)
266        jmp *-8(%ebx)
267.Lc1Tk:
268        ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)
269        ffree %st(4) ;ffree %st(5)
270        jmp *(%esi)
271.Lc1Tv:
272        movl $base_GHCziShow_shows33_closure,%esi
273        addl $-8,%ebp
274        andl $-4,%esi
275        ffree %st(0) ;ffree %st(1) ;ffree %st(2) ;ffree %st(3)
276        ffree %st(4) ;ffree %st(5)
277        jmp *(%esi)
278        .size Main_main2_info, .-Main_main2_info
279.section .rodata
280        .align 4
281.align 8
282.Ln1U7:
283        .byte   0
284        .byte   0
285        .byte   0
286        .byte   0
287        .byte   0
288        .byte   0
289        .byte   0
290        .byte   64
291.section .rodata
292        .align 4
293.align 8
294.Ln1Ub:
295        .byte   0
296        .byte   0
297        .byte   0
298        .byte   0
299        .byte   0
300        .byte   0
301        .byte   224
302        .byte   65
303.section .rodata
304        .align 4
305.align 8
306.Ln1Ue:
307        .byte   0
308        .byte   0
309        .byte   0
310        .byte   0
311        .byte   0
312        .byte   0
313        .byte   63
314        .byte   64
315.section .data
316        .align 4
317.align 1
318Main_main1_srt:
319        .long   base_GHCziIOziHandleziText_hPutStr2_closure
320        .long   base_GHCziIOziHandleziFD_stdout_closure
321        .long   Main_main2_closure
322.data
323        .align 4
324.align 1
325.globl Main_main1_closure
326.type Main_main1_closure, @object
327Main_main1_closure:
328        .long   Main_main1_info
329        .long   0
330.text
331        .align 4,0x90
332        .long   Main_main1_srt-(Main_main1_info)+0
333        .long   65539
334        .long   0
335        .long   458767
336.globl Main_main1_info
337.type Main_main1_info, @object
338Main_main1_info:
339.Lc1TA:
340        leal -12(%ebp),%eax
341        cmpl 84(%ebx),%eax
342        jb .Lc1TD
343        movl $ghczmprim_GHCziTypes_True_closure+2,-4(%ebp)
344        movl $Main_main2_closure,-8(%ebp)
345        movl $base_GHCziIOziHandleziFD_stdout_closure,-12(%ebp)
346        addl $-12,%ebp
347        jmp base_GHCziIOziHandleziText_hPutStr2_info
348.Lc1TD:
349        movl $Main_main1_closure,%esi
350        jmp *-4(%ebx)
351        .size Main_main1_info, .-Main_main1_info
352.section .data
353        .align 4
354.align 1
355Main_main_srt:
356        .long   Main_main1_closure
357.data
358        .align 4
359.align 1
360.globl Main_main_closure
361.type Main_main_closure, @object
362Main_main_closure:
363        .long   Main_main_info
364        .long   0
365.text
366        .align 4,0x90
367        .long   Main_main_srt-(Main_main_info)+0
368        .long   65539
369        .long   0
370        .long   65551
371.globl Main_main_info
372.type Main_main_info, @object
373Main_main_info:
374.Lc1TI:
375        jmp Main_main1_info
376        .size Main_main_info, .-Main_main_info
377.section .data
378        .align 4
379.align 1
380Main_main3_srt:
381        .long   base_GHCziTopHandler_runMainIO1_closure
382        .long   Main_main1_closure
383.data
384        .align 4
385.align 1
386.globl Main_main3_closure
387.type Main_main3_closure, @object
388Main_main3_closure:
389        .long   Main_main3_info
390        .long   0
391.text
392        .align 4,0x90
393        .long   Main_main3_srt-(Main_main3_info)+0
394        .long   65539
395        .long   0
396        .long   196623
397.globl Main_main3_info
398.type Main_main3_info, @object
399Main_main3_info:
400.Lc1TN:
401        leal -4(%ebp),%eax
402        cmpl 84(%ebx),%eax
403        jb .Lc1TQ
404        movl $Main_main1_closure+1,-4(%ebp)
405        addl $-4,%ebp
406        jmp base_GHCziTopHandler_runMainIO1_info
407.Lc1TQ:
408        movl $Main_main3_closure,%esi
409        jmp *-4(%ebx)
410        .size Main_main3_info, .-Main_main3_info
411.section .data
412        .align 4
413.align 1
414ZCMain_main_srt:
415        .long   Main_main3_closure
416.data
417        .align 4
418.align 1
419.globl ZCMain_main_closure
420.type ZCMain_main_closure, @object
421ZCMain_main_closure:
422        .long   ZCMain_main_info
423        .long   0
424.text
425        .align 4,0x90
426        .long   ZCMain_main_srt-(ZCMain_main_info)+0
427        .long   65539
428        .long   0
429        .long   65551
430.globl ZCMain_main_info
431.type ZCMain_main_info, @object
432ZCMain_main_info:
433.Lc1TV:
434        jmp Main_main3_info
435        .size ZCMain_main_info, .-ZCMain_main_info
436
437
438Linking num ...