Problem building 4.08.2 from scratch

Loz loz at flower.powernet.co.uk
Sat Sep 22 20:16:51 EDT 2001


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
-------------- next part --------------
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, at object
	.size	ghc_cc_ID,25
ghc_cc_ID:
	.string	"@(#)cc PrimOps.hc\t36.1,,"
	.text
	.align 16
.globl newCharArrayzh_fast
	.type	newCharArrayzh_fast, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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, at 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
	


More information about the Glasgow-haskell-bugs mailing list