On Fri, Jun 30, 2006 at 03:45:57PM -0700, mvanier wrote:
> 
> I'm at a loss here.  Somehow, the SplitObjs option doesn't seem to be doing 
> the job.  Any suggestions would be appreciated.

It looks like gcc 4.1 is floating all the

     __asm__("\n__stg_split_marker:");

results to the top of the file, so the splitter sees only a number of
empty sections followed by one large one. Results of

    echo 'module Foo where' > Foo.hs
    for i in `seq 1 10`; do echo "foo$i = 'c'" >> Foo.hs; done
    mkdir Foo_split
    ghc -O -split-objs -c Foo.hs -v -keep-tmp-files

are attached, using

    $ gcc -v
    Using built-in specs.
    Target: i486-linux-gnu
    Configured with: ../src/configure -v 
--enable-languages=c,c++,java,fortran,objc,obj-c++,ada,treelang --prefix=/usr 
--enable-shared --with-system-zlib --libexecdir=/usr/lib 
--without-included-gettext --enable-threads=posix --enable-nls 
--program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu 
--enable-libstdcxx-debug --enable-java-awt=gtk --enable-gtk-cairo 
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.1-1.4.2.0/jre --enable-mpfr 
--with-tune=i686 --enable-checking=release i486-linux-gnu
    Thread model: posix
    gcc version 4.1.2 20060613 (prerelease) (Debian 4.1.1-5)

Amd64 doesn't seem to be afflicted.


Thanks
Ian

[EMAIL PROTECTED]:~/debug$ ghc -O -split-objs -c Foo.hs -v -keep-tmp-files
Glasgow Haskell Compiler, Version 6.4.2, for Haskell 98, compiled by GHC 
version 6.4.2
Using package config file: /usr/lib/ghc-6.4.2/package.conf
Hsc static flags: -static -fglobalise-toplev-names
*** Checking old interface for Foo:
*** Parser:
*** Renamer/typechecker:
*** Desugar:
    Result size = 50
*** Simplify:
    Result size = 30
    Result size = 30
*** Specialise:
    Result size = 30
*** Float out (not lambdas, not constants):
    Result size = 30
*** Float inwards:
    Result size = 30
*** Simplify:
    Result size = 30
*** Simplify:
    Result size = 30
*** Simplify:
    Result size = 30
*** Demand analysis:
    Result size = 30
*** Worker Wrapper binds:
    Result size = 30
*** GlomBinds:
*** Simplify:
    Result size = 30
*** Float out (not lambdas, constants):
    Result size = 30
*** Common sub-expression:
    Result size = 21
*** Float inwards:
    Result size = 21
*** Simplify:
    Result size = 21
*** Tidy Core:
    Result size = 21
*** CorePrep:
    Result size = 21
*** Stg2Stg:
*** CodeGen:
*** CodeOutput:
*** C Compiler
gcc -x c /tmp/ghc26801.hc -o /tmp/ghc26801.raw_s -DDONT_WANT_WIN32_DLL_SUPPORT 
-fno-defer-pop -fomit-frame-pointer -fno-builtin -DSTOLEN_X86_REGS=4 
-ffloat-store -fno-strict-aliasing -v -S -Wimplicit -O 
-D__GLASGOW_HASKELL__=604 -DUSE_SPLIT_MARKERS -I . -I /usr/lib/ghc-6.4.2/include
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v 
--enable-languages=c,c++,java,fortran,objc,obj-c++,ada,treelang --prefix=/usr 
--enable-shared --with-system-zlib --libexecdir=/usr/lib 
--without-included-gettext --enable-threads=posix --enable-nls 
--program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu 
--enable-libstdcxx-debug --enable-java-awt=gtk --enable-gtk-cairo 
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.1-1.4.2.0/jre --enable-mpfr 
--with-tune=i686 --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.1.2 20060613 (prerelease) (Debian 4.1.1-5)
 /usr/lib/gcc/i486-linux-gnu/4.1.2/cc1 -quiet -v -I . -I 
/usr/lib/ghc-6.4.2/include -DDONT_WANT_WIN32_DLL_SUPPORT -DSTOLEN_X86_REGS=4 
-D__GLASGOW_HASKELL__=604 -DUSE_SPLIT_MARKERS /tmp/ghc26801.hc -quiet -dumpbase 
ghc26801.hc -mtune=i686 -auxbase-strip /tmp/ghc26801.raw_s -O -Wimplicit 
-version -fno-defer-pop -fomit-frame-pointer -fno-builtin -ffloat-store 
-fno-strict-aliasing -o /tmp/ghc26801.raw_s
ignoring nonexistent directory "/usr/local/include/i486-linux-gnu"
ignoring nonexistent directory 
"/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../i486-linux-gnu/include"
ignoring nonexistent directory "/usr/include/i486-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
 .
 /usr/lib/ghc-6.4.2/include
 /usr/local/include
 /usr/lib/gcc/i486-linux-gnu/4.1.2/include
 /usr/include
