I'm trying to build ghc from scratch on a gcc-3.0 athlon system.
I've downloaded and unpacked ghc-4.0.8.2-src.tar.bz2 and 
ghc-4.0.8-x86-hc.tar.bz2.
When I run distrib/hc-build --prefix=/usr/local/haskell the build fails 
with the following error:

../../ghc/driver/ghc-inplace -I../includes -I. -Iparallel -optc-Wall  
-optc-W -optc-Wstrict-prototypes  -optc-Wmissing-prototypes  
-optc-Wmissing-declarations -optc-Winline -optc-Waggregate-return 
-optc-Wpointer-arith -optc-Wbad-function-cast -O2 -optc-DCOMPILING_RTS 
-static    -c PrimOps.hc -o PrimOps.o -osuf o
In file included from Storage.h:14,
                 from PrimOps.hc:17,
BlockAlloc.h:51:8: warning: extra tokens at end of #endif directive
In file included from PrimOps.hc:17,
Storage.h:197:8: warning: extra tokens at end of #endif directive
Storage.h:199:8: warning: extra tokens at end of #endif directive
In file included from PrimOps.hc:21,
StgRun.h:17:8: warning: extra tokens at end of #endif directive
Prologue junk?: .globl plusIntegerzh_fast
plusIntegerzh_fast:
    pushl    %ebp
    movl    %esp, %ebp
   
gmake[2]: *** [PrimOps.o] Error 255
gmake[1]: *** [all] Error 1
gmake: *** [all] Error 1

I've attached the assembler output obtained from running this command 
with -ddump-raw-asm.

cheers

Loz
In file included from Storage.h:14,
                 from PrimOps.hc:17,
BlockAlloc.h:51:8: warning: extra tokens at end of #endif directive
In file included from PrimOps.hc:17,
Storage.h:197:8: warning: extra tokens at end of #endif directive
Storage.h:199:8: warning: extra tokens at end of #endif directive
In file included from PrimOps.hc:21,
StgRun.h:17:8: warning: extra tokens at end of #endif directive
        .file   "ghc3083.c"
        .data
        .type   ghc_cc_ID,@object
        .size   ghc_cc_ID,25
ghc_cc_ID:
        .string "@(#)cc PrimOps.hc\t36.1,,"
        .text
        .align 16
.globl newCharArrayzh_fast
        .type   newCharArrayzh_fast,@function
newCharArrayzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L388
        leal    3(%esi), %eax
        shrl    $2, %eax
        movl    %eax, 8(%esp)
        subl    $12, %esp
        addl    $2, %eax
        pushl   %eax
        call    allocate
        movl    $ARR_WORDS_info, (%eax)
        addl    $16, %esp
        movl    8(%esp), %edx
        movl    %eax, %esi
        movl    %edx, 4(%eax)
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L388:
        movl    $65535, 32(%ebx)
        movl    $newCharArrayzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe1:
        .size   newCharArrayzh_fast,.Lfe1-newCharArrayzh_fast
        .align 16
.globl newIntArrayzh_fast
        .type   newIntArrayzh_fast,@function
newIntArrayzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L392
        movl    %esi, %eax
        andl    $1073741823, %eax
        movl    %eax, 8(%esp)
        subl    $12, %esp
        addl    $2, %eax
        pushl   %eax
        call    allocate
        movl    $ARR_WORDS_info, (%eax)
        addl    $16, %esp
        movl    8(%esp), %edx
        movl    %eax, %esi
        movl    %edx, 4(%eax)
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L392:
        movl    $65535, 32(%ebx)
        movl    $newIntArrayzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe2:
        .size   newIntArrayzh_fast,.Lfe2-newIntArrayzh_fast
        .align 16
.globl newWordArrayzh_fast
        .type   newWordArrayzh_fast,@function
newWordArrayzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L396
        movl    %esi, %eax
        andl    $1073741823, %eax
        movl    %eax, 8(%esp)
        subl    $12, %esp
        addl    $2, %eax
        pushl   %eax
        call    allocate
        movl    $ARR_WORDS_info, (%eax)
        addl    $16, %esp
        movl    8(%esp), %edx
        movl    %eax, %esi
        movl    %edx, 4(%eax)
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L396:
        movl    $65535, 32(%ebx)
        movl    $newWordArrayzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe3:
        .size   newWordArrayzh_fast,.Lfe3-newWordArrayzh_fast
        .align 16
.globl newAddrArrayzh_fast
        .type   newAddrArrayzh_fast,@function
newAddrArrayzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L400
        movl    %esi, %eax
        andl    $1073741823, %eax
        movl    %eax, 8(%esp)
        subl    $12, %esp
        addl    $2, %eax
        pushl   %eax
        call    allocate
        movl    $ARR_WORDS_info, (%eax)
        addl    $16, %esp
        movl    8(%esp), %edx
        movl    %eax, %esi
        movl    %edx, 4(%eax)
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L400:
        movl    $65535, 32(%ebx)
        movl    $newAddrArrayzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe4:
        .size   newAddrArrayzh_fast,.Lfe4-newAddrArrayzh_fast
        .align 16
.globl newFloatArrayzh_fast
        .type   newFloatArrayzh_fast,@function
newFloatArrayzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L404
        movl    %esi, %eax
        andl    $1073741823, %eax
        movl    %eax, 8(%esp)
        subl    $12, %esp
        addl    $2, %eax
        pushl   %eax
        call    allocate
        movl    $ARR_WORDS_info, (%eax)
        addl    $16, %esp
        movl    8(%esp), %edx
        movl    %eax, %esi
        movl    %edx, 4(%eax)
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L404:
        movl    $65535, 32(%ebx)
        movl    $newFloatArrayzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe5:
        .size   newFloatArrayzh_fast,.Lfe5-newFloatArrayzh_fast
        .align 16
