[project @ 1997-09-05 14:11:05 by simonm]
[ghc-hetmet.git] / ghc / tests / ccall / should_compile / cc006.stderr
1
2
3 ================================================================================
4 STG syntax:
5 a{-r5u,x-} =
6      [] \r [$x0_s1iK]
7         case $x0_s1iK ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-} of {
8             -- lvs: [$x0_s1iK]; rhs lvs: []; uniq: c1pz
9           STBase.S#{-5D,w-}{i} $x1_s1jb ->
10               case
11                   _ccall_ a [(STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-})]# [$x1_s1jb] ::STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}
12               of {
13                   -- lvs: [$x1_s1jb]; rhs lvs: []; uniq: c1pA
14                 STBase.StateAndInt#{-5v,w-}{i} $x2_s1jl $x3_s1ja ->
15                     let { $x4_s1jL =  PrelBase.I#{-5b,w-}{i}! [$x3_s1ja]; } in
16                     let { $x5_s1jK =  STBase.S#{-5D,w-}{i}! [$x2_s1jl];
17                     } in  PrelTup.(,){-62,w-}{i}! [$x4_s1jL $x5_s1jK];
18               };
19         };
20 b{-r5v,x-} =
21      [] \r [$x0_s1jJ]
22         case $x0_s1jJ ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-} of {
23             -- lvs: [$x0_s1jJ]; rhs lvs: []; uniq: c1pB
24           STBase.S#{-5D,w-}{i} $x1_s1kc ->
25               case
26                   _ccall_ b [(Foreign.StateAndStablePtr#{-3J,W-} GHC.RealWorld{-3s,W-} PrelBase.Int{-3g,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-})]# [$x1_s1kc] ::Foreign.StateAndStablePtr#{-3J,W-} GHC.RealWorld{-3s,W-} PrelBase.Int{-3g,W-}
27               of {
28                   -- lvs: [$x1_s1kc]; rhs lvs: []; uniq: c1pC
29                 Foreign.StateAndStablePtr#{-5B,w-}{i} $x2_s1km $x3_s1kb ->
30                     let { $x4_s1kO =  Foreign.StablePtr{-5o,w-}{i}! [$x3_s1kb]; } in
31                     let { $x5_s1kN =  STBase.S#{-5D,w-}{i}! [$x2_s1km];
32                     } in  PrelTup.(,){-62,w-}{i}! [$x4_s1kO $x5_s1kN];
33               };
34         };
35 c{-r5w,x-} =
36      [] \r [$x0_s1kX]
37         let {
38           stg_c1oM =
39               (False, True, False, False, True) [$x0_s1kX] \r [$x1_s1kM]
40                   case
41                       $x1_s1kM{-lvs:$x0_s1kX-} ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
42                   of {
43                       -- lvs: [$x1_s1kM $x0_s1kX]; rhs lvs: [$x0_s1kX]; uniq: c1pD
44                     STBase.S#{-5D,w-}{i} $x2_s1kY ->
45                         case $x0_s1kX{-lvs:$x2_s1kY-} ::Foreign.ForeignObj{-3l,W-} of {
46                             -- lvs: [$x0_s1kX $x2_s1kY]; rhs lvs: [$x2_s1kY]; uniq: c1pE
47                           Foreign.ForeignObj{-5f,w-}{i} $x3_s1lo ->
48                               case
49                                   _ccall_ c [(STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-}) GHC.ForeignObj#{-3k,W-}]# [$x2_s1kY $x3_s1lo] ::STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}
50                               of {
51                                   -- lvs: [$x2_s1kY $x3_s1lo]; rhs lvs: []; uniq: c1pF
52                                 STBase.StateAndInt#{-5v,w-}{i} $x4_s1lz $x5_s1lp ->
53                                     let { $x6_s1m3 =  PrelBase.I#{-5b,w-}{i}! [$x5_s1lp]; } in
54                                     let { $x7_s1m2 =  STBase.S#{-5D,w-}{i}! [$x4_s1lz];
55                                     } in  PrelTup.(,){-62,w-}{i}! [$x6_s1m3 $x7_s1m2];
56                               };
57                         };
58                   };
59         } in  stg_c1oM;
60 d{-r5x,x-} =
61      [] \r [$x0_s1mc]
62         let {
63           stg_c1oc =
64               (False, True, False, False, True) [$x0_s1mc] \r [$x1_s1m1]
65                   case
66                       $x1_s1m1{-lvs:$x0_s1mc-} ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
67                   of {
68                       -- lvs: [$x1_s1m1 $x0_s1mc]; rhs lvs: [$x0_s1mc]; uniq: c1pG
69                     STBase.S#{-5D,w-}{i} $x2_s1md ->
70                         case
71                             $x0_s1mc{-lvs:$x2_s1md-} ::Foreign.StablePtr{-3w,W-} PrelBase.Int{-3g,W-}
72                         of {
73                             -- lvs: [$x0_s1mc $x2_s1md]; rhs lvs: [$x2_s1md]; uniq: c1pH
74                           Foreign.StablePtr{-5o,w-}{i} $x3_s1mD ->
75                               case
76                                   _ccall_ d [(STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}) (GHC.State#{-3L,W-} GHC.RealWorld{-3s,W-}) (GHC.StablePtr#{-3v,W-} PrelBase.Int{-3g,W-})]# [$x2_s1md $x3_s1mD] ::STBase.StateAndInt#{-3D,W-} GHC.RealWorld{-3s,W-}
77                               of {
78                                   -- lvs: [$x2_s1md $x3_s1mD]; rhs lvs: []; uniq: c1pI
79                                 STBase.StateAndInt#{-5v,w-}{i} $x4_s1mO $x5_s1mE ->
80                                     let { $x6_s1n5 =  PrelBase.I#{-5b,w-}{i}! [$x5_s1mE]; } in
81                                     let { $x7_s1n6 =  STBase.S#{-5D,w-}{i}! [$x4_s1mO];
82                                     } in  PrelTup.(,){-62,w-}{i}! [$x6_s1n5 $x7_s1n6];
83                               };
84                         };
85                   };
86         } in  stg_c1oc;
87
88
89 ================================================================================
90 Flat Abstract C:
91 IFN_(ret_c1pz) {
92 ED_RO_(PrelBase_IZh_con_info);
93 ED_(STBase_SZh_static_closure);
94 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
95 I_ s1ja_;
96         FB_
97         HEAP_CHK(0,(_FHS+1),0);
98         {
99         I_ _ccall_result;
100         CALLER_SAVE_Base
101         CALLER_SAVE_SpA
102         CALLER_SAVE_SuA
103         CALLER_SAVE_SpB
104         CALLER_SAVE_SuB
105         CALLER_SAVE_Ret
106         CALLER_SAVE_Hp
107         CALLER_SAVE_HpLim
108         _ccall_result = (a());
109         CALLER_RESTORE_Base
110         CALLER_RESTORE_SpA
111         CALLER_RESTORE_SuA
112         CALLER_RESTORE_SpB
113         CALLER_RESTORE_SuB
114         CALLER_RESTORE_Ret
115         CALLER_RESTORE_Hp
116         CALLER_RESTORE_HpLim
117         CALLER_RESTORE_StdUpdRetVec
118         CALLER_RESTORE_StkStub
119         s1ja_=_ccall_result;
120         }
121         SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
122         *Hp=(W_)(s1ja_);
123         R4.p=STBase_SZh_static_closure;
124         R3.p=Hp-_FHS;
125         SpB=SpB-1;
126         R2.d=PrelTup_Z40Z44Z41_inregs_info;
127         GRAN_EXEC(10,2,21,22,0);
128         JMP_(DIRECT((StgRetAddr)(SpB[1])));
129         FE_
130 }
131 UNVECTBL(static,vtbl_c1pz,ret_c1pz)
132 STATIC_ITBL(Test_a_info,Test_a_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
133 FN_(Test_a_entry) {
134 ED_(Test_a_closure);
135 EF_(Test_a_fast1);
136         FB_
137         ARGS_CHK_A_LOAD_NODE(1,Test_a_closure);
138         R1.p=*SpA;
139         SpA=SpA+1;
140         GRAN_EXEC(5,2,1,0,0);
141         JMP_(Test_a_fast1);
142         FE_
143 }
144 FN_(Test_a_fast1) {
145         FB_
146         STK_CHK(1,0,1,0,0,0,0);
147         SpB[1]=(W_)(RetReg);
148         RetReg=(StgRetAddr)UNVEC(ret_c1pz,vtbl_c1pz);
149         SpB=SpB+1;
150         ENT_VIA_NODE();
151         GRAN_EXEC(3,1,1,1,0);
152         JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
153         FE_
154 }
155 SET_STATIC_HDR(Test_a_closure,Test_a_info,0,,ED_RO_)
156 };
157 IFN_(ret_c1pB) {
158 ED_RO_(Foreign_StablePtr_con_info);
159 ED_(STBase_SZh_static_closure);
160 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
161 StgStablePtr s1kb_;
162         FB_
163         HEAP_CHK(0,(_FHS+1),0);
164         {
165         StgStablePtr _ccall_result;
166         CALLER_SAVE_Base
167         CALLER_SAVE_SpA
168         CALLER_SAVE_SuA
169         CALLER_SAVE_SpB
170         CALLER_SAVE_SuB
171         CALLER_SAVE_Ret
172         CALLER_SAVE_Hp
173         CALLER_SAVE_HpLim
174         _ccall_result = (b());
175         CALLER_RESTORE_Base
176         CALLER_RESTORE_SpA
177         CALLER_RESTORE_SuA
178         CALLER_RESTORE_SpB
179         CALLER_RESTORE_SuB
180         CALLER_RESTORE_Ret
181         CALLER_RESTORE_Hp
182         CALLER_RESTORE_HpLim
183         CALLER_RESTORE_StdUpdRetVec
184         CALLER_RESTORE_StkStub
185         s1kb_=_ccall_result;
186         }
187         SET_SPEC_HDR(Hp-_FHS,Foreign_StablePtr_con_info,0,1,0);
188         *Hp=(W_)(s1kb_);
189         R4.p=STBase_SZh_static_closure;
190         R3.p=Hp-_FHS;
191         SpB=SpB-1;
192         R2.d=PrelTup_Z40Z44Z41_inregs_info;
193         GRAN_EXEC(10,2,21,22,0);
194         JMP_(DIRECT((StgRetAddr)(SpB[1])));
195         FE_
196 }
197 UNVECTBL(static,vtbl_c1pB,ret_c1pB)
198 STATIC_ITBL(Test_b_info,Test_b_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
199 FN_(Test_b_entry) {
200 ED_(Test_b_closure);
201 EF_(Test_b_fast1);
202         FB_
203         ARGS_CHK_A_LOAD_NODE(1,Test_b_closure);
204         R1.p=*SpA;
205         SpA=SpA+1;
206         GRAN_EXEC(5,2,1,0,0);
207         JMP_(Test_b_fast1);
208         FE_
209 }
210 FN_(Test_b_fast1) {
211         FB_
212         STK_CHK(1,0,1,0,0,0,0);
213         SpB[1]=(W_)(RetReg);
214         RetReg=(StgRetAddr)UNVEC(ret_c1pB,vtbl_c1pB);
215         SpB=SpB+1;
216         ENT_VIA_NODE();
217         GRAN_EXEC(3,1,1,1,0);
218         JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
219         FE_
220 }
221 SET_STATIC_HDR(Test_b_closure,Test_b_info,0,,ED_RO_)
222 };
223 IFN_(ret_c1pE) {
224 ED_RO_(PrelBase_IZh_con_info);
225 ED_(STBase_SZh_static_closure);
226 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
227 I_ s1lp_;
228         FB_
229         HEAP_CHK(4,(_FHS+1),0);
230         {
231         I_ _ccall_result;
232         StgForeignObj _ccall_arg1=ForeignObj_CLOSURE_DATA(R3.p);
233         CALLER_SAVE_Base
234         CALLER_SAVE_SpA
235         CALLER_SAVE_SuA
236         CALLER_SAVE_SpB
237         CALLER_SAVE_SuB
238         CALLER_SAVE_Ret
239         CALLER_SAVE_Hp
240         CALLER_SAVE_HpLim
241         _ccall_result = (c((_ccall_arg1)));
242         CALLER_RESTORE_Base
243         CALLER_RESTORE_SpA
244         CALLER_RESTORE_SuA
245         CALLER_RESTORE_SpB
246         CALLER_RESTORE_SuB
247         CALLER_RESTORE_Ret
248         CALLER_RESTORE_Hp
249         CALLER_RESTORE_HpLim
250         CALLER_RESTORE_StdUpdRetVec
251         CALLER_RESTORE_StkStub
252         s1lp_=_ccall_result;
253         }
254         SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
255         *Hp=(W_)(s1lp_);
256         R4.p=STBase_SZh_static_closure;
257         R3.p=Hp-_FHS;
258         SpB=SpB-1;
259         R2.d=PrelTup_Z40Z44Z41_inregs_info;
260         GRAN_EXEC(10,2,22,22,0);
261         JMP_(DIRECT((StgRetAddr)(SpB[1])));
262         FE_
263 }
264 UNVECTBL(static,vtbl_c1pE,ret_c1pE)
265 IFN_(ret_c1pD) {
266         FB_
267         RetReg=(StgRetAddr)UNVEC(ret_c1pE,vtbl_c1pE);
268         R1.p=*SpA;
269         SpA=SpA+1;
270         ENT_VIA_NODE();
271         GRAN_EXEC(3,1,2,1,0);
272         JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
273         FE_
274 }
275 UNVECTBL(static,vtbl_c1pD,ret_c1pD)
276 SPEC_N_ITBL(c1oM_info,c1oM_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
277 IFN_(c1oM_entry) {
278 IF_(c1oM_fast1);
279         FB_
280         ARGS_CHK_A(1);
281         R2.p=*SpA;
282         SpA=SpA+1;
283         GRAN_EXEC(5,2,1,0,0);
284         JMP_(c1oM_fast1);
285         FE_
286 }
287 IFN_(c1oM_fast1) {
288         FB_
289         STK_CHK(3,1,1,0,0,0,1);
290         SpB[1]=(W_)(RetReg);
291         RetReg=(StgRetAddr)UNVEC(ret_c1pD,vtbl_c1pD);
292         SpA[-1]=(P_)(R1.p[_FHS]);
293         R1=R2;
294         SpA=SpA-1;
295         SpB=SpB+1;
296         ENT_VIA_NODE();
297         GRAN_EXEC(5,1,2,2,0);
298         JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
299         FE_
300 }
301 STATIC_ITBL(Test_c_info,Test_c_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
302 FN_(Test_c_entry) {
303 ED_(Test_c_closure);
304 EF_(Test_c_fast1);
305         FB_
306         ARGS_CHK_A_LOAD_NODE(1,Test_c_closure);
307         R1.p=*SpA;
308         SpA=SpA+1;
309         GRAN_EXEC(5,2,1,0,0);
310         JMP_(Test_c_fast1);
311         FE_
312 }
313 FN_(Test_c_fast1) {
314 ID_RO_(c1oM_info);
315 IF_(c1oM_entry);
316         FB_
317         HEAP_CHK(1,(_FHS+1),0);
318         SET_SPEC_HDR(Hp-_FHS,c1oM_info,0,1,1);
319         *Hp=(W_)(R1.p);
320         R1.p=Hp-_FHS;
321         GRAN_EXEC(5,2,0,2,0);
322         JMP_(c1oM_entry);
323         FE_
324 }
325 SET_STATIC_HDR(Test_c_closure,Test_c_info,0,,ED_RO_)
326 };
327 IFN_(ret_c1pH) {
328 ED_RO_(PrelBase_IZh_con_info);
329 ED_(STBase_SZh_static_closure);
330 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
331 I_ s1mE_;
332         FB_
333         HEAP_CHK(0,(_FHS+1),0);
334         {
335         I_ _ccall_result;
336         StgStablePtr _ccall_arg1=R3.i;
337         CALLER_SAVE_Base
338         CALLER_SAVE_SpA
339         CALLER_SAVE_SuA
340         CALLER_SAVE_SpB
341         CALLER_SAVE_SuB
342         CALLER_SAVE_Ret
343         CALLER_SAVE_Hp
344         CALLER_SAVE_HpLim
345         _ccall_result = (d((_ccall_arg1)));
346         CALLER_RESTORE_Base
347         CALLER_RESTORE_SpA
348         CALLER_RESTORE_SuA
349         CALLER_RESTORE_SpB
350         CALLER_RESTORE_SuB
351         CALLER_RESTORE_Ret
352         CALLER_RESTORE_Hp
353         CALLER_RESTORE_HpLim
354         CALLER_RESTORE_StdUpdRetVec
355         CALLER_RESTORE_StkStub
356         s1mE_=_ccall_result;
357         }
358         SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
359         *Hp=(W_)(s1mE_);
360         R4.p=STBase_SZh_static_closure;
361         R3.p=Hp-_FHS;
362         SpB=SpB-1;
363         R2.d=PrelTup_Z40Z44Z41_inregs_info;
364         GRAN_EXEC(10,2,22,22,0);
365         JMP_(DIRECT((StgRetAddr)(SpB[1])));
366         FE_
367 }
368 UNVECTBL(static,vtbl_c1pH,ret_c1pH)
369 IFN_(ret_c1pG) {
370         FB_
371         RetReg=(StgRetAddr)UNVEC(ret_c1pH,vtbl_c1pH);
372         R1.p=*SpA;
373         SpA=SpA+1;
374         ENT_VIA_NODE();
375         GRAN_EXEC(3,1,2,1,0);
376         JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
377         FE_
378 }
379 UNVECTBL(static,vtbl_c1pG,ret_c1pG)
380 SPEC_N_ITBL(c1oc_info,c1oc_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
381 IFN_(c1oc_entry) {
382 IF_(c1oc_fast1);
383         FB_
384         ARGS_CHK_A(1);
385         R2.p=*SpA;
386         SpA=SpA+1;
387         GRAN_EXEC(5,2,1,0,0);
388         JMP_(c1oc_fast1);
389         FE_
390 }
391 IFN_(c1oc_fast1) {
392         FB_
393         STK_CHK(3,1,1,0,0,0,1);
394         SpB[1]=(W_)(RetReg);
395         RetReg=(StgRetAddr)UNVEC(ret_c1pG,vtbl_c1pG);
396         SpA[-1]=(P_)(R1.p[_FHS]);
397         R1=R2;
398         SpA=SpA-1;
399         SpB=SpB+1;
400         ENT_VIA_NODE();
401         GRAN_EXEC(5,1,2,2,0);
402         JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
403         FE_
404 }
405 STATIC_ITBL(Test_d_info,Test_d_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
406 FN_(Test_d_entry) {
407 ED_(Test_d_closure);
408 EF_(Test_d_fast1);
409         FB_
410         ARGS_CHK_A_LOAD_NODE(1,Test_d_closure);
411         R1.p=*SpA;
412         SpA=SpA+1;
413         GRAN_EXEC(5,2,1,0,0);
414         JMP_(Test_d_fast1);
415         FE_
416 }
417 FN_(Test_d_fast1) {
418 ID_RO_(c1oc_info);
419 IF_(c1oc_entry);
420         FB_
421         HEAP_CHK(1,(_FHS+1),0);
422         SET_SPEC_HDR(Hp-_FHS,c1oc_info,0,1,1);
423         *Hp=(W_)(R1.p);
424         R1.p=Hp-_FHS;
425         GRAN_EXEC(5,2,0,2,0);
426         JMP_(c1oc_entry);
427         FE_
428 }
429 SET_STATIC_HDR(Test_d_closure,Test_d_info,0,,ED_RO_)
430 };
431 ghc: module version changed to 1; reason: no old .hi file