End of search list.
GNU C version 4.1.2 20060613 (prerelease) (Debian 4.1.1-5) (i486-linux-gnu)
        compiled by GNU C version 4.1.2 20060613 (prerelease) (Debian 4.1.1-5).
GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=129565
Compiler executable checksum: 3efbb0b5b3119ec825babd3e1cecb910
*** Mangler
/usr/lib/ghc-6.4.2/ghc-asm /tmp/ghc26801.raw_s /tmp/ghc26801.split_s 4
*** Splitter
/usr/lib/ghc-6.4.2/ghc-split /tmp/ghc26801.split_s /tmp/ghc26801.split 
/tmp/ghc26801.split
*** Assembler
gcc -c -o Foo_split/Foo__1.o /tmp/ghc26801.split__1.s

/* GHC_PACKAGES base-1.0 rts-1.0
*/
#include "Stg.h"
#include "HsBase.h"
__STG_SPLIT_MARKER
EI_(GHCziBase_Czh_static_info);
StgWord Foo_foo10_closure[] = {
(W_)&GHCziBase_Czh_static_info, 0x63U
};
__STG_SPLIT_MARKER
EI_(Foo_foo9_info);
StgWord Foo_foo9_closure[] = {
(W_)&Foo_foo9_info, 0x0, 0x0, 0x0
};

StgWord Foo_foo9_info[] = {
0x20000U, 0x18U
};

EI_(Foo_foo10_closure);
FN_(Foo_foo9_entry) {
FB_
if (((W_)Sp - 0x8U) < (W_)SpLim) goto _c1x8;
Hp=Hp+3;
if ((W_)Hp > (W_)HpLim) goto _c1x8;
Hp[-2] = (W_)&stg_CAF_BLACKHOLE_info;
CALLER_SAVE_R1
CALLER_SAVE_SYSTEM
newCAF((void *)(W_)R1.w);
CALLER_RESTORE_SYSTEM
CALLER_RESTORE_R1
R1.p[1] = (W_)Hp-8;
*R1.p = (W_)&stg_IND_STATIC_info;
Sp[-2] = (W_)&stg_upd_frame_info;
Sp[-1] = (W_)Hp-8;
R1.p = (P_)(W_)&Foo_foo10_closure;
Sp=Sp-2;
JMP_((W_)&stg_upd_frame_info);
_c1x8:
HpAlloc = 0xcU;
JMP_(stg_gc_enter_1);
FE_
}
__STG_SPLIT_MARKER
EI_(Foo_foo8_info);
StgWord Foo_foo8_closure[] = {
(W_)&Foo_foo8_info, 0x0, 0x0, 0x0
};

StgWord Foo_foo8_info[] = {
0x20000U, 0x18U
};

EI_(Foo_foo10_closure);
FN_(Foo_foo8_entry) {
FB_
if (((W_)Sp - 0x8U) < (W_)SpLim) goto _c1xd;
Hp=Hp+3;
if ((W_)Hp > (W_)HpLim) goto _c1xd;
Hp[-2] = (W_)&stg_CAF_BLACKHOLE_info;
CALLER_SAVE_R1
CALLER_SAVE_SYSTEM
newCAF((void *)(W_)R1.w);
CALLER_RESTORE_SYSTEM
CALLER_RESTORE_R1
R1.p[1] = (W_)Hp-8;
*R1.p = (W_)&stg_IND_STATIC_info;
Sp[-2] = (W_)&stg_upd_frame_info;
Sp[-1] = (W_)Hp-8;
R1.p = (P_)(W_)&Foo_foo10_closure;
Sp=Sp-2;
JMP_((W_)&stg_upd_frame_info);
_c1xd:
HpAlloc = 0xcU;
JMP_(stg_gc_enter_1);
FE_
}
__STG_SPLIT_MARKER
EI_(Foo_foo7_info);
StgWord Foo_foo7_closure[] = {
(W_)&Foo_foo7_info, 0x0, 0x0, 0x0
};

StgWord Foo_foo7_info[] = {
0x20000U, 0x18U
};

EI_(Foo_foo10_closure);
FN_(Foo_foo7_entry) {
FB_
if (((W_)Sp - 0x8U) < (W_)SpLim) goto _c1xi;
Hp=Hp+3;
if ((W_)Hp > (W_)HpLim) goto _c1xi;
Hp[-2] = (W_)&stg_CAF_BLACKHOLE_info;
CALLER_SAVE_R1
CALLER_SAVE_SYSTEM
newCAF((void *)(W_)R1.w);
CALLER_RESTORE_SYSTEM
CALLER_RESTORE_R1
R1.p[1] = (W_)Hp-8;
*R1.p = (W_)&stg_IND_STATIC_info;
Sp[-2] = (W_)&stg_upd_frame_info;
Sp[-1] = (W_)Hp-8;
R1.p = (P_)(W_)&Foo_foo10_closure;
Sp=Sp-2;
JMP_((W_)&stg_upd_frame_info);
_c1xi:
HpAlloc = 0xcU;
JMP_(stg_gc_enter_1);
FE_
}
__STG_SPLIT_MARKER
EI_(Foo_foo6_info);
StgWord Foo_foo6_closure[] = {
(W_)&Foo_foo6_info, 0x0, 0x0, 0x0
};