.globl newDoubleArrayzh_fast
        .type   newDoubleArrayzh_fast,@function
newDoubleArrayzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L408
        leal    3(,%esi,8), %eax
        shrl    $2, %eax
        movl    %eax, 8(%esp)
        subl    $12, %esp
        addl    $2, %eax
        pushl   %eax
        call    allocate
        movl    $ARR_WORDS_info, (%eax)
        addl    $16, %esp
        movl    8(%esp), %edx
        movl    %eax, %esi
        movl    %edx, 4(%eax)
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L408:
        movl    $65535, 32(%ebx)
        movl    $newDoubleArrayzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe6:
        .size   newDoubleArrayzh_fast,.Lfe6-newDoubleArrayzh_fast
        .align 16
.globl newStablePtrArrayzh_fast
        .type   newStablePtrArrayzh_fast,@function
newStablePtrArrayzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L412
        movl    %esi, %eax
        andl    $1073741823, %eax
        movl    %eax, 8(%esp)
        subl    $12, %esp
        addl    $2, %eax
        pushl   %eax
        call    allocate
        movl    $ARR_WORDS_info, (%eax)
        addl    $16, %esp
        movl    8(%esp), %edx
        movl    %eax, %esi
        movl    %edx, 4(%eax)
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L412:
        movl    $65535, 32(%ebx)
        movl    $newStablePtrArrayzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe7:
        .size   newStablePtrArrayzh_fast,.Lfe7-newStablePtrArrayzh_fast
        .align 16
.globl newArrayzh_fast
        .type   newArrayzh_fast,@function
newArrayzh_fast:
        subl    $28, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        movl    %esi, 20(%esp)
        cmpl    %eax, alloc_blocks
        jae     .L422
        movl    20(%esp), %eax
        addl    $3, %eax
        movl    %eax, 24(%esp)
        subl    $12, %esp
        pushl   %eax
        call    allocate
        movl    %eax, %edx
        addl    $16, %esp
        movl    $MUT_ARR_PTRS_info, (%edx)
        movl    20(%esp), %ecx
        movl    %ecx, 4(%edx)
        movl    4(%ebx), %eax
        movl    24(%esp), %ecx
        movl    %eax, 16(%esp)
        leal    12(%edx), %eax
        leal    (%edx,%ecx,4), %ecx
        movl    %ecx, 12(%esp)
        cmpl    %ecx, %eax
        jae     .L421
        .p2align 4
.L419:
        movl    16(%esp), %ecx
        movl    %ecx, (%eax)
        addl    $4, %eax
        cmpl    12(%esp), %eax
        jb      .L419
        jmp     .L421
        .p2align 4,,7
.L422:
        movl    $65533, 32(%ebx)
        movl    $newArrayzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
        .p2align 4,,7
.L421:
        movl    %edx, %esi
        call    __DISCARD__
        jmp     *(%ebp)
.Lfe8:
        .size   newArrayzh_fast,.Lfe8-newArrayzh_fast
        .align 16
.globl newMutVarzh_fast
        .type   newMutVarzh_fast,@function
newMutVarzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        addl    $12, %edi
        cmpl    96(%ebx), %edi
        ja      .L426
        leal    -8(%edi), %eax
        movl    %esi, 4(%eax)
        movl    %eax, %esi
        movl    $MUT_VAR_info, (%eax)
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L426:
        movl    $65534, 32(%ebx)
        movl    $newMutVarzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_chk, %eax
        jmp     *%eax
.Lfe9:
        .size   newMutVarzh_fast,.Lfe9-newMutVarzh_fast
        .align 16
.globl mkForeignObjzh_fast
        .type   mkForeignObjzh_fast,@function
mkForeignObjzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        addl    $8, %edi
        cmpl    96(%ebx), %edi
        ja      .L430
        leal    -4(%edi), %eax
        movl    %esi, 4(%eax)
        movl    %eax, %esi
        movl    $FOREIGN_info, (%eax)
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L430:
        movl    $65535, 32(%ebx)
        movl    $mkForeignObjzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_chk, %eax
        jmp     *%eax
.Lfe10:
        .size   mkForeignObjzh_fast,.Lfe10-mkForeignObjzh_fast
        .align 16
.globl unsafeThawArrayzh_fast
        .type   unsafeThawArrayzh_fast,@function
unsafeThawArrayzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    $MUT_ARR_PTRS_info, (%esi)
        movl    %esi, %ecx
        movl    %ecx, %edx
        andl    $1044480, %edx
        movl    %ecx, %eax
        andl    $-1048576, %eax
        shrl    $7, %edx
        orl     %eax, %edx
        movl    16(%edx), %eax
        cmpl    $0, (%eax)
        je      .L433
        movl    16(%eax), %eax
        movl    %eax, 8(%ecx)
        movl    16(%edx), %eax
        movl    %ecx, 16(%eax)
.L433:
        call    __DISCARD__
        jmp     *(%ebp)
.Lfe11:
        .size   unsafeThawArrayzh_fast,.Lfe11-unsafeThawArrayzh_fast
        .align 16
.globl mkWeakzh_fast
        .type   mkWeakzh_fast,@function
mkWeakzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    8(%ebx), %eax
        testl   %eax, %eax
        je      .L439
.L435:
        addl    $20, %edi
        cmpl    96(%ebx), %edi
        ja      .L440
        leal    -16(%edi), %eax
        movl    %esi, 4(%eax)
        movl    %eax, %esi
        movl    $WEAK_info, (%eax)
        movl    4(%ebx), %edx
        movl    %edx, 8(%eax)
        movl    8(%ebx), %edx
        movl    %edx, 12(%eax)
        movl    weak_ptr_list, %edx
        movl    %edx, 16(%eax)
        movl    %eax, weak_ptr_list
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L439:
        movl    $NO_FINALIZER_closure, 8(%ebx)
        jmp     .L435
        .p2align 4,,7
