[Haskell-cafe] Re: [haskell] ANNOUNCE: HNOP 0.1
Ian Lynagh
igloo at earth.li
Sat Jul 1 10:05:29 EDT 2006
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
-------------- next part --------------
igloo at userpc15:~/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
-------------- next part --------------
/* 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_
}
-------------- next part --------------
.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,"", at progbits
-------------- next part --------------
.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
-------------- next part --------------
.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
-------------- next part --------------
1
More information about the Haskell-Cafe
mailing list