StgWord Foo_foo6_info[] = {
0x20000U, 0x18U
};

EI_(Foo_foo10_closure);
FN_(Foo_foo6_entry) {
FB_
if (((W_)Sp - 0x8U) < (W_)SpLim) goto _c1xn;
Hp=Hp+3;
if ((W_)Hp > (W_)HpLim) goto _c1xn;
Hp[-2] = (W_)&stg_CAF_BLACKHOLE_info;
CALLER_SAVE_R1
CALLER_SAVE_SYSTEM
newCAF((void *)(W_)R1.w);
CALLER_RESTORE_SYSTEM
CALLER_RESTORE_R1
R1.p[1] = (W_)Hp-8;
*R1.p = (W_)&stg_IND_STATIC_info;
Sp[-2] = (W_)&stg_upd_frame_info;
Sp[-1] = (W_)Hp-8;
R1.p = (P_)(W_)&Foo_foo10_closure;
Sp=Sp-2;
JMP_((W_)&stg_upd_frame_info);
_c1xn:
HpAlloc = 0xcU;
JMP_(stg_gc_enter_1);
FE_
}
__STG_SPLIT_MARKER
EI_(Foo_foo5_info);
StgWord Foo_foo5_closure[] = {
(W_)&Foo_foo5_info, 0x0, 0x0, 0x0
};

StgWord Foo_foo5_info[] = {
0x20000U, 0x18U
};

EI_(Foo_foo10_closure);
FN_(Foo_foo5_entry) {
FB_
if (((W_)Sp - 0x8U) < (W_)SpLim) goto _c1xs;
Hp=Hp+3;
if ((W_)Hp > (W_)HpLim) goto _c1xs;
Hp[-2] = (W_)&stg_CAF_BLACKHOLE_info;
CALLER_SAVE_R1
CALLER_SAVE_SYSTEM
newCAF((void *)(W_)R1.w);
CALLER_RESTORE_SYSTEM
CALLER_RESTORE_R1
R1.p[1] = (W_)Hp-8;
*R1.p = (W_)&stg_IND_STATIC_info;
Sp[-2] = (W_)&stg_upd_frame_info;
Sp[-1] = (W_)Hp-8;
R1.p = (P_)(W_)&Foo_foo10_closure;
Sp=Sp-2;
JMP_((W_)&stg_upd_frame_info);
_c1xs:
HpAlloc = 0xcU;
JMP_(stg_gc_enter_1);
FE_
}
__STG_SPLIT_MARKER
EI_(Foo_foo4_info);
StgWord Foo_foo4_closure[] = {
(W_)&Foo_foo4_info, 0x0, 0x0, 0x0
};

StgWord Foo_foo4_info[] = {
0x20000U, 0x18U
};

EI_(Foo_foo10_closure);
FN_(Foo_foo4_entry) {
FB_
if (((W_)Sp - 0x8U) < (W_)SpLim) goto _c1xx;
Hp=Hp+3;
if ((W_)Hp > (W_)HpLim) goto _c1xx;
Hp[-2] = (W_)&stg_CAF_BLACKHOLE_info;
CALLER_SAVE_R1
CALLER_SAVE_SYSTEM
newCAF((void *)(W_)R1.w);
CALLER_RESTORE_SYSTEM
CALLER_RESTORE_R1
R1.p[1] = (W_)Hp-8;
*R1.p = (W_)&stg_IND_STATIC_info;
Sp[-2] = (W_)&stg_upd_frame_info;
Sp[-1] = (W_)Hp-8;
R1.p = (P_)(W_)&Foo_foo10_closure;
Sp=Sp-2;
JMP_((W_)&stg_upd_frame_info);
_c1xx:
HpAlloc = 0xcU;
JMP_(stg_gc_enter_1);
FE_
}
__STG_SPLIT_MARKER
EI_(Foo_foo3_info);
StgWord Foo_foo3_closure[] = {
(W_)&Foo_foo3_info, 0x0, 0x0, 0x0
};

StgWord Foo_foo3_info[] = {
0x20000U, 0x18U
};

EI_(Foo_foo10_closure);
FN_(Foo_foo3_entry) {
FB_
if (((W_)Sp - 0x8U) < (W_)SpLim) goto _c1xC;
Hp=Hp+3;
if ((W_)Hp > (W_)HpLim) goto _c1xC;
Hp[-2] = (W_)&stg_CAF_BLACKHOLE_info;
CALLER_SAVE_R1
CALLER_SAVE_SYSTEM
newCAF((void *)(W_)R1.w);
CALLER_RESTORE_SYSTEM
CALLER_RESTORE_R1
R1.p[1] = (W_)Hp-8;
*R1.p = (W_)&stg_IND_STATIC_info;
Sp[-2] = (W_)&stg_upd_frame_info;
Sp[-1] = (W_)Hp-8;
R1.p = (P_)(W_)&Foo_foo10_closure;
Sp=Sp-2;
JMP_((W_)&stg_upd_frame_info);
_c1xC:
HpAlloc = 0xcU;
JMP_(stg_gc_enter_1);
FE_
}
__STG_SPLIT_MARKER
EI_(Foo_foo2_info);
StgWord Foo_foo2_closure[] = {
(W_)&Foo_foo2_info, 0x0, 0x0, 0x0
};