.L440:
        movl    $65528, 32(%ebx)
        movl    $mkWeakzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_chk, %eax
        jmp     *%eax
.Lfe12:
        .size   mkWeakzh_fast,.Lfe12-mkWeakzh_fast
        .align 16
.globl finalizzeWeakzh_fast
        .type   finalizzeWeakzh_fast,@function
finalizzeWeakzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    %esi, %edx
        cmpl    $DEAD_WEAK_info, (%edx)
        je      .L445
        movl    $DEAD_WEAK_info, (%edx)
        movl    12(%edx), %ecx
        movl    16(%edx), %eax
        cmpl    $NO_FINALIZER_closure, %ecx
        movl    %eax, 4(%edx)
        je      .L446
        movl    %ecx, -4(%ebp)
        movl    $1, %esi
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L445:
        movl    $NO_FINALIZER_closure, -4(%ebp)
        xorl    %esi, %esi
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L446:
        movl    %ecx, -4(%ebp)
        xorl    %esi, %esi
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
.Lfe13:
        .size   finalizzeWeakzh_fast,.Lfe13-finalizzeWeakzh_fast
        .align 16
.globl int2Integerzh_fast
        .type   int2Integerzh_fast,@function
int2Integerzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        addl    $12, %edi
        movl    %esi, %eax
        cmpl    96(%ebx), %edi
        ja      .L454
        leal    -8(%edi), %edx
        testl   %eax, %eax
        movl    $ARR_WORDS_info, (%edx)
        movl    $1, 4(%edx)
        js      .L455
        testl   %eax, %eax
        jle     .L452
        movl    %eax, (%edi)
        movl    $1, %ecx
        jmp     .L451
        .p2align 4,,7
.L452:
        xorl    %ecx, %ecx
.L451:
        movl    %edx, -4(%ebp)
        movl    %ecx, %esi
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L455:
        negl    %eax
        movl    $-1, %ecx
        movl    %eax, (%edi)
        jmp     .L451
        .p2align 4,,7
.L454:
        movl    $65535, 32(%ebx)
        movl    $int2Integerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_chk, %eax
        jmp     *%eax
.Lfe14:
        .size   int2Integerzh_fast,.Lfe14-int2Integerzh_fast
        .align 16
.globl word2Integerzh_fast
        .type   word2Integerzh_fast,@function
word2Integerzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        addl    $12, %edi
        movl    %esi, %ecx
        cmpl    96(%ebx), %edi
        ja      .L461
        leal    -8(%edi), %eax
        testl   %ecx, %ecx
        movl    $ARR_WORDS_info, (%eax)
        movl    $1, 4(%eax)
        je      .L459
        movl    %ecx, (%edi)
        movl    $1, %edx
        jmp     .L460
        .p2align 4,,7
.L459:
        xorl    %edx, %edx
.L460:
        movl    %eax, -4(%ebp)
        movl    %edx, %esi
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L461:
        movl    $65535, 32(%ebx)
        movl    $word2Integerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_chk, %eax
        jmp     *%eax
.Lfe15:
        .size   word2Integerzh_fast,.Lfe15-word2Integerzh_fast
        .align 16
.globl addr2Integerzh_fast
        .type   addr2Integerzh_fast,@function
addr2Integerzh_fast:
        subl    $28, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L466
        subl    $4, %esp
        pushl   $10
        pushl   %esi
        leal    12(%esp), %eax
        pushl   %eax
        call    mpz_init_set_str
        addl    $16, %esp
        testl   %eax, %eax
        jne     .L467
        movl    8(%esp), %eax
        movl    4(%esp), %esi
        subl    $8, %eax
        movl    %eax, -4(%ebp)
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L466:
        movl    $65535, 32(%ebx)
        movl    $addr2Integerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
        .p2align 4,,7
.L467:
        call    abort
.Lfe16:
        .size   addr2Integerzh_fast,.Lfe16-addr2Integerzh_fast
.globl __udivdi3
        .align 16
.globl int64ToIntegerzh_fast
        .type   int64ToIntegerzh_fast,@function
int64ToIntegerzh_fast:
        subl    $44, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    72(%ebx), %eax
        movl    76(%ebx), %edx
        movl    $0, 28(%esp)
        movl    %eax, 32(%esp)
        addl    $-1, %eax
        movl    %edx, 36(%esp)
        adcl    $0, %edx
        cmpl    $1, %edx
        jb      .L469
        cmpl    $1, %edx
        ja      .L470
        cmpl    $-2, %eax
        jbe     .L469
.L470:
        movl    $2, 24(%esp)
.L471:
        movl    24(%esp), %eax
        sall    $2, %eax
        leal    8(%eax,%edi), %edi
        cmpl    96(%ebx), %edi
        ja      .L480
        movl    %edi, %edx
        subl    %eax, %edx
        movl    %edx, %eax
        leal    -4(%eax), %edx
        movl    %edx, 20(%esp)
        movl    $ARR_WORDS_info, -4(%eax)
        movl    24(%esp), %eax
        movl    %eax, 4(%edx)
        movl    36(%esp), %edx
        testl   %edx, %edx
        js      .L481
.L474:
        pushl   $1
        pushl   $0
        movl    44(%esp), %eax
        pushl   %eax
        movl    44(%esp), %ecx
        pushl   %ecx
        call    __udivdi3
        addl    $16, %esp
        cmpl    $2, 24(%esp)
        movl    %eax, 8(%esp)
        movl    %edx, 12(%esp)
        je      .L482
        movl    32(%esp), %edx
        orl     36(%esp), %edx
        je      .L477
        movl    32(%esp), %eax
        movl    $1, %ecx
.L483:
        movl    %eax, (%edi)
