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