StgWord Foo_foo2_info[] = {
0x20000U, 0x18U
};

EI_(Foo_foo10_closure);
FN_(Foo_foo2_entry) {
FB_
if (((W_)Sp - 0x8U) < (W_)SpLim) goto _c1xH;
Hp=Hp+3;
if ((W_)Hp > (W_)HpLim) goto _c1xH;
Hp[-2] = (W_)&stg_CAF_BLACKHOLE_info;
CALLER_SAVE_R1
CALLER_SAVE_SYSTEM
newCAF((void *)(W_)R1.w);
CALLER_RESTORE_SYSTEM
CALLER_RESTORE_R1
R1.p[1] = (W_)Hp-8;
*R1.p = (W_)&stg_IND_STATIC_info;
Sp[-2] = (W_)&stg_upd_frame_info;
Sp[-1] = (W_)Hp-8;
R1.p = (P_)(W_)&Foo_foo10_closure;
Sp=Sp-2;
JMP_((W_)&stg_upd_frame_info);
_c1xH:
HpAlloc = 0xcU;
JMP_(stg_gc_enter_1);
FE_
}
__STG_SPLIT_MARKER
EI_(Foo_foo1_info);
StgWord Foo_foo1_closure[] = {
(W_)&Foo_foo1_info, 0x0, 0x0, 0x0
};

StgWord Foo_foo1_info[] = {
0x20000U, 0x18U
};

EI_(Foo_foo10_closure);
FN_(Foo_foo1_entry) {
FB_
if (((W_)Sp - 0x8U) < (W_)SpLim) goto _c1xM;
Hp=Hp+3;
if ((W_)Hp > (W_)HpLim) goto _c1xM;
Hp[-2] = (W_)&stg_CAF_BLACKHOLE_info;
CALLER_SAVE_R1
CALLER_SAVE_SYSTEM
newCAF((void *)(W_)R1.w);
CALLER_RESTORE_SYSTEM
CALLER_RESTORE_R1
R1.p[1] = (W_)Hp-8;
*R1.p = (W_)&stg_IND_STATIC_info;
Sp[-2] = (W_)&stg_upd_frame_info;
Sp[-1] = (W_)Hp-8;
R1.p = (P_)(W_)&Foo_foo10_closure;
Sp=Sp-2;
JMP_((W_)&stg_upd_frame_info);
_c1xM:
HpAlloc = 0xcU;
JMP_(stg_gc_enter_1);
FE_
}
__STG_SPLIT_MARKER
static StgWord _module_registered[] = {
0x0
};


EF_(__stginit_Prelude_);
FN_(__stginit_Foo_) {
FB_
if (0x0 != (*((P_)(W_)&_module_registered))) goto _c1xO;
goto _c1xQ;
_c1xO:
Sp=Sp+1;
JMP_(Sp[-1]);
_c1xQ:
*((P_)(W_)&_module_registered) = 0x1U;
Sp=Sp-1;
*Sp = (W_)&__stginit_Prelude_;
goto _c1xO;
FE_
}


EF_(__stginit_Foo_);
FN_(__stginit_Foo) {
FB_
JMP_((W_)&__stginit_Foo_);
FE_
}
        .file   "ghc26801.hc"
#APP
        
__stg_split_marker:
        
__stg_split_marker:
        
__stg_split_marker:
        
__stg_split_marker:
        
__stg_split_marker:
        
__stg_split_marker:
        
__stg_split_marker:
        
__stg_split_marker:
        
__stg_split_marker:
        
__stg_split_marker:
        
__stg_split_marker:
#NO_APP
        .text
.globl __stginit_Foo
        .type   __stginit_Foo, @function
__stginit_Foo:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        call    __DISCARD__
        movl    $__stginit_Foo_, %eax
        jmp     *%eax
        .size   __stginit_Foo, .-__stginit_Foo
.globl __stginit_Foo_
        .type   __stginit_Foo_, @function
__stginit_Foo_:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        cmpl    $0, _module_registered
        je      .L4
.L5:
        addl    $4, %ebp
        call    __DISCARD__
        jmp     *-4(%ebp)
.L4:
        movl    $1, _module_registered
        leal    -4(%ebp), %eax
        movl    %eax, %ebp
        movl    $__stginit_Prelude_, (%eax)
        jmp     .L5
        .size   __stginit_Foo_, .-__stginit_Foo_
.globl Foo_foo1_entry
        .type   Foo_foo1_entry, @function