.L476:
        movl    28(%esp), %edx
        testl   %edx, %edx
        je      .L479
        negl    %ecx
.L479:
        movl    20(%esp), %edx
        movl    %ecx, %esi
        movl    %edx, -4(%ebp)
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L477:
        xorl    %ecx, %ecx
        jmp     .L476
        .p2align 4,,7
.L482:
        movl    32(%esp), %edx
        movl    $2, %ecx
        movl    %edx, -4(%edi)
        movl    8(%esp), %eax
        jmp     .L483
        .p2align 4,,7
.L481:
        negl    32(%esp)
        movl    $1, 28(%esp)
        adcl    $0, 36(%esp)
        negl    36(%esp)
        jmp     .L474
        .p2align 4,,7
.L469:
        movl    $1, 24(%esp)
        jmp     .L471
        .p2align 4,,7
.L480:
        movl    $65535, 32(%ebx)
        movl    $int64ToIntegerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_chk, %eax
        jmp     *%eax
.Lfe17:
        .size   int64ToIntegerzh_fast,.Lfe17-int64ToIntegerzh_fast
        .align 16
.globl word64ToIntegerzh_fast
        .type   word64ToIntegerzh_fast,@function
word64ToIntegerzh_fast:
        subl    $28, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    76(%ebx), %edx
        movl    72(%ebx), %eax
        cmpl    $1, %edx
        movl    %edx, 20(%esp)
        sbbl    %edx, %edx
        addl    $2, %edx
        movl    %eax, 16(%esp)
        leal    0(,%edx,4), %eax
        leal    8(%eax,%edi), %edi
        cmpl    96(%ebx), %edi
        ja      .L495
        movl    %edi, %ecx
        subl    %eax, %ecx
        movl    %ecx, %eax
        leal    -4(%eax), %ecx
        movl    %ecx, 12(%esp)
        movl    $ARR_WORDS_info, -4(%eax)
        movl    %edx, 4(%ecx)
        pushl   $1
        pushl   $0
        movl    28(%esp), %eax
        pushl   %eax
        movl    28(%esp), %ecx
        pushl   %ecx
        call    __udivdi3
        addl    $16, %esp
        cmpl    $0, 20(%esp)
        movl    %eax, (%esp)
        movl    %edx, 4(%esp)
        jbe     .L490
        movl    16(%esp), %eax
        movl    $2, %ecx
        movl    %eax, -4(%edi)
        movl    (%esp), %edx
        movl    %edx, (%edi)
        jmp     .L492
        .p2align 4,,7
.L490:
        movl    16(%esp), %ecx
        orl     20(%esp), %ecx
        je      .L493
        movl    16(%esp), %eax
        movl    $1, %ecx
        movl    %eax, (%edi)
        jmp     .L492
        .p2align 4,,7
.L493:
        xorl    %ecx, %ecx
.L492:
        movl    12(%esp), %edx
        movl    %ecx, %esi
        movl    %edx, -4(%ebp)
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L495:
        movl    $65535, 32(%ebx)
        movl    $word64ToIntegerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_chk, %eax
        jmp     *%eax
.Lfe18:
        .size   word64ToIntegerzh_fast,.Lfe18-word64ToIntegerzh_fast
        .align 16
.globl plusIntegerzh_fast
        .type   plusIntegerzh_fast,@function
plusIntegerzh_fast:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $72, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L499
        movl    8(%ebx), %eax
        subl    $12, %esp
        movl    4(%ebx), %edx
        movl    12(%ebx), %ecx
        movl    %eax, -60(%ebp)
        movl    4(%edx), %eax
        addl    $8, %edx
        movl    %esi, -20(%ebp)
        movl    %edx, -16(%ebp)
        movl    %eax, -24(%ebp)
        movl    4(%ecx), %eax
        addl    $8, %ecx
        movl    %ecx, -32(%ebp)
        movl    %eax, -40(%ebp)
        movl    -60(%ebp), %eax
        movl    %eax, -36(%ebp)
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_init
        addl    $12, %esp
        leal    -40(%ebp), %eax
        pushl   %eax
        leal    -24(%ebp), %eax
        pushl   %eax
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_add
        movl    -48(%ebp), %eax
        addl    $16, %esp
        movl    -52(%ebp), %esi
        subl    $8, %eax
        movl    %eax, -4(%ebp)
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L499:
        movl    $65525, 32(%ebx)
        movl    $plusIntegerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe19:
        .size   plusIntegerzh_fast,.Lfe19-plusIntegerzh_fast
        .align 16
.globl minusIntegerzh_fast
        .type   minusIntegerzh_fast,@function
minusIntegerzh_fast:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $72, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L503
        movl    8(%ebx), %eax
        subl    $12, %esp
        movl    4(%ebx), %edx
        movl    12(%ebx), %ecx
        movl    %eax, -60(%ebp)
        movl    4(%edx), %eax
        addl    $8, %edx
        movl    %esi, -20(%ebp)
        movl    %edx, -16(%ebp)
        movl    %eax, -24(%ebp)
        movl    4(%ecx), %eax
        addl    $8, %ecx
        movl    %ecx, -32(%ebp)
        movl    %eax, -40(%ebp)
        movl    -60(%ebp), %eax
        movl    %eax, -36(%ebp)
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_init
        addl    $12, %esp
        leal    -40(%ebp), %eax
        pushl   %eax
        leal    -24(%ebp), %eax
        pushl   %eax
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_sub
        movl    -48(%ebp), %eax
        addl    $16, %esp
        movl    -52(%ebp), %esi
        subl    $8, %eax
        movl    %eax, -4(%ebp)
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L503:
        movl    $65525, 32(%ebx)
        movl    $minusIntegerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe20:
        .size   minusIntegerzh_fast,.Lfe20-minusIntegerzh_fast
        .align 16
