[project @ 1997-09-05 14:11:05 by simonm]
[ghc-hetmet.git] / ghc / tests / ccall / should_compile / cc006.stderr
index df765d7..8717e5c 100644 (file)
 
-NOTE: Simplifier still going after 4 iterations; bailing out.
-
 
 ================================================================================
 STG syntax:
-d{-r5y,x-} =
-     [] \r [x_s1vw]
+a{-r5u,x-} =
+     [] \r [$x0_s1iK]
+       case $x0_s1iK ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-} of {
+           -- lvs: [$x0_s1iK]; rhs lvs: []; uniq: c1pz
+         STBase.S#{-5D,w-}{i} $x1_s1jb ->
+             case
+                 _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-}
+             of {
+                 -- lvs: [$x1_s1jb]; rhs lvs: []; uniq: c1pA
+               STBase.StateAndInt#{-5v,w-}{i} $x2_s1jl $x3_s1ja ->
+                   let { $x4_s1jL =  PrelBase.I#{-5b,w-}{i}! [$x3_s1ja]; } in
+                   let { $x5_s1jK =  STBase.S#{-5D,w-}{i}! [$x2_s1jl];
+                   } in  PrelTup.(,){-62,w-}{i}! [$x4_s1jL $x5_s1jK];
+             };
+       };
+b{-r5v,x-} =
+     [] \r [$x0_s1jJ]
+       case $x0_s1jJ ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-} of {
+           -- lvs: [$x0_s1jJ]; rhs lvs: []; uniq: c1pB
+         STBase.S#{-5D,w-}{i} $x1_s1kc ->
+             case
+                 _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-}
+             of {
+                 -- lvs: [$x1_s1kc]; rhs lvs: []; uniq: c1pC
+               Foreign.StateAndStablePtr#{-5B,w-}{i} $x2_s1km $x3_s1kb ->
+                   let { $x4_s1kO =  Foreign.StablePtr{-5o,w-}{i}! [$x3_s1kb]; } in
+                   let { $x5_s1kN =  STBase.S#{-5D,w-}{i}! [$x2_s1km];
+                   } in  PrelTup.(,){-62,w-}{i}! [$x4_s1kO $x5_s1kN];
+             };
+       };
+c{-r5w,x-} =
+     [] \r [$x0_s1kX]
        let {
-         stg_c1Fh =
-             (False, True, False, False, True) [x_s1vw] \r [ds_s1vn]
+         stg_c1oM =
+             (False, True, False, False, True) [$x0_s1kX] \r [$x1_s1kM]
                  case
-                     ds_s1vn{-lvs:x_s1vw-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                     $x1_s1kM{-lvs:$x0_s1kX-} ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                  of {
-                     -- lvs: [ds_s1vn x_s1vw]; rhs lvs: [x_s1vw]; uniq: c1Fi
-                   STBase.S#{-5D,p-}{i} ds_s1vx ->
-                       case
-                           x_s1vw{-lvs:ds_s1vx-} ::Foreign.StablePtr{-3w,p-} PrelBase.Int{-3g,p-}
-                       of {
-                           -- lvs: [x_s1vw ds_s1vx]; rhs lvs: [ds_s1vx]; uniq: c1Fj
-                         Foreign.StablePtr{-5o,p-}{i} ds_s1vX ->
+                     -- lvs: [$x1_s1kM $x0_s1kX]; rhs lvs: [$x0_s1kX]; uniq: c1pD
+                   STBase.S#{-5D,w-}{i} $x2_s1kY ->
+                       case $x0_s1kX{-lvs:$x2_s1kY-} ::Foreign.ForeignObj{-3l,W-} of {
+                           -- lvs: [$x0_s1kX $x2_s1kY]; rhs lvs: [$x2_s1kY]; uniq: c1pE
+                         Foreign.ForeignObj{-5f,w-}{i} $x3_s1lo ->
                              case
-                                 _ccall_ d [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) (GHC.StablePtr#{-3v,p-} PrelBase.Int{-3g,p-})]# [ds_s1vx ds_s1vX] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
+                                 _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-}
                              of {
-                                 -- lvs: [ds_s1vx ds_s1vX]; rhs lvs: []; uniq: c1Fk
-                               STBase.StateAndInt#{-5v,p-}{i} ds_s1w8 ds_s1vY ->
-                                   let {
-                                     ds_s1wC =
-                                          PrelBase.I#{-5b,p-}{i}! [ds_s1vY]; } in
-                                   let {
-                                     ds_s1wB =
-                                          STBase.S#{-5D,p-}{i}! [ds_s1w8];
-                                   } in 
-                                     PrelTup.(,){-62,p-}{i}! [ds_s1wC ds_s1wB];
+                                 -- lvs: [$x2_s1kY $x3_s1lo]; rhs lvs: []; uniq: c1pF
+                               STBase.StateAndInt#{-5v,w-}{i} $x4_s1lz $x5_s1lp ->
+                                   let { $x6_s1m3 =  PrelBase.I#{-5b,w-}{i}! [$x5_s1lp]; } in
+                                   let { $x7_s1m2 =  STBase.S#{-5D,w-}{i}! [$x4_s1lz];
+                                   } in  PrelTup.(,){-62,w-}{i}! [$x6_s1m3 $x7_s1m2];
                              };
                        };
                  };
-       } in 
-         stg_c1Fh;
-c{-r5x,x-} =
-     [] \r [x_s1wL]
+       } in  stg_c1oM;
+d{-r5x,x-} =
+     [] \r [$x0_s1mc]
        let {
-         stg_c1EH =
-             (False, True, False, False, True) [x_s1wL] \r [ds_s1wA]
+         stg_c1oc =
+             (False, True, False, False, True) [$x0_s1mc] \r [$x1_s1m1]
                  case
-                     ds_s1wA{-lvs:x_s1wL-} ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-}
+                     $x1_s1m1{-lvs:$x0_s1mc-} ::STBase.State{-3M,W-} GHC.RealWorld{-3s,W-}
                  of {
-                     -- lvs: [ds_s1wA x_s1wL]; rhs lvs: [x_s1wL]; uniq: c1Fl
-                   STBase.S#{-5D,p-}{i} ds_s1wM ->
-                       case x_s1wL{-lvs:ds_s1wM-} ::Foreign.ForeignObj{-3l,p-} of {
-                           -- lvs: [x_s1wL ds_s1wM]; rhs lvs: [ds_s1wM]; uniq: c1Fm
-                         Foreign.ForeignObj{-5f,p-}{i} ds_s1xc ->
+                     -- lvs: [$x1_s1m1 $x0_s1mc]; rhs lvs: [$x0_s1mc]; uniq: c1pG
+                   STBase.S#{-5D,w-}{i} $x2_s1md ->
+                       case
+                           $x0_s1mc{-lvs:$x2_s1md-} ::Foreign.StablePtr{-3w,W-} PrelBase.Int{-3g,W-}
+                       of {
+                           -- lvs: [$x0_s1mc $x2_s1md]; rhs lvs: [$x2_s1md]; uniq: c1pH
+                         Foreign.StablePtr{-5o,w-}{i} $x3_s1mD ->
                              case
-                                 _ccall_ c [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-}) GHC.ForeignObj#{-3k,p-}]# [ds_s1wM ds_s1xc] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
+                                 _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-}
                              of {
-                                 -- lvs: [ds_s1wM ds_s1xc]; rhs lvs: []; uniq: c1Fn
-                               STBase.StateAndInt#{-5v,p-}{i} ds_s1xn ds_s1xd ->
-                                   let {
-                                     ds_s1xL =
-                                          PrelBase.I#{-5b,p-}{i}! [ds_s1xd]; } in
-                                   let {
-                                     ds_s1xK =
-                                          STBase.S#{-5D,p-}{i}! [ds_s1xn];
-                                   } in 
-                                     PrelTup.(,){-62,p-}{i}! [ds_s1xL ds_s1xK];
+                                 -- lvs: [$x2_s1md $x3_s1mD]; rhs lvs: []; uniq: c1pI
+                               STBase.StateAndInt#{-5v,w-}{i} $x4_s1mO $x5_s1mE ->
+                                   let { $x6_s1n5 =  PrelBase.I#{-5b,w-}{i}! [$x5_s1mE]; } in
+                                   let { $x7_s1n6 =  STBase.S#{-5D,w-}{i}! [$x4_s1mO];
+                                   } in  PrelTup.(,){-62,w-}{i}! [$x6_s1n5 $x7_s1n6];
                              };
                        };
                  };
-       } in 
-         stg_c1EH;
-s_s1sE =
-     [] \r [ds_s1xJ]
-       case ds_s1xJ ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-} of {
-           -- lvs: [ds_s1xJ]; rhs lvs: []; uniq: c1Fo
-         STBase.S#{-5D,p-}{i} ds_s1yc ->
-             case
-                 _ccall_ b [(Foreign.StateAndStablePtr#{-3J,p-} GHC.RealWorld{-3s,p-} PrelBase.Int{-3g,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]# [ds_s1yc] ::Foreign.StateAndStablePtr#{-3J,p-} GHC.RealWorld{-3s,p-} PrelBase.Int{-3g,p-}
-             of {
-                 -- lvs: [ds_s1yc]; rhs lvs: []; uniq: c1Fp
-               Foreign.StateAndStablePtr#{-5B,p-}{i} ds_s1ym ds_s1yb ->
-                   let {
-                     ds_s1yC =
-                          Foreign.StablePtr{-5o,p-}{i}! [ds_s1yb]; } in
-                   let {
-                     ds_s1yB =
-                          STBase.S#{-5D,p-}{i}! [ds_s1ym];
-                   } in 
-                     PrelTup.(,){-62,p-}{i}! [ds_s1yC ds_s1yB];
-             };
-       };
-s_s1zw =
-    (False, True, False, False, True) [] \r [ds_s1yK]
-       case ds_s1yK ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-} of {
-           -- lvs: [ds_s1yK]; rhs lvs: []; uniq: c1Fq
-         STBase.S#{-5D,p-}{i} ds_s1zb ->
-             case
-                 _ccall_ b [(Foreign.StateAndStablePtr#{-3J,p-} GHC.RealWorld{-3s,p-} PrelBase.Int{-3g,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]# [ds_s1zb] ::Foreign.StateAndStablePtr#{-3J,p-} GHC.RealWorld{-3s,p-} PrelBase.Int{-3g,p-}
-             of {
-                 -- lvs: [ds_s1zb]; rhs lvs: []; uniq: c1Fr
-               Foreign.StateAndStablePtr#{-5B,p-}{i} ds_s1zl ds_s1za ->
-                   let {
-                     ds_s1zL =
-                          Foreign.StablePtr{-5o,p-}{i}! [ds_s1za]; } in
-                   let {
-                     ds_s1zK =
-                          STBase.S#{-5D,p-}{i}! [ds_s1zl];
-                   } in 
-                     PrelTup.(,){-62,p-}{i}! [ds_s1zL ds_s1zK];
-             };
-       };
-b{-r5w,x-} =
-     [] \u []
-       s_s1zw;
-s_s1uE =
-     [] \r [ds_s1zJ]
-       case ds_s1zJ ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-} of {
-           -- lvs: [ds_s1zJ]; rhs lvs: []; uniq: c1Fs
-         STBase.S#{-5D,p-}{i} ds_s1Ac ->
-             case
-                 _ccall_ a [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]# [ds_s1Ac] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
-             of {
-                 -- lvs: [ds_s1Ac]; rhs lvs: []; uniq: c1Ft
-               STBase.StateAndInt#{-5v,p-}{i} ds_s1Am ds_s1Ab ->
-                   let {
-                     ds_s1AC =
-                          PrelBase.I#{-5b,p-}{i}! [ds_s1Ab]; } in
-                   let {
-                     ds_s1AB =
-                          STBase.S#{-5D,p-}{i}! [ds_s1Am];
-                   } in 
-                     PrelTup.(,){-62,p-}{i}! [ds_s1AC ds_s1AB];
-             };
-       };
-s_s1Bw =
-    (False, True, False, False, True) [] \r [ds_s1AK]
-       case ds_s1AK ::STBase.State{-3M,p-} GHC.RealWorld{-3s,p-} of {
-           -- lvs: [ds_s1AK]; rhs lvs: []; uniq: c1Fu
-         STBase.S#{-5D,p-}{i} ds_s1Bb ->
-             case
-                 _ccall_ a [(STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}) (GHC.State#{-3L,p-} GHC.RealWorld{-3s,p-})]# [ds_s1Bb] ::STBase.StateAndInt#{-3D,p-} GHC.RealWorld{-3s,p-}
-             of {
-                 -- lvs: [ds_s1Bb]; rhs lvs: []; uniq: c1Fv
-               STBase.StateAndInt#{-5v,p-}{i} ds_s1Bl ds_s1Ba ->
-                   let {
-                     ds_s1BE =
-                          PrelBase.I#{-5b,p-}{i}! [ds_s1Ba]; } in
-                   let {
-                     ds_s1BF =
-                          STBase.S#{-5D,p-}{i}! [ds_s1Bl];
-                   } in 
-                     PrelTup.(,){-62,p-}{i}! [ds_s1BE ds_s1BF];
-             };
-       };
-a{-r5v,x-} =
-     [] \u []
-       s_s1Bw;
+       } in  stg_c1oc;
 
 
 ================================================================================
 Flat Abstract C:
-IFN_(ret_c1Fj) {
+IFN_(ret_c1pz) {
 ED_RO_(PrelBase_IZh_con_info);
 ED_(STBase_SZh_static_closure);
 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-I_ s1vY;
+I_ s1ja_;
        FB_
        HEAP_CHK(0,(_FHS+1),0);
        {
        I_ _ccall_result;
-       StgStablePtr _ccall_arg1=R3.i;
        CALLER_SAVE_Base
        CALLER_SAVE_SpA
        CALLER_SAVE_SuA
@@ -176,111 +105,7 @@ I_ s1vY;
        CALLER_SAVE_Ret
        CALLER_SAVE_Hp
        CALLER_SAVE_HpLim
-       _ccall_result = (d((_ccall_arg1)));
-       CALLER_RESTORE_Base
-       CALLER_RESTORE_SpA
-       CALLER_RESTORE_SuA
-       CALLER_RESTORE_SpB
-       CALLER_RESTORE_SuB
-       CALLER_RESTORE_Ret
-       CALLER_RESTORE_Hp
-       CALLER_RESTORE_HpLim
-       CALLER_RESTORE_StdUpdRetVec
-       CALLER_RESTORE_StkStub
-       s1vY=_ccall_result;
-       }
-       SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
-       *Hp=(W_)(s1vY);
-       R4.p=STBase_SZh_static_closure;
-       R3.p=Hp-_FHS;
-       SpB=SpB-1;
-       R2.d=PrelTup_Z40Z44Z41_inregs_info;
-       GRAN_EXEC(10,2,22,22,0);
-       JMP_(DIRECT((StgRetAddr)(SpB[1])));
-       FE_
-}
-UNVECTBL(static,vtbl_c1Fj,ret_c1Fj)
-IFN_(ret_c1Fi) {
-       FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fj,vtbl_c1Fj);
-       R1.p=*SpA;
-       SpA=SpA+1;
-       ENT_VIA_NODE();
-       GRAN_EXEC(3,1,2,1,0);
-       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
-       FE_
-}
-UNVECTBL(static,vtbl_c1Fi,ret_c1Fi)
-SPEC_N_ITBL(c1Fh_info,c1Fh_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
-IFN_(c1Fh_entry) {
-IF_(c1Fh_fast1);
-       FB_
-       ARGS_CHK_A(1);
-       R2.p=*SpA;
-       SpA=SpA+1;
-       GRAN_EXEC(5,2,1,0,0);
-       JMP_(c1Fh_fast1);
-       FE_
-}
-IFN_(c1Fh_fast1) {
-       FB_
-       STK_CHK(3,1,1,0,0,0,1);
-       SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fi,vtbl_c1Fi);
-       SpA[-1]=(P_)(R1.p[_FHS]);
-       R1=R2;
-       SpA=SpA-1;
-       SpB=SpB+1;
-       ENT_VIA_NODE();
-       GRAN_EXEC(5,1,2,2,0);
-       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
-       FE_
-}
-STATIC_ITBL(Test_d_info,Test_d_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
-FN_(Test_d_entry) {
-ED_(Test_d_closure);
-EF_(Test_d_fast1);
-       FB_
-       ARGS_CHK_A_LOAD_NODE(1,Test_d_closure);
-       R1.p=*SpA;
-       SpA=SpA+1;
-       GRAN_EXEC(5,2,1,0,0);
-       JMP_(Test_d_fast1);
-       FE_
-}
-FN_(Test_d_fast1) {
-ID_RO_(c1Fh_info);
-IF_(c1Fh_entry);
-       FB_
-       HEAP_CHK(1,(_FHS+1),0);
-       SET_SPEC_HDR(Hp-_FHS,c1Fh_info,0,1,1);
-       *Hp=(W_)(R1.p);
-       R1.p=Hp-_FHS;
-       GRAN_EXEC(5,2,0,2,0);
-       JMP_(c1Fh_entry);
-       FE_
-}
-SET_STATIC_HDR(Test_d_closure,Test_d_info,0,,ED_RO_)
-};
-IFN_(ret_c1Fm) {
-ED_RO_(PrelBase_IZh_con_info);
-ED_(STBase_SZh_static_closure);
-ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-I_ s1xd;
-       FB_
-       HEAP_CHK(4,(_FHS+1),0);
-       {
-       I_ _ccall_result;
-       StgForeignObj _ccall_arg1=ForeignObj_CLOSURE_DATA(R3.p);
-       CALLER_SAVE_Base
-       CALLER_SAVE_SpA
-       CALLER_SAVE_SuA
-       CALLER_SAVE_SpB
-       CALLER_SAVE_SuB
-       CALLER_SAVE_Ret
-       CALLER_SAVE_Hp
-       CALLER_SAVE_HpLim
-       _ccall_result = (c((_ccall_arg1)));
+       _ccall_result = (a());
        CALLER_RESTORE_Base
        CALLER_RESTORE_SpA
        CALLER_RESTORE_SuA
@@ -291,86 +116,49 @@ I_ s1xd;
        CALLER_RESTORE_HpLim
        CALLER_RESTORE_StdUpdRetVec
        CALLER_RESTORE_StkStub
-       s1xd=_ccall_result;
+       s1ja_=_ccall_result;
        }
        SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
-       *Hp=(W_)(s1xd);
+       *Hp=(W_)(s1ja_);
        R4.p=STBase_SZh_static_closure;
        R3.p=Hp-_FHS;
        SpB=SpB-1;
        R2.d=PrelTup_Z40Z44Z41_inregs_info;
-       GRAN_EXEC(10,2,22,22,0);
+       GRAN_EXEC(10,2,21,22,0);
        JMP_(DIRECT((StgRetAddr)(SpB[1])));
        FE_
 }
-UNVECTBL(static,vtbl_c1Fm,ret_c1Fm)
-IFN_(ret_c1Fl) {
+UNVECTBL(static,vtbl_c1pz,ret_c1pz)
+STATIC_ITBL(Test_a_info,Test_a_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
+FN_(Test_a_entry) {
+ED_(Test_a_closure);
+EF_(Test_a_fast1);
        FB_
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fm,vtbl_c1Fm);
+       ARGS_CHK_A_LOAD_NODE(1,Test_a_closure);
        R1.p=*SpA;
        SpA=SpA+1;
-       ENT_VIA_NODE();
-       GRAN_EXEC(3,1,2,1,0);
-       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
-       FE_
-}
-UNVECTBL(static,vtbl_c1Fl,ret_c1Fl)
-SPEC_N_ITBL(c1EH_info,c1EH_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
-IFN_(c1EH_entry) {
-IF_(c1EH_fast1);
-       FB_
-       ARGS_CHK_A(1);
-       R2.p=*SpA;
-       SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(c1EH_fast1);
+       JMP_(Test_a_fast1);
        FE_
 }
-IFN_(c1EH_fast1) {
+FN_(Test_a_fast1) {
        FB_
-       STK_CHK(3,1,1,0,0,0,1);
+       STK_CHK(1,0,1,0,0,0,0);
        SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fl,vtbl_c1Fl);
-       SpA[-1]=(P_)(R1.p[_FHS]);
-       R1=R2;
-       SpA=SpA-1;
+       RetReg=(StgRetAddr)UNVEC(ret_c1pz,vtbl_c1pz);
        SpB=SpB+1;
        ENT_VIA_NODE();
-       GRAN_EXEC(5,1,2,2,0);
+       GRAN_EXEC(3,1,1,1,0);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-STATIC_ITBL(Test_c_info,Test_c_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
-FN_(Test_c_entry) {
-ED_(Test_c_closure);
-EF_(Test_c_fast1);
-       FB_
-       ARGS_CHK_A_LOAD_NODE(1,Test_c_closure);
-       R1.p=*SpA;
-       SpA=SpA+1;
-       GRAN_EXEC(5,2,1,0,0);
-       JMP_(Test_c_fast1);
-       FE_
-}
-FN_(Test_c_fast1) {
-ID_RO_(c1EH_info);
-IF_(c1EH_entry);
-       FB_
-       HEAP_CHK(1,(_FHS+1),0);
-       SET_SPEC_HDR(Hp-_FHS,c1EH_info,0,1,1);
-       *Hp=(W_)(R1.p);
-       R1.p=Hp-_FHS;
-       GRAN_EXEC(5,2,0,2,0);
-       JMP_(c1EH_entry);
-       FE_
-}
-SET_STATIC_HDR(Test_c_closure,Test_c_info,0,,ED_RO_)
+SET_STATIC_HDR(Test_a_closure,Test_a_info,0,,ED_RO_)
 };
-IFN_(ret_c1Fo) {
+IFN_(ret_c1pB) {
 ED_RO_(Foreign_StablePtr_con_info);
 ED_(STBase_SZh_static_closure);
 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-StgStablePtr s1yb;
+StgStablePtr s1kb_;
        FB_
        HEAP_CHK(0,(_FHS+1),0);
        {
@@ -394,10 +182,10 @@ StgStablePtr s1yb;
        CALLER_RESTORE_HpLim
        CALLER_RESTORE_StdUpdRetVec
        CALLER_RESTORE_StkStub
-       s1yb=_ccall_result;
+       s1kb_=_ccall_result;
        }
        SET_SPEC_HDR(Hp-_FHS,Foreign_StablePtr_con_info,0,1,0);
-       *Hp=(W_)(s1yb);
+       *Hp=(W_)(s1kb_);
        R4.p=STBase_SZh_static_closure;
        R3.p=Hp-_FHS;
        SpB=SpB-1;
@@ -406,41 +194,42 @@ StgStablePtr s1yb;
        JMP_(DIRECT((StgRetAddr)(SpB[1])));
        FE_
 }
-UNVECTBL(static,vtbl_c1Fo,ret_c1Fo)
-STATIC_ITBL(s1sE_info,s1sE_entry,StdErrorCode,1,-1,STATIC_VHS,0,static const,IF_,0,0,0);
-IFN_(s1sE_entry) {
-ID_(s1sE_closure);
-IF_(s1sE_fast1);
+UNVECTBL(static,vtbl_c1pB,ret_c1pB)
+STATIC_ITBL(Test_b_info,Test_b_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
+FN_(Test_b_entry) {
+ED_(Test_b_closure);
+EF_(Test_b_fast1);
        FB_
-       ARGS_CHK_A_LOAD_NODE(1,s1sE_closure);
+       ARGS_CHK_A_LOAD_NODE(1,Test_b_closure);
        R1.p=*SpA;
        SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(s1sE_fast1);
+       JMP_(Test_b_fast1);
        FE_
 }
-IFN_(s1sE_fast1) {
+FN_(Test_b_fast1) {
        FB_
        STK_CHK(1,0,1,0,0,0,0);
        SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fo,vtbl_c1Fo);
+       RetReg=(StgRetAddr)UNVEC(ret_c1pB,vtbl_c1pB);
        SpB=SpB+1;
        ENT_VIA_NODE();
        GRAN_EXEC(3,1,1,1,0);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-SET_STATIC_HDR(s1sE_closure,s1sE_info,0,static ,ID_RO_)
+SET_STATIC_HDR(Test_b_closure,Test_b_info,0,,ED_RO_)
 };
-IFN_(ret_c1Fq) {
-ED_RO_(Foreign_StablePtr_con_info);
+IFN_(ret_c1pE) {
+ED_RO_(PrelBase_IZh_con_info);
 ED_(STBase_SZh_static_closure);
 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-StgStablePtr s1za;
+I_ s1lp_;
        FB_
-       HEAP_CHK(0,(_FHS+1),0);
+       HEAP_CHK(4,(_FHS+1),0);
        {
-       StgStablePtr _ccall_result;
+       I_ _ccall_result;
+       StgForeignObj _ccall_arg1=ForeignObj_CLOSURE_DATA(R3.p);
        CALLER_SAVE_Base
        CALLER_SAVE_SpA
        CALLER_SAVE_SuA
@@ -449,7 +238,7 @@ StgStablePtr s1za;
        CALLER_SAVE_Ret
        CALLER_SAVE_Hp
        CALLER_SAVE_HpLim
-       _ccall_result = (b());
+       _ccall_result = (c((_ccall_arg1)));
        CALLER_RESTORE_Base
        CALLER_RESTORE_SpA
        CALLER_RESTORE_SuA
@@ -460,138 +249,91 @@ StgStablePtr s1za;
        CALLER_RESTORE_HpLim
        CALLER_RESTORE_StdUpdRetVec
        CALLER_RESTORE_StkStub
-       s1za=_ccall_result;
+       s1lp_=_ccall_result;
        }
-       SET_SPEC_HDR(Hp-_FHS,Foreign_StablePtr_con_info,0,1,0);
-       *Hp=(W_)(s1za);
+       SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
+       *Hp=(W_)(s1lp_);
        R4.p=STBase_SZh_static_closure;
        R3.p=Hp-_FHS;
        SpB=SpB-1;
        R2.d=PrelTup_Z40Z44Z41_inregs_info;
-       GRAN_EXEC(10,2,21,22,0);
+       GRAN_EXEC(10,2,22,22,0);
        JMP_(DIRECT((StgRetAddr)(SpB[1])));
        FE_
 }
-UNVECTBL(static,vtbl_c1Fq,ret_c1Fq)
-STATIC_ITBL(s1zw_info,s1zw_entry,StdErrorCode,1,-1,STATIC_VHS,0,static const,IF_,0,0,0);
-IFN_(s1zw_entry) {
-ID_(s1zw_closure);
-IF_(s1zw_fast1);
+UNVECTBL(static,vtbl_c1pE,ret_c1pE)
+IFN_(ret_c1pD) {
        FB_
-       ARGS_CHK_A_LOAD_NODE(1,s1zw_closure);
+       RetReg=(StgRetAddr)UNVEC(ret_c1pE,vtbl_c1pE);
        R1.p=*SpA;
        SpA=SpA+1;
-       GRAN_EXEC(5,2,1,0,0);
-       JMP_(s1zw_fast1);
-       FE_
-}
-IFN_(s1zw_fast1) {
-       FB_
-       STK_CHK(1,0,1,0,0,0,0);
-       SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fq,vtbl_c1Fq);
-       SpB=SpB+1;
        ENT_VIA_NODE();
-       GRAN_EXEC(3,1,1,1,0);
+       GRAN_EXEC(3,1,2,1,0);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-SET_STATIC_HDR(s1zw_closure,s1zw_info,0,static ,ID_RO_)
-};
-STATIC_ITBL(Test_b_info,Test_b_entry,StdErrorCode,1,-1,(STATIC_VHS+
-                                                       2),0,const,EF_,0,0,0);
-FN_(Test_b_entry) {
-IF_(s1zw_entry);
+UNVECTBL(static,vtbl_c1pD,ret_c1pD)
+SPEC_N_ITBL(c1oM_info,c1oM_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
+IFN_(c1oM_entry) {
+IF_(c1oM_fast1);
        FB_
-       STK_CHK(1,0,4,0,0,0,1);
-       HEAP_CHK(1,(BH_HS+2),1);
-       SET_BH_HDR(Hp-(BH_HS+1),BH_UPD_info,0,(BH_VHS+2),0);
-       UPD_CAF(R1.p,Hp-(BH_HS+1));
-       PUSH_STD_UPD_FRAME(Hp-(BH_HS+1),0,0);
-       RetReg=StdUpdRetVecReg;
-       SpB=SpB+4;
-       GRAN_EXEC(16,2,1,8,0);
-       JMP_(s1zw_entry);
+       ARGS_CHK_A(1);
+       R2.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(c1oM_fast1);
        FE_
 }
-SET_STATIC_HDR(Test_b_closure,Test_b_info,0,,ED_RO_)
-  , (W_)0, (W_)0
-};
-IFN_(ret_c1Fs) {
-ED_RO_(PrelBase_IZh_con_info);
-ED_(STBase_SZh_static_closure);
-ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-I_ s1Ab;
+IFN_(c1oM_fast1) {
        FB_
-       HEAP_CHK(0,(_FHS+1),0);
-       {
-       I_ _ccall_result;
-       CALLER_SAVE_Base
-       CALLER_SAVE_SpA
-       CALLER_SAVE_SuA
-       CALLER_SAVE_SpB
-       CALLER_SAVE_SuB
-       CALLER_SAVE_Ret
-       CALLER_SAVE_Hp
-       CALLER_SAVE_HpLim
-       _ccall_result = (a());
-       CALLER_RESTORE_Base
-       CALLER_RESTORE_SpA
-       CALLER_RESTORE_SuA
-       CALLER_RESTORE_SpB
-       CALLER_RESTORE_SuB
-       CALLER_RESTORE_Ret
-       CALLER_RESTORE_Hp
-       CALLER_RESTORE_HpLim
-       CALLER_RESTORE_StdUpdRetVec
-       CALLER_RESTORE_StkStub
-       s1Ab=_ccall_result;
-       }
-       SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
-       *Hp=(W_)(s1Ab);
-       R4.p=STBase_SZh_static_closure;
-       R3.p=Hp-_FHS;
-       SpB=SpB-1;
-       R2.d=PrelTup_Z40Z44Z41_inregs_info;
-       GRAN_EXEC(10,2,21,22,0);
-       JMP_(DIRECT((StgRetAddr)(SpB[1])));
+       STK_CHK(3,1,1,0,0,0,1);
+       SpB[1]=(W_)(RetReg);
+       RetReg=(StgRetAddr)UNVEC(ret_c1pD,vtbl_c1pD);
+       SpA[-1]=(P_)(R1.p[_FHS]);
+       R1=R2;
+       SpA=SpA-1;
+       SpB=SpB+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(5,1,2,2,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-UNVECTBL(static,vtbl_c1Fs,ret_c1Fs)
-STATIC_ITBL(s1uE_info,s1uE_entry,StdErrorCode,1,-1,STATIC_VHS,0,static const,IF_,0,0,0);
-IFN_(s1uE_entry) {
-ID_(s1uE_closure);
-IF_(s1uE_fast1);
+STATIC_ITBL(Test_c_info,Test_c_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
+FN_(Test_c_entry) {
+ED_(Test_c_closure);
+EF_(Test_c_fast1);
        FB_
-       ARGS_CHK_A_LOAD_NODE(1,s1uE_closure);
+       ARGS_CHK_A_LOAD_NODE(1,Test_c_closure);
        R1.p=*SpA;
        SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(s1uE_fast1);
+       JMP_(Test_c_fast1);
        FE_
 }
-IFN_(s1uE_fast1) {
+FN_(Test_c_fast1) {
+ID_RO_(c1oM_info);
+IF_(c1oM_entry);
        FB_
-       STK_CHK(1,0,1,0,0,0,0);
-       SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fs,vtbl_c1Fs);
-       SpB=SpB+1;
-       ENT_VIA_NODE();
-       GRAN_EXEC(3,1,1,1,0);
-       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       HEAP_CHK(1,(_FHS+1),0);
+       SET_SPEC_HDR(Hp-_FHS,c1oM_info,0,1,1);
+       *Hp=(W_)(R1.p);
+       R1.p=Hp-_FHS;
+       GRAN_EXEC(5,2,0,2,0);
+       JMP_(c1oM_entry);
        FE_
 }
-SET_STATIC_HDR(s1uE_closure,s1uE_info,0,static ,ID_RO_)
+SET_STATIC_HDR(Test_c_closure,Test_c_info,0,,ED_RO_)
 };
-IFN_(ret_c1Fu) {
+IFN_(ret_c1pH) {
 ED_RO_(PrelBase_IZh_con_info);
 ED_(STBase_SZh_static_closure);
 ED_RO_(PrelTup_Z40Z44Z41_inregs_info);
-I_ s1Ba;
+I_ s1mE_;
        FB_
        HEAP_CHK(0,(_FHS+1),0);
        {
        I_ _ccall_result;
+       StgStablePtr _ccall_arg1=R3.i;
        CALLER_SAVE_Base
        CALLER_SAVE_SpA
        CALLER_SAVE_SuA
@@ -600,7 +342,7 @@ I_ s1Ba;
        CALLER_SAVE_Ret
        CALLER_SAVE_Hp
        CALLER_SAVE_HpLim
-       _ccall_result = (a());
+       _ccall_result = (d((_ccall_arg1)));
        CALLER_RESTORE_Base
        CALLER_RESTORE_SpA
        CALLER_RESTORE_SuA
@@ -611,61 +353,79 @@ I_ s1Ba;
        CALLER_RESTORE_HpLim
        CALLER_RESTORE_StdUpdRetVec
        CALLER_RESTORE_StkStub
-       s1Ba=_ccall_result;
+       s1mE_=_ccall_result;
        }
        SET_SPEC_HDR(Hp-_FHS,PrelBase_IZh_con_info,0,1,0);
-       *Hp=(W_)(s1Ba);
+       *Hp=(W_)(s1mE_);
        R4.p=STBase_SZh_static_closure;
        R3.p=Hp-_FHS;
        SpB=SpB-1;
        R2.d=PrelTup_Z40Z44Z41_inregs_info;
-       GRAN_EXEC(10,2,21,22,0);
+       GRAN_EXEC(10,2,22,22,0);
        JMP_(DIRECT((StgRetAddr)(SpB[1])));
        FE_
 }
-UNVECTBL(static,vtbl_c1Fu,ret_c1Fu)
-STATIC_ITBL(s1Bw_info,s1Bw_entry,StdErrorCode,1,-1,STATIC_VHS,0,static const,IF_,0,0,0);
-IFN_(s1Bw_entry) {
-ID_(s1Bw_closure);
-IF_(s1Bw_fast1);
+UNVECTBL(static,vtbl_c1pH,ret_c1pH)
+IFN_(ret_c1pG) {
        FB_
-       ARGS_CHK_A_LOAD_NODE(1,s1Bw_closure);
+       RetReg=(StgRetAddr)UNVEC(ret_c1pH,vtbl_c1pH);
        R1.p=*SpA;
        SpA=SpA+1;
+       ENT_VIA_NODE();
+       GRAN_EXEC(3,1,2,1,0);
+       JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
+       FE_
+}
+UNVECTBL(static,vtbl_c1pG,ret_c1pG)
+SPEC_N_ITBL(c1oc_info,c1oc_entry,StdErrorCode,1,-1,1,1,static const,IF_,0,0,0);
+IFN_(c1oc_entry) {
+IF_(c1oc_fast1);
+       FB_
+       ARGS_CHK_A(1);
+       R2.p=*SpA;
+       SpA=SpA+1;
        GRAN_EXEC(5,2,1,0,0);
-       JMP_(s1Bw_fast1);
+       JMP_(c1oc_fast1);
        FE_
 }
-IFN_(s1Bw_fast1) {
+IFN_(c1oc_fast1) {
        FB_
-       STK_CHK(1,0,1,0,0,0,0);
+       STK_CHK(3,1,1,0,0,0,1);
        SpB[1]=(W_)(RetReg);
-       RetReg=(StgRetAddr)UNVEC(ret_c1Fu,vtbl_c1Fu);
+       RetReg=(StgRetAddr)UNVEC(ret_c1pG,vtbl_c1pG);
+       SpA[-1]=(P_)(R1.p[_FHS]);
+       R1=R2;
+       SpA=SpA-1;
        SpB=SpB+1;
        ENT_VIA_NODE();
-       GRAN_EXEC(3,1,1,1,0);
+       GRAN_EXEC(5,1,2,2,0);
        JMP_((P_)(ENTRY_CODE((D_)(INFO_PTR(R1.p)))));
        FE_
 }
-SET_STATIC_HDR(s1Bw_closure,s1Bw_info,0,static ,ID_RO_)
-};
-STATIC_ITBL(Test_a_info,Test_a_entry,StdErrorCode,1,-1,(STATIC_VHS+
-                                                       2),0,const,EF_,0,0,0);
-FN_(Test_a_entry) {
-IF_(s1Bw_entry);
+STATIC_ITBL(Test_d_info,Test_d_entry,StdErrorCode,1,-1,STATIC_VHS,0,const,EF_,0,0,0);
+FN_(Test_d_entry) {
+ED_(Test_d_closure);
+EF_(Test_d_fast1);
        FB_
-       STK_CHK(1,0,4,0,0,0,1);
-       HEAP_CHK(1,(BH_HS+2),1);
-       SET_BH_HDR(Hp-(BH_HS+1),BH_UPD_info,0,(BH_VHS+2),0);
-       UPD_CAF(R1.p,Hp-(BH_HS+1));
-       PUSH_STD_UPD_FRAME(Hp-(BH_HS+1),0,0);
-       RetReg=StdUpdRetVecReg;
-       SpB=SpB+4;
-       GRAN_EXEC(16,2,1,8,0);
-       JMP_(s1Bw_entry);
+       ARGS_CHK_A_LOAD_NODE(1,Test_d_closure);
+       R1.p=*SpA;
+       SpA=SpA+1;
+       GRAN_EXEC(5,2,1,0,0);
+       JMP_(Test_d_fast1);
        FE_
 }
-SET_STATIC_HDR(Test_a_closure,Test_a_info,0,,ED_RO_)
-  , (W_)0, (W_)0
+FN_(Test_d_fast1) {
+ID_RO_(c1oc_info);
+IF_(c1oc_entry);
+       FB_
+       HEAP_CHK(1,(_FHS+1),0);
+       SET_SPEC_HDR(Hp-_FHS,c1oc_info,0,1,1);
+       *Hp=(W_)(R1.p);
+       R1.p=Hp-_FHS;
+       GRAN_EXEC(5,2,0,2,0);
+       JMP_(c1oc_entry);
+       FE_
+}
+SET_STATIC_HDR(Test_d_closure,Test_d_info,0,,ED_RO_)
 };
 ghc: module version changed to 1; reason: no old .hi file