Foo_foo1_entry:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L8
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L8
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        call    __DISCARD__
        movl    $stg_upd_frame_info, %eax
.L11:
        jmp     *%eax
.L8:
        movl    $12, 108(%edx)
        call    __DISCARD__
        movl    -8(%ebx), %eax
        jmp     .L11
        .size   Foo_foo1_entry, .-Foo_foo1_entry
.globl Foo_foo2_entry
        .type   Foo_foo2_entry, @function
Foo_foo2_entry:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L14
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L14
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        call    __DISCARD__
        movl    $stg_upd_frame_info, %eax
.L17:
        jmp     *%eax
.L14:
        movl    $12, 108(%edx)
        call    __DISCARD__
        movl    -8(%ebx), %eax
        jmp     .L17
        .size   Foo_foo2_entry, .-Foo_foo2_entry
.globl Foo_foo3_entry
        .type   Foo_foo3_entry, @function
Foo_foo3_entry:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L20
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L20
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        call    __DISCARD__
        movl    $stg_upd_frame_info, %eax
.L23:
        jmp     *%eax
.L20:
        movl    $12, 108(%edx)
        call    __DISCARD__
        movl    -8(%ebx), %eax
        jmp     .L23
        .size   Foo_foo3_entry, .-Foo_foo3_entry
.globl Foo_foo4_entry
        .type   Foo_foo4_entry, @function
Foo_foo4_entry:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L26
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L26
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        call    __DISCARD__
        movl    $stg_upd_frame_info, %eax
.L29:
        jmp     *%eax
.L26:
        movl    $12, 108(%edx)
        call    __DISCARD__
        movl    -8(%ebx), %eax
        jmp     .L29
        .size   Foo_foo4_entry, .-Foo_foo4_entry
.globl Foo_foo5_entry
        .type   Foo_foo5_entry, @function
Foo_foo5_entry:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L32
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L32
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        call    __DISCARD__
        movl    $stg_upd_frame_info, %eax
.L35:
        jmp     *%eax
.L32:
        movl    $12, 108(%edx)
        call    __DISCARD__
        movl    -8(%ebx), %eax
        jmp     .L35
        .size   Foo_foo5_entry, .-Foo_foo5_entry
.globl Foo_foo6_entry
        .type   Foo_foo6_entry, @function
Foo_foo6_entry:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L38
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L38
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        call    __DISCARD__
        movl    $stg_upd_frame_info, %eax
.L41:
        jmp     *%eax
.L38:
        movl    $12, 108(%edx)
        call    __DISCARD__
        movl    -8(%ebx), %eax
        jmp     .L41
        .size   Foo_foo6_entry, .-Foo_foo6_entry
.globl Foo_foo7_entry
        .type   Foo_foo7_entry, @function
Foo_foo7_entry:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L44
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L44
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        call    __DISCARD__
        movl    $stg_upd_frame_info, %eax
.L47:
        jmp     *%eax
.L44:
        movl    $12, 108(%edx)
        call    __DISCARD__
        movl    -8(%ebx), %eax
        jmp     .L47
        .size   Foo_foo7_entry, .-Foo_foo7_entry
.globl Foo_foo8_entry
        .type   Foo_foo8_entry, @function
Foo_foo8_entry:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L50
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L50
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        call    __DISCARD__
        movl    $stg_upd_frame_info, %eax
.L53:
        jmp     *%eax
.L50:
        movl    $12, 108(%edx)
        call    __DISCARD__
        movl    -8(%ebx), %eax
        jmp     .L53
        .size   Foo_foo8_entry, .-Foo_foo8_entry
.globl Foo_foo9_entry
        .type   Foo_foo9_entry, @function
Foo_foo9_entry:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L56
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L56
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        call    __DISCARD__
        movl    $stg_upd_frame_info, %eax
.L59:
        jmp     *%eax
.L56:
        movl    $12, 108(%edx)
        call    __DISCARD__
        movl    -8(%ebx), %eax
        jmp     .L59
        .size   Foo_foo9_entry, .-Foo_foo9_entry
.globl Foo_foo10_closure
        .data
        .align 4
        .type   Foo_foo10_closure, @object
        .size   Foo_foo10_closure, 8
Foo_foo10_closure:
        .long   GHCziBase_Czh_static_info
        .long   99
.globl Foo_foo9_closure
        .align 4
        .type   Foo_foo9_closure, @object
        .size   Foo_foo9_closure, 16
Foo_foo9_closure:
        .long   Foo_foo9_info
        .long   0
        .long   0
        .long   0
.globl Foo_foo9_info
        .align 4
        .type   Foo_foo9_info, @object
        .size   Foo_foo9_info, 8
Foo_foo9_info:
        .long   131072
        .long   24
.globl Foo_foo8_closure
        .align 4
        .type   Foo_foo8_closure, @object
        .size   Foo_foo8_closure, 16
Foo_foo8_closure:
        .long   Foo_foo8_info
        .long   0
        .long   0
        .long   0