.globl timesIntegerzh_fast
        .type   timesIntegerzh_fast,@function
timesIntegerzh_fast:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $72, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L507
        movl    8(%ebx), %eax
        subl    $12, %esp
        movl    4(%ebx), %edx
        movl    12(%ebx), %ecx
        movl    %eax, -60(%ebp)
        movl    4(%edx), %eax
        addl    $8, %edx
        movl    %esi, -20(%ebp)
        movl    %edx, -16(%ebp)
        movl    %eax, -24(%ebp)
        movl    4(%ecx), %eax
        addl    $8, %ecx
        movl    %ecx, -32(%ebp)
        movl    %eax, -40(%ebp)
        movl    -60(%ebp), %eax
        movl    %eax, -36(%ebp)
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_init
        addl    $12, %esp
        leal    -40(%ebp), %eax
        pushl   %eax
        leal    -24(%ebp), %eax
        pushl   %eax
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_mul
        movl    -48(%ebp), %eax
        addl    $16, %esp
        movl    -52(%ebp), %esi
        subl    $8, %eax
        movl    %eax, -4(%ebp)
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L507:
        movl    $65525, 32(%ebx)
        movl    $timesIntegerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe21:
        .size   timesIntegerzh_fast,.Lfe21-timesIntegerzh_fast
        .align 16
.globl gcdIntegerzh_fast
        .type   gcdIntegerzh_fast,@function
gcdIntegerzh_fast:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $72, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L511
        movl    8(%ebx), %eax
        subl    $12, %esp
        movl    4(%ebx), %edx
        movl    12(%ebx), %ecx
        movl    %eax, -60(%ebp)
        movl    4(%edx), %eax
        addl    $8, %edx
        movl    %esi, -20(%ebp)
        movl    %edx, -16(%ebp)
        movl    %eax, -24(%ebp)
        movl    4(%ecx), %eax
        addl    $8, %ecx
        movl    %ecx, -32(%ebp)
        movl    %eax, -40(%ebp)
        movl    -60(%ebp), %eax
        movl    %eax, -36(%ebp)
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_init
        addl    $12, %esp
        leal    -40(%ebp), %eax
        pushl   %eax
        leal    -24(%ebp), %eax
        pushl   %eax
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_gcd
        movl    -48(%ebp), %eax
        addl    $16, %esp
        movl    -52(%ebp), %esi
        subl    $8, %eax
        movl    %eax, -4(%ebp)
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L511:
        movl    $65525, 32(%ebx)
        movl    $gcdIntegerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe22:
        .size   gcdIntegerzh_fast,.Lfe22-gcdIntegerzh_fast
        .align 16
.globl quotIntegerzh_fast
        .type   quotIntegerzh_fast,@function
quotIntegerzh_fast:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $72, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L515
        movl    8(%ebx), %eax
        subl    $12, %esp
        movl    4(%ebx), %edx
        movl    12(%ebx), %ecx
        movl    %eax, -60(%ebp)
        movl    4(%edx), %eax
        addl    $8, %edx
        movl    %esi, -20(%ebp)
        movl    %edx, -16(%ebp)
        movl    %eax, -24(%ebp)
        movl    4(%ecx), %eax
        addl    $8, %ecx
        movl    %ecx, -32(%ebp)
        movl    %eax, -40(%ebp)
        movl    -60(%ebp), %eax
        movl    %eax, -36(%ebp)
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_init
        addl    $12, %esp
        leal    -40(%ebp), %eax
        pushl   %eax
        leal    -24(%ebp), %eax
        pushl   %eax
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_tdiv_q
        movl    -48(%ebp), %eax
        addl    $16, %esp
        movl    -52(%ebp), %esi
        subl    $8, %eax
        movl    %eax, -4(%ebp)
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L515:
        movl    $65525, 32(%ebx)
        movl    $quotIntegerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe23:
        .size   quotIntegerzh_fast,.Lfe23-quotIntegerzh_fast
        .align 16
.globl remIntegerzh_fast
        .type   remIntegerzh_fast,@function
remIntegerzh_fast:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $72, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L519
        movl    8(%ebx), %eax
        subl    $12, %esp
        movl    4(%ebx), %edx
        movl    12(%ebx), %ecx
        movl    %eax, -60(%ebp)
        movl    4(%edx), %eax
        addl    $8, %edx
        movl    %esi, -20(%ebp)
        movl    %edx, -16(%ebp)
        movl    %eax, -24(%ebp)
        movl    4(%ecx), %eax
        addl    $8, %ecx
        movl    %ecx, -32(%ebp)
        movl    %eax, -40(%ebp)
        movl    -60(%ebp), %eax
        movl    %eax, -36(%ebp)
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_init
        addl    $12, %esp
        leal    -40(%ebp), %eax
        pushl   %eax
        leal    -24(%ebp), %eax
        pushl   %eax
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_tdiv_r
        movl    -48(%ebp), %eax
        addl    $16, %esp
        movl    -52(%ebp), %esi
        subl    $8, %eax
        movl    %eax, -4(%ebp)
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L519:
        movl    $65525, 32(%ebx)
        movl    $remIntegerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe24:
        .size   remIntegerzh_fast,.Lfe24-remIntegerzh_fast
        .align 16
.globl divExactIntegerzh_fast
        .type   divExactIntegerzh_fast,@function
divExactIntegerzh_fast:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $72, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L523
        movl    8(%ebx), %eax
        subl    $12, %esp
        movl    4(%ebx), %edx
        movl    12(%ebx), %ecx
        movl    %eax, -60(%ebp)
        movl    4(%edx), %eax
        addl    $8, %edx
        movl    %esi, -20(%ebp)
        movl    %edx, -16(%ebp)
        movl    %eax, -24(%ebp)
        movl    4(%ecx), %eax
        addl    $8, %ecx
        movl    %ecx, -32(%ebp)
        movl    %eax, -40(%ebp)
        movl    -60(%ebp), %eax
        movl    %eax, -36(%ebp)
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_init
        addl    $12, %esp
        leal    -40(%ebp), %eax
        pushl   %eax
        leal    -24(%ebp), %eax
        pushl   %eax
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_divexact
        movl    -48(%ebp), %eax
        addl    $16, %esp
        movl    -52(%ebp), %esi
        subl    $8, %eax
        movl    %eax, -4(%ebp)
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L523:
        movl    $65525, 32(%ebx)
        movl    $divExactIntegerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe25:
        .size   divExactIntegerzh_fast,.Lfe25-divExactIntegerzh_fast
        .align 16
.globl quotRemIntegerzh_fast
        .type   quotRemIntegerzh_fast,@function
quotRemIntegerzh_fast:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $88, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L527
        movl    8(%ebx), %eax
        subl    $12, %esp
        movl    4(%ebx), %edx
        movl    12(%ebx), %ecx
        movl    %eax, -76(%ebp)
        movl    4(%edx), %eax
        addl    $8, %edx
        movl    %esi, -20(%ebp)
        movl    %edx, -16(%ebp)
        movl    %eax, -24(%ebp)
        movl    4(%ecx), %eax
        addl    $8, %ecx
        movl    %ecx, -32(%ebp)
        movl    %eax, -40(%ebp)
        movl    -76(%ebp), %eax
        movl    %eax, -36(%ebp)
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_init
        leal    -72(%ebp), %eax
        movl    %eax, (%esp)
        call    mpz_init
        addl    $16, %esp
        leal    -40(%ebp), %eax
        pushl   %eax
        leal    -24(%ebp), %eax
        pushl   %eax
        leal    -72(%ebp), %eax
        pushl   %eax
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_tdiv_qr
        movl    -48(%ebp), %eax
        addl    $16, %esp
        movl    -52(%ebp), %esi
        subl    $8, %eax
        movl    %eax, -16(%ebp)
        movl    -68(%ebp), %eax
        movl    %eax, -8(%ebp)
        movl    -64(%ebp), %eax
        subl    $8, %eax
        movl    %eax, -4(%ebp)
        subl    $16, %ebp
        call    __DISCARD__
        jmp     *16(%ebp)
        .p2align 4,,7
.L527:
        movl    $65525, 32(%ebx)
        movl    $quotRemIntegerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe26:
        .size   quotRemIntegerzh_fast,.Lfe26-quotRemIntegerzh_fast
        .align 16
.globl divModIntegerzh_fast
        .type   divModIntegerzh_fast,@function
divModIntegerzh_fast:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $88, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L531
        movl    8(%ebx), %eax
        subl    $12, %esp
        movl    4(%ebx), %edx
        movl    12(%ebx), %ecx
        movl    %eax, -76(%ebp)
        movl    4(%edx), %eax
        addl    $8, %edx
        movl    %esi, -20(%ebp)
        movl    %edx, -16(%ebp)
        movl    %eax, -24(%ebp)
        movl    4(%ecx), %eax
        addl    $8, %ecx
        movl    %ecx, -32(%ebp)
        movl    %eax, -40(%ebp)
        movl    -76(%ebp), %eax
        movl    %eax, -36(%ebp)
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_init
        leal    -72(%ebp), %eax
        movl    %eax, (%esp)
        call    mpz_init
        addl    $16, %esp
        leal    -40(%ebp), %eax
        pushl   %eax
        leal    -24(%ebp), %eax
        pushl   %eax
        leal    -72(%ebp), %eax
        pushl   %eax
        leal    -56(%ebp), %eax
        pushl   %eax
        call    mpz_fdiv_qr
        movl    -48(%ebp), %eax
        addl    $16, %esp
        movl    -52(%ebp), %esi
        subl    $8, %eax
        movl    %eax, -16(%ebp)
        movl    -68(%ebp), %eax
        movl    %eax, -8(%ebp)
        movl    -64(%ebp), %eax
        subl    $8, %eax
        movl    %eax, -4(%ebp)
        subl    $16, %ebp
        call    __DISCARD__
        jmp     *16(%ebp)
        .p2align 4,,7
.L531:
        movl    $65525, 32(%ebx)
        movl    $divModIntegerzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe27:
        .size   divModIntegerzh_fast,.Lfe27-divModIntegerzh_fast
        .align 16
.globl decodeFloatzh_fast
        .type   decodeFloatzh_fast,@function
decodeFloatzh_fast:
        subl    $44, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        addl    $12, %edi
        movl    40(%ebx), %edx
        cmpl    96(%ebx), %edi
        ja      .L535
        leal    -8(%edi), %eax
        movl    %eax, 8(%esp)
        movl    $ARR_WORDS_info, (%eax)
        movl    $1, 4(%eax)
        movl    8(%esp), %eax
        addl    $8, %eax
        movl    %eax, 24(%esp)
        subl    $4, %esp
        pushl   %edx
        leal    20(%esp), %eax
        pushl   %eax
        leal    28(%esp), %eax
        pushl   %eax
        call    __decodeFloat
        addl    $16, %esp
        movl    20(%esp), %eax
        movl    12(%esp), %esi
        movl    %eax, -8(%ebp)
        movl    8(%esp), %eax
        movl    %eax, -4(%ebp)
        subl    $12, %ebp
        call    __DISCARD__
        jmp     *12(%ebp)
        .p2align 4,,7
.L535:
        movl    $65535, 32(%ebx)
        movl    $decodeFloatzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_chk, %eax
        jmp     *%eax
.Lfe28:
        .size   decodeFloatzh_fast,.Lfe28-decodeFloatzh_fast
        .align 16
.globl decodeDoublezh_fast
        .type   decodeDoublezh_fast,@function