.globl Foo_foo8_info
        .align 4
        .type   Foo_foo8_info, @object
        .size   Foo_foo8_info, 8
Foo_foo8_info:
        .long   131072
        .long   24
.globl Foo_foo7_closure
        .align 4
        .type   Foo_foo7_closure, @object
        .size   Foo_foo7_closure, 16
Foo_foo7_closure:
        .long   Foo_foo7_info
        .long   0
        .long   0
        .long   0
.globl Foo_foo7_info
        .align 4
        .type   Foo_foo7_info, @object
        .size   Foo_foo7_info, 8
Foo_foo7_info:
        .long   131072
        .long   24
.globl Foo_foo6_closure
        .align 4
        .type   Foo_foo6_closure, @object
        .size   Foo_foo6_closure, 16
Foo_foo6_closure:
        .long   Foo_foo6_info
        .long   0
        .long   0
        .long   0
.globl Foo_foo6_info
        .align 4
        .type   Foo_foo6_info, @object
        .size   Foo_foo6_info, 8
Foo_foo6_info:
        .long   131072
        .long   24
.globl Foo_foo5_closure
        .align 4
        .type   Foo_foo5_closure, @object
        .size   Foo_foo5_closure, 16
Foo_foo5_closure:
        .long   Foo_foo5_info
        .long   0
        .long   0
        .long   0
.globl Foo_foo5_info
        .align 4
        .type   Foo_foo5_info, @object
        .size   Foo_foo5_info, 8
Foo_foo5_info:
        .long   131072
        .long   24
.globl Foo_foo4_closure
        .align 4
        .type   Foo_foo4_closure, @object
        .size   Foo_foo4_closure, 16
Foo_foo4_closure:
        .long   Foo_foo4_info
        .long   0
        .long   0
        .long   0
.globl Foo_foo4_info
        .align 4
        .type   Foo_foo4_info, @object
        .size   Foo_foo4_info, 8
Foo_foo4_info:
        .long   131072
        .long   24
.globl Foo_foo3_closure
        .align 4
        .type   Foo_foo3_closure, @object
        .size   Foo_foo3_closure, 16
Foo_foo3_closure:
        .long   Foo_foo3_info
        .long   0
        .long   0
        .long   0
.globl Foo_foo3_info
        .align 4
        .type   Foo_foo3_info, @object
        .size   Foo_foo3_info, 8
Foo_foo3_info:
        .long   131072
        .long   24
.globl Foo_foo2_closure
        .align 4
        .type   Foo_foo2_closure, @object
        .size   Foo_foo2_closure, 16
Foo_foo2_closure:
        .long   Foo_foo2_info
        .long   0
        .long   0
        .long   0
.globl Foo_foo2_info
        .align 4
        .type   Foo_foo2_info, @object
        .size   Foo_foo2_info, 8
Foo_foo2_info:
        .long   131072
        .long   24
.globl Foo_foo1_closure
        .align 4
        .type   Foo_foo1_closure, @object
        .size   Foo_foo1_closure, 16
Foo_foo1_closure:
        .long   Foo_foo1_info
        .long   0
        .long   0
        .long   0
.globl Foo_foo1_info
        .align 4
        .type   Foo_foo1_info, @object
        .size   Foo_foo1_info, 8
Foo_foo1_info:
        .long   131072
        .long   24
        .local  _module_registered
        .comm   _module_registered,4,4
        .ident  "GCC: (GNU) 4.1.2 20060613 (prerelease) (Debian 4.1.1-5)"
        .section        .note.GNU-stack,"",@progbits
.text
        .align 4
        .file   "ghc26801.hc"
        
___stg_split_marker:
___stg_split_marker:
___stg_split_marker:
___stg_split_marker:
___stg_split_marker:
___stg_split_marker:
___stg_split_marker:
___stg_split_marker:
___stg_split_marker:
___stg_split_marker:
___stg_split_marker:
.text
        .align 4
.globl __stginit_Foo
        .type   __stginit_Foo, @function
__stginit_Foo:
        movl    $__stginit_Foo_, %eax
        jmp     *%eax
        .size   __stginit_Foo, .-__stginit_Foo
.text
        .align 4
.globl __stginit_Foo_
        .type   __stginit_Foo_, @function
__stginit_Foo_:
        cmpl    $0, _module_registered
        je      .L4
.L5:
        addl    $4, %ebp
        jmp     *-4(%ebp)
.L4:
        movl    $1, _module_registered
        leal    -4(%ebp), %eax
        movl    %eax, %ebp
        movl    $__stginit_Prelude_, (%eax)
        jmp     .L5
        .size   __stginit_Foo_, .-__stginit_Foo_
.data
        .align 4
.globl Foo_foo1_closure
        .type   Foo_foo1_closure, @object
        .size   Foo_foo1_closure, 16
Foo_foo1_closure:
        .long   Foo_foo1_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo1_info, @object
        .size   Foo_foo1_info, 8
        .long   131072
        .long   24
.globl Foo_foo1_info
Foo_foo1_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L8
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L8
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L11:
        jmp     *%eax