decodeDoublezh_fast:
        subl    $44, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        addl    $16, %edi
        movl    56(%ebx), %edx
        movl    60(%ebx), %ecx
        cmpl    96(%ebx), %edi
        ja      .L539
        leal    -12(%edi), %eax
        movl    %eax, 8(%esp)
        movl    $ARR_WORDS_info, (%eax)
        movl    $2, 4(%eax)
        movl    8(%esp), %eax
        addl    $8, %eax
        movl    %eax, 24(%esp)
        pushl   %ecx
        pushl   %edx
        leal    20(%esp), %eax
        pushl   %eax
        leal    28(%esp), %eax
        pushl   %eax
        call    __decodeDouble
        addl    $16, %esp
        movl    20(%esp), %eax
        movl    12(%esp), %esi
        movl    %eax, -8(%ebp)
        movl    8(%esp), %eax
        movl    %eax, -4(%ebp)
        subl    $12, %ebp
        call    __DISCARD__
        jmp     *12(%ebp)
        .p2align 4,,7
.L539:
        movl    $65535, 32(%ebx)
        movl    $decodeDoublezh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_chk, %eax
        jmp     *%eax
.Lfe29:
        .size   decodeDoublezh_fast,.Lfe29-decodeDoublezh_fast
        .align 16
.globl forkzh_fast
        .type   forkzh_fast,@function
forkzh_fast:
        subl    $44, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    alloc_blocks_lim, %eax
        cmpl    %eax, alloc_blocks
        jae     .L544
        movl    %esi, 12(%esp)
        movl    RtsFlags+12, %eax
        subl    $12, %esp
        pushl   %eax
        call    createThread
        popl    %ecx
        movl    %eax, %ecx
        movl    44(%ecx), %eax
        movl    %ecx, %esi
        leal    -8(%eax), %edx
        movl    $0, -4(%eax)
        movl    %edx, 44(%ecx)
        movl    24(%esp), %edx
        movl    %edx, -8(%eax)
        pushl   %esi
        call    scheduleThread
        movl    $1, %edx
        addl    $16, %esp
        movl    %edx, context_switch
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L544:
        movl    $65534, 32(%ebx)
        movl    $forkzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_hp, %eax
        jmp     *%eax
.Lfe30:
        .size   forkzh_fast,.Lfe30-forkzh_fast
        .align 16
.globl yieldzh_fast
        .type   yieldzh_fast,@function
yieldzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        call    __DISCARD__
        movl    $stg_yield_noregs, %eax
        jmp     *%eax
.Lfe31:
        .size   yieldzh_fast,.Lfe31-yieldzh_fast
        .align 16
.globl newMVarzh_fast
        .type   newMVarzh_fast,@function
newMVarzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        addl    $20, %edi
        cmpl    96(%ebx), %edi
        ja      .L549
        leal    -16(%edi), %edx
        movl    $END_TSO_QUEUE_closure, %eax
        movl    %edx, %esi
        movl    $EMPTY_MVAR_info, (%edx)
        movl    %eax, 12(%edx)
        movl    %eax, 4(%edx)
        movl    %eax, 16(%edx)
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L549:
        movl    $65535, 32(%ebx)
        movl    $newMVarzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_chk, %eax
        jmp     *%eax
.Lfe32:
        .size   newMVarzh_fast,.Lfe32-newMVarzh_fast
        .align 16
.globl takeMVarzh_fast
        .type   takeMVarzh_fast,@function
takeMVarzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    %esi, %ecx
        cmpl    $EMPTY_MVAR_info, (%ecx)
        jne     .L551
        cmpl    $END_TSO_QUEUE_closure, 4(%ecx)
        je      .L554
        movl    12(%ecx), %edx
        movl    100(%ebx), %eax
        movl    %eax, 4(%edx)
.L553:
        movl    100(%ebx), %eax
        movl    $END_TSO_QUEUE_closure, 4(%eax)
        movl    100(%ebx), %eax
        movl    $1, 20(%eax)
        movl    100(%ebx), %eax
        movl    %ecx, 24(%eax)
        movl    100(%ebx), %eax
        movl    %eax, 12(%ecx)
        movl    $65534, 32(%ebx)
        movl    $takeMVarzh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_block, %eax
        jmp     *%eax
        .p2align 4,,7
.L554:
        movl    100(%ebx), %eax
        movl    %eax, 4(%ecx)
        jmp     .L553
        .p2align 4,,7
.L551:
        movl    $EMPTY_MVAR_info, (%ecx)
        movl    16(%ecx), %eax
        movl    $END_TSO_QUEUE_closure, 16(%ecx)
        movl    %eax, %esi
        call    __DISCARD__
        jmp     *(%ebp)
.Lfe33:
        .size   takeMVarzh_fast,.Lfe33-takeMVarzh_fast
        .align 16
.globl tryTakeMVarzh_fast
        .type   tryTakeMVarzh_fast,@function
tryTakeMVarzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    %esi, %edx
        cmpl    $EMPTY_MVAR_info, (%edx)
        je      .L557
        movl    $EMPTY_MVAR_info, (%edx)
        movl    16(%edx), %eax
        movl    $1, %esi
        movl    $END_TSO_QUEUE_closure, 16(%edx)
        movl    %eax, -4(%ebp)
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
        .p2align 4,,7
.L557:
        movl    $NO_FINALIZER_closure, -4(%ebp)
        xorl    %esi, %esi
        subl    $4, %ebp
        call    __DISCARD__
        jmp     *4(%ebp)
.Lfe34:
        .size   tryTakeMVarzh_fast,.Lfe34-tryTakeMVarzh_fast
        .align 16
.globl putMVarzh_fast
        .type   putMVarzh_fast,@function
putMVarzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    %esi, 8(%esp)
        cmpl    $FULL_MVAR_info, (%esi)
        je      .L562
        movl    4(%ebx), %eax
        movl    8(%esp), %edx
        movl    %eax, 16(%edx)
        movl    4(%edx), %eax
        cmpl    $END_TSO_QUEUE_closure, %eax
        je      .L560
        subl    $12, %esp
        pushl   %eax
        call    unblockOne
        addl    $16, %esp
        cmpl    $END_TSO_QUEUE_closure, %eax
        movl    8(%esp), %edx
        movl    %eax, 4(%edx)
        jne     .L560
        movl    %eax, 12(%edx)
.L560:
        movl    8(%esp), %eax
        movl    $FULL_MVAR_info, (%eax)
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L562:
        movl    $PrelException_PutFullMVar_closure, %esi
        call    __DISCARD__
        movl    $raisezh_fast, %eax
        jmp     *%eax
.Lfe35:
        .size   putMVarzh_fast,.Lfe35-putMVarzh_fast
        .align 16
.globl makeStableNamezh_fast
        .type   makeStableNamezh_fast,@function
makeStableNamezh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        addl    $8, %edi
        cmpl    96(%ebx), %edi
        ja      .L568
        subl    $12, %esp
        pushl   %esi
        call    lookupStableName
        movl    %eax, %ecx
        movl    stable_ptr_table, %eax
        addl    $16, %esp
        movl    %eax, 8(%esp)
        leal    (%ecx,%ecx,2), %eax
        movl    8(%esp), %edx
        sall    $2, %eax
        movl    %eax, 4(%esp)
        movl    8(%edx,%eax), %eax
        testl   %eax, %eax
        movl    %eax, (%esp)
        je      .L569
        movl    (%esp), %edx
.L567:
        movl    %edx, %esi
        call    __DISCARD__
        jmp     *(%ebp)
        .p2align 4,,7
.L569:
        leal    -4(%edi), %edx
        movl    $STABLE_NAME_info, (%edx)
        movl    %ecx, 4(%edx)
        movl    4(%esp), %ecx
        movl    8(%esp), %eax
        movl    %edx, 8(%eax,%ecx)
        jmp     .L567
        .p2align 4,,7
.L568:
        movl    $65534, 32(%ebx)
        movl    $makeStableNamezh_fast, 36(%ebx)
        call    __DISCARD__
        movl    $stg_gen_chk, %eax
        jmp     *%eax
.Lfe36:
        .size   makeStableNamezh_fast,.Lfe36-makeStableNamezh_fast
        .align 16
.globl waitReadzh_fast
        .type   waitReadzh_fast,@function
waitReadzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        cmpl    $END_TSO_QUEUE_closure, blocked_queue_hd
        movl    100(%ebx), %eax
        movl    $4, 20(%eax)
        movl    100(%ebx), %eax
        movl    %esi, 24(%eax)
        je      .L573
        movl    100(%ebx), %edx
        movl    blocked_queue_tl, %eax
        movl    %edx, 4(%eax)
.L572:
        movl    100(%ebx), %eax
        movl    %eax, blocked_queue_tl
        call    __DISCARD__
        movl    $stg_block_noregs, %eax
        jmp     *%eax
        .p2align 4,,7
.L573:
        movl    100(%ebx), %eax
        movl    %eax, blocked_queue_hd
        jmp     .L572
.Lfe37:
        .size   waitReadzh_fast,.Lfe37-waitReadzh_fast
        .align 16
.globl waitWritezh_fast
        .type   waitWritezh_fast,@function
waitWritezh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        cmpl    $END_TSO_QUEUE_closure, blocked_queue_hd
        movl    100(%ebx), %eax
        movl    $5, 20(%eax)
        movl    100(%ebx), %eax
        movl    %esi, 24(%eax)
        je      .L577
        movl    100(%ebx), %edx
        movl    blocked_queue_tl, %eax
        movl    %edx, 4(%eax)
.L576:
        movl    100(%ebx), %eax
        movl    %eax, blocked_queue_tl
        call    __DISCARD__
        movl    $stg_block_noregs, %eax
        jmp     *%eax
        .p2align 4,,7
.L577:
        movl    100(%ebx), %eax
        movl    %eax, blocked_queue_hd
        jmp     .L576
.Lfe38:
        .size   waitWritezh_fast,.Lfe38-waitWritezh_fast
        .align 16
.globl delayzh_fast
        .type   delayzh_fast,@function
delayzh_fast:
        subl    $12, %esp
#APP
        --- BEGIN ---
#NO_APP
        call    __DISCARD__
        movl    ticks_since_select, %ecx
        movl    100(%ebx), %eax
        movl    $6, 20(%eax)
        movl    %esi, %eax
        addl    %ecx, %eax
        cmpl    $END_TSO_QUEUE_closure, blocked_queue_hd
        movl    100(%ebx), %edx
        movl    %eax, 24(%edx)
        je      .L581
        movl    100(%ebx), %edx
        movl    blocked_queue_tl, %eax
        movl    %edx, 4(%eax)
.L580:
        movl    100(%ebx), %eax
        movl    %eax, blocked_queue_tl
        call    __DISCARD__
        movl    $stg_block_noregs, %eax
        jmp     *%eax
        .p2align 4,,7
.L581:
        movl    100(%ebx), %eax
        movl    %eax, blocked_queue_hd
        jmp     .L580
.Lfe39:
        .size   delayzh_fast,.Lfe39-delayzh_fast
        .comm   GHC_ZCCCallable_static_info,0,4
        .comm   GHC_ZCCReturnable_static_info,0,4
        .ident  "GCC: (GNU) 3.0"
Prologue junk?: .globl plusIntegerzh_fast
plusIntegerzh_fast:
        pushl   %ebp
        movl    %esp, %ebp
        

Reply via email to