.L8:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L11
.data
        .align 4
.globl Foo_foo2_closure
        .type   Foo_foo2_closure, @object
        .size   Foo_foo2_closure, 16
Foo_foo2_closure:
        .long   Foo_foo2_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo2_info, @object
        .size   Foo_foo2_info, 8
        .long   131072
        .long   24
.globl Foo_foo2_info
Foo_foo2_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L14
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L14
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L17:
        jmp     *%eax
.L14:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L17
.data
        .align 4
.globl Foo_foo3_closure
        .type   Foo_foo3_closure, @object
        .size   Foo_foo3_closure, 16
Foo_foo3_closure:
        .long   Foo_foo3_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo3_info, @object
        .size   Foo_foo3_info, 8
        .long   131072
        .long   24
.globl Foo_foo3_info
Foo_foo3_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L20
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L20
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L23:
        jmp     *%eax
.L20:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L23
.data
        .align 4
.globl Foo_foo4_closure
        .type   Foo_foo4_closure, @object
        .size   Foo_foo4_closure, 16
Foo_foo4_closure:
        .long   Foo_foo4_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo4_info, @object
        .size   Foo_foo4_info, 8
        .long   131072
        .long   24
.globl Foo_foo4_info
Foo_foo4_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L26
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L26
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L29:
        jmp     *%eax
.L26:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L29
.data
        .align 4
.globl Foo_foo5_closure
        .type   Foo_foo5_closure, @object
        .size   Foo_foo5_closure, 16
Foo_foo5_closure:
        .long   Foo_foo5_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo5_info, @object
        .size   Foo_foo5_info, 8
        .long   131072
        .long   24
.globl Foo_foo5_info
Foo_foo5_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L32
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L32
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L35:
        jmp     *%eax
.L32:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L35
.data
        .align 4
.globl Foo_foo6_closure
        .type   Foo_foo6_closure, @object
        .size   Foo_foo6_closure, 16
Foo_foo6_closure:
        .long   Foo_foo6_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo6_info, @object
        .size   Foo_foo6_info, 8
        .long   131072
        .long   24
.globl Foo_foo6_info
Foo_foo6_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L38
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L38
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L41:
        jmp     *%eax
.L38:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L41
.data
        .align 4
.globl Foo_foo7_closure
        .type   Foo_foo7_closure, @object
        .size   Foo_foo7_closure, 16
Foo_foo7_closure:
        .long   Foo_foo7_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo7_info, @object
        .size   Foo_foo7_info, 8
        .long   131072
        .long   24
.globl Foo_foo7_info
Foo_foo7_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L44
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L44
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L47:
        jmp     *%eax
.L44:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L47
.data
        .align 4
.globl Foo_foo8_closure
        .type   Foo_foo8_closure, @object
        .size   Foo_foo8_closure, 16
Foo_foo8_closure:
        .long   Foo_foo8_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo8_info, @object
        .size   Foo_foo8_info, 8
        .long   131072
        .long   24
.globl Foo_foo8_info
Foo_foo8_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L50
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L50
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L53:
        jmp     *%eax
.L50:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L53
.data
        .align 4
.globl Foo_foo9_closure
        .type   Foo_foo9_closure, @object
        .size   Foo_foo9_closure, 16
Foo_foo9_closure:
        .long   Foo_foo9_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo9_info, @object
        .size   Foo_foo9_info, 8
        .long   131072
        .long   24
.globl Foo_foo9_info
Foo_foo9_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L56
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L56
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L59:
        jmp     *%eax
.L56:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L59
.data
        .align 4
.globl Foo_foo10_closure
        .type   Foo_foo10_closure, @object
        .size   Foo_foo10_closure, 8
Foo_foo10_closure:
        .long   GHCziBase_Czh_static_info
        .long   99
.data
        .align 4
        .local  _module_registered
        .comm   _module_registered,4,4
.text
        .align 4
.text
        .align 4
        .file   "ghc26801.hc"
        
.text
        .align 4
.text
        .align 4
.globl __stginit_Foo
        .type   __stginit_Foo, @function
__stginit_Foo:
        movl    $__stginit_Foo_, %eax
        jmp     *%eax
        .size   __stginit_Foo, .-__stginit_Foo
.text
        .align 4
.globl __stginit_Foo_
        .type   __stginit_Foo_, @function
__stginit_Foo_:
        cmpl    $0, _module_registered
        je      .L4
.L5:
        addl    $4, %ebp
        jmp     *-4(%ebp)
.L4:
        movl    $1, _module_registered
        leal    -4(%ebp), %eax
        movl    %eax, %ebp
        movl    $__stginit_Prelude_, (%eax)
        jmp     .L5
        .size   __stginit_Foo_, .-__stginit_Foo_
.data
        .align 4
.globl Foo_foo1_closure
        .type   Foo_foo1_closure, @object
        .size   Foo_foo1_closure, 16
Foo_foo1_closure:
        .long   Foo_foo1_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo1_info, @object
        .size   Foo_foo1_info, 8
        .long   131072
        .long   24
.globl Foo_foo1_info
Foo_foo1_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L8
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L8
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L11:
        jmp     *%eax
.L8:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L11
.data
        .align 4
.globl Foo_foo2_closure
        .type   Foo_foo2_closure, @object
        .size   Foo_foo2_closure, 16
Foo_foo2_closure:
        .long   Foo_foo2_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo2_info, @object
        .size   Foo_foo2_info, 8
        .long   131072
        .long   24
.globl Foo_foo2_info
Foo_foo2_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L14
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L14
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L17:
        jmp     *%eax
.L14:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L17
.data
        .align 4
.globl Foo_foo3_closure
        .type   Foo_foo3_closure, @object
        .size   Foo_foo3_closure, 16
Foo_foo3_closure:
        .long   Foo_foo3_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo3_info, @object
        .size   Foo_foo3_info, 8
        .long   131072
        .long   24
.globl Foo_foo3_info
Foo_foo3_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L20
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L20
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L23:
        jmp     *%eax
.L20:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L23
.data
        .align 4
.globl Foo_foo4_closure
        .type   Foo_foo4_closure, @object
        .size   Foo_foo4_closure, 16
Foo_foo4_closure:
        .long   Foo_foo4_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo4_info, @object
        .size   Foo_foo4_info, 8
        .long   131072
        .long   24
.globl Foo_foo4_info
Foo_foo4_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L26
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L26
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L29:
        jmp     *%eax
.L26:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L29
.data
        .align 4
.globl Foo_foo5_closure
        .type   Foo_foo5_closure, @object
        .size   Foo_foo5_closure, 16
Foo_foo5_closure:
        .long   Foo_foo5_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo5_info, @object
        .size   Foo_foo5_info, 8
        .long   131072
        .long   24
.globl Foo_foo5_info
Foo_foo5_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L32
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L32
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L35:
        jmp     *%eax
.L32:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L35
.data
        .align 4
.globl Foo_foo6_closure
        .type   Foo_foo6_closure, @object
        .size   Foo_foo6_closure, 16
Foo_foo6_closure:
        .long   Foo_foo6_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo6_info, @object
        .size   Foo_foo6_info, 8
        .long   131072
        .long   24
.globl Foo_foo6_info
Foo_foo6_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L38
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L38
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L41:
        jmp     *%eax
.L38:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L41
.data
        .align 4
.globl Foo_foo7_closure
        .type   Foo_foo7_closure, @object
        .size   Foo_foo7_closure, 16
Foo_foo7_closure:
        .long   Foo_foo7_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo7_info, @object
        .size   Foo_foo7_info, 8
        .long   131072
        .long   24
.globl Foo_foo7_info
Foo_foo7_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L44
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L44
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L47:
        jmp     *%eax
.L44:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L47
.data
        .align 4
.globl Foo_foo8_closure
        .type   Foo_foo8_closure, @object
        .size   Foo_foo8_closure, 16
Foo_foo8_closure:
        .long   Foo_foo8_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo8_info, @object
        .size   Foo_foo8_info, 8
        .long   131072
        .long   24
.globl Foo_foo8_info
Foo_foo8_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L50
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L50
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L53:
        jmp     *%eax
.L50:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L53
.data
        .align 4
.globl Foo_foo9_closure
        .type   Foo_foo9_closure, @object
        .size   Foo_foo9_closure, 16
Foo_foo9_closure:
        .long   Foo_foo9_info
        .long   0
        .long   0
        .long   0
.text
        .align 4
        .type   Foo_foo9_info, @object
        .size   Foo_foo9_info, 8
        .long   131072
        .long   24
.globl Foo_foo9_info
Foo_foo9_info:
.text
        movl    %ebx, %edx
        leal    -8(%ebp), %eax
        cmpl    84(%ebx), %eax
        jb      .L56
        leal    12(%edi), %eax
        movl    %eax, %edi
        cmpl    92(%ebx), %eax
        ja      .L56
        movl    $stg_CAF_BLACKHOLE_info, -8(%eax)
        movl    %esi, (%esp)
        call    newCAF
        leal    -8(%edi), %eax
        movl    %eax, 4(%esi)
        movl    $stg_IND_STATIC_info, (%esi)
        movl    $stg_upd_frame_info, -8(%ebp)
        movl    %eax, -4(%ebp)
        movl    $Foo_foo10_closure, %esi
        subl    $8, %ebp
        movl    $stg_upd_frame_info, %eax
.L59:
        jmp     *%eax
.L56:
        movl    $12, 108(%edx)
        movl    -8(%ebx), %eax
        jmp .L59
.data
        .align 4
.globl Foo_foo10_closure
        .type   Foo_foo10_closure, @object
        .size   Foo_foo10_closure, 8
Foo_foo10_closure:
        .long   GHCziBase_Czh_static_info
        .long   99
.data
        .align 4
        .local  _module_registered
        .comm   _module_registered,4,4
1
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to