
	.text

	.globl	ap_2
	.globl	ap_3
	.globl	ap_4
	.globl	ap_5
	.globl	ap_6
	.globl	ap_7
	.globl	ap_8
	.globl	ap_9
	.globl	ap_10
	.globl	ap_11
	.globl	ap_12
	.globl	ap_13
	.globl	ap_14
	.globl	ap_15
	.globl	ap_16
	.globl	ap_17
	.globl	ap_18
	.globl	ap_19
	.globl	ap_20
	.globl	ap_21
	.globl	ap_22
	.globl	ap_23
	.globl	ap_24
	.globl	ap_25
	.globl	ap_26
	.globl	ap_27
	.globl	ap_28
	.globl	ap_29
	.globl	ap_30
	.globl	ap_31
	.globl	ap_32

	.globl	add_empty_node_2
	.globl	add_empty_node_3
	.globl	add_empty_node_4
	.globl	add_empty_node_5
	.globl	add_empty_node_6
	.globl	add_empty_node_7
	.globl	add_empty_node_8
	.globl	add_empty_node_9
	.globl	add_empty_node_10
	.globl	add_empty_node_11
	.globl	add_empty_node_12
	.globl	add_empty_node_13
	.globl	add_empty_node_14
	.globl	add_empty_node_15
	.globl	add_empty_node_16
	.globl	add_empty_node_17
	.globl	add_empty_node_18
	.globl	add_empty_node_19
	.globl	add_empty_node_20
	.globl	add_empty_node_21
	.globl	add_empty_node_22
	.globl	add_empty_node_23
	.globl	add_empty_node_24
	.globl	add_empty_node_25
	.globl	add_empty_node_26
	.globl	add_empty_node_27
	.globl	add_empty_node_28
	.globl	add_empty_node_29
	.globl	add_empty_node_30
	.globl	add_empty_node_31
	.globl	add_empty_node_32

	.globl	yet_args_needed_5
	.globl	yet_args_needed_6
	.globl	yet_args_needed_7
	.globl	yet_args_needed_8
	.globl	yet_args_needed_9
	.globl	yet_args_needed_10
	.globl	yet_args_needed_11
	.globl	yet_args_needed_12
	.globl	yet_args_needed_13
	.globl	yet_args_needed_14
	.globl	yet_args_needed_15
	.globl	yet_args_needed_16
	.globl	yet_args_needed_17
	.globl	yet_args_needed_18
	.globl	yet_args_needed_19
	.globl	yet_args_needed_20
	.globl	yet_args_needed_21
	.globl	yet_args_needed_22
	.globl	yet_args_needed_23
	.globl	yet_args_needed_24
	.globl	yet_args_needed_25
	.globl	yet_args_needed_26
	.globl	yet_args_needed_27
	.globl	yet_args_needed_28
	.globl	yet_args_needed_29
	.globl	yet_args_needed_30
	.globl	yet_args_needed_31

ap_32:
	movl	(a1),a2
	movl	$32*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_31:
	movl	(a1),a2
	movl	$31*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_30:
	movl	(a1),a2
	movl	$30*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_29:
	movl	(a1),a2
	movl	$29*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_28:
	movl	(a1),a2
	movl	$28*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_27:
	movl	(a1),a2
	movl	$27*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_26:
	movl	(a1),a2
	movl	$26*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_25:
	movl	(a1),a2
	movl	$25*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_24:
	movl	(a1),a2
	movl	$24*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_23:
	movl	(a1),a2
	movl	$23*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_22:
	movl	(a1),a2
	movl	$22*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_21:
	movl	(a1),a2
	movl	$21*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_20:
	movl	(a1),a2
	movl	$20*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_19:
	movl	(a1),a2
	movl	$19*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_18:
	movl	(a1),a2
	movl	$18*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_17:
	movl	(a1),a2
	movl	$17*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_16:
	movl	(a1),a2
	movl	$16*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_15:
	movl	(a1),a2
	movl	$15*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_14:
	movl	(a1),a2
	movl	$14*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_13:
	movl	(a1),a2
	movl	$13*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_12:
	movl	(a1),a2
	movl	$12*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_11:
	movl	(a1),a2
	movl	$11*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_10:
	movl	(a1),a2
	movl	$10*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_9:
	movl	(a1),a2
	movl	$9*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_8:
	movl	(a1),a2
	movl	$8*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_7:
	movl	(a1),a2
	movl	$7*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_6:
	movl	(a1),a2
	movl	$6*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_5:
	movl	(a1),a2
	movl	$5*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_4:
	movl	(a1),a2
	movl	$4*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_3:
	movl	(a1),a2
	movl	$3*8,d1
	cmpw	d1w,(a2)
	je	fast_ap

	call	*2(a2)
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3

ap_2:
	movl	(a1),a2
	movl	$2*8,d1
	cmpw	d1w,(a2)
	jne	no_fast_ap2

fast_ap:
	addl	a2,d1
	movzwl	-2(a2),d0
	movl	-6(d1),a2
#ifdef PROFILE
	subl	$20,a2
#else
	subl	$12,a2
#endif
	cmpl	$1,d0
	jb	repl_args_0
	je	repl_args_1

	movl	a0,(a3)
	addl	$4,a3
	movl	8(a1),a0

	cmpl	$3,d0
	jb	repl_args_2

	movl	4(a1),a1
	je	repl_args_3

	cmpl	$5,d0
	jb	repl_args_4
	je	repl_args_5

	cmpl	$7,d0
	jb	repl_args_6

	push	d1

repl_args_7_:
	movl	-8(a0,d0,4),d1
	movl	d1,(a3)
	subl	$1,d0
	addl	$4,a3
	cmpl	$6,d0
	jne	repl_args_7_

	pop	d1

repl_args_6:
	movl	16(a0),d0
	movl	d0,(a3)
	movl	12(a0),d0
	movl	d0,4(a3)
	movl	8(a0),d0
	movl	d0,8(a3)
	movl	4(a0),d0
	movl	(a0),a0
	movl	d0,12(a3)
	addl	$16,a3
	jmp	*a2

repl_args_0:
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3
	jmp	*a2

repl_args_1:
	movl	4(a1),a1
	jmp	*a2

repl_args_2:
	movl	4(a1),a1
	jmp	*a2

repl_args_3:
	movl	4(a0),d0
	movl	(a0),a0
	movl	d0,(a3)
	addl	$4,a3
	jmp	*a2

repl_args_4:
	movl	8(a0),d0
	movl	d0,(a3)
	movl	4(a0),d0
	movl	(a0),a0
	movl	d0,4(a3)
	addl	$8,a3
	jmp	*a2

repl_args_5:
	movl	12(a0),d0
	movl	d0,(a3)
	movl	8(a0),d0
	movl	d0,4(a3)
	movl	4(a0),d0
	movl	(a0),a0
	movl	d0,8(a3)
	addl	$12,a3
	jmp	*a2

no_fast_ap2:
	call	*2(a2)
	movl	(a0),a2
	movl	a0,a1
	movl	-4(a3),a0
	subl	$4,a3
	jmp	*2(a2)


add_empty_node_2:
	cmpl	end_heap,a4
	jae	add_empty_node_2_gc
add_empty_node_2_gc_:
	movl	a4,(a3)
	movl	$__cycle__in__spine,(a4)
	addl	$12,a4
	addl	$4,a3
	ret
add_empty_node_2_gc:
	call	collect_2
	jmp	add_empty_node_2_gc_

add_empty_node_3:
	cmpl	end_heap,a4
	jae	add_empty_node_3_gc
add_empty_node_3_gc_:
	movl	-4(a3),a2
	movl	a2,(a3)
	movl	a4,-4(a3)
	movl	$__cycle__in__spine,(a4)
	addl	$12,a4
	addl	$4,a3
	ret
add_empty_node_3_gc:
	call	collect_2
	jmp	add_empty_node_3_gc_

add_empty_node_4:
	cmpl	end_heap,a4
	jae	add_empty_node_4_gc
add_empty_node_4_gc_:
	movl	-4(a3),a2
	movl	a2,(a3)
	movl	-8(a3),a2
	movl	a2,-4(a3)
	movl	a4,-8(a3)
	movl	$__cycle__in__spine,(a4)
	addl	$12,a4
	addl	$4,a3
	ret
add_empty_node_4_gc:
	call	collect_2
	jmp	add_empty_node_4_gc_

add_empty_node_5:
	cmpl	end_heap,a4
	jae	add_empty_node_5_gc
add_empty_node_5_gc_:
	movl	-4(a3),a2
	movl	a2,(a3)
	movl	-8(a3),a2
	movl	a2,-4(a3)
	movl	-12(a3),a2
	movl	a2,-8(a3)
	movl	a4,-12(a3)
	movl	$__cycle__in__spine,(a4)
	addl	$12,a4
	addl	$4,a3
	ret
add_empty_node_5_gc:
	call	collect_2
	jmp	add_empty_node_5_gc_

add_empty_node_6:
	cmpl	end_heap,a4
	jae	add_empty_node_6_gc
add_empty_node_6_gc_:
	movl	-4(a3),a2
	movl	a2,(a3)
	movl	-8(a3),a2
	movl	a2,-4(a3)
	movl	-12(a3),a2
	movl	a2,-8(a3)
	movl	-16(a3),a2
	movl	a2,-12(a3)
	movl	a4,-16(a3)
	movl	$__cycle__in__spine,(a4)
	addl	$12,a4
	addl	$4,a3
	ret
add_empty_node_6_gc:
	call	collect_2
	jmp	add_empty_node_6_gc_

add_empty_node_7:
	cmpl	end_heap,a4
	jae	add_empty_node_7_gc
add_empty_node_7_gc_:
	movl	-4(a3),a2
	movl	a2,(a3)
	movl	-8(a3),a2
	movl	a2,-4(a3)
	movl	-12(a3),a2
	movl	a2,-8(a3)
	movl	-16(a3),a2
	movl	a2,-12(a3)
	movl	-20(a3),a2
	movl	a2,-16(a3)
	movl	a4,-20(a3)
	movl	$__cycle__in__spine,(a4)
	addl	$12,a4
	addl	$4,a3
	ret
add_empty_node_7_gc:
	call	collect_2
	jmp	add_empty_node_7_gc_

add_empty_node_8:
	cmpl	end_heap,a4
	jae	add_empty_node_8_gc
add_empty_node_8_gc_:
	movl	-4(a3),a2
	movl	a2,(a3)
	movl	-8(a3),a2
	movl	a2,-4(a3)
	movl	-12(a3),a2
	movl	a2,-8(a3)
	movl	-16(a3),a2
	movl	a2,-12(a3)
	movl	-20(a3),a2
	movl	a2,-16(a3)
	movl	-24(a3),a2
	movl	a2,-20(a3)
	movl	a4,-24(a3)
	movl	$__cycle__in__spine,(a4)
	addl	$12,a4
	addl	$4,a3
	ret
add_empty_node_8_gc:
	call	collect_2
	jmp	add_empty_node_8_gc_

add_empty_node_9:
	cmpl	end_heap,a4
	jae	add_empty_node_9_gc
add_empty_node_9_gc_:
	movl	-4(a3),a2
	movl	a2,(a3)
	movl	-8(a3),a2
	movl	a2,-4(a3)
	movl	-12(a3),a2
	movl	a2,-8(a3)
	movl	-16(a3),a2
	movl	a2,-12(a3)
	movl	-20(a3),a2
	movl	a2,-16(a3)
	movl	-24(a3),a2
	movl	a2,-20(a3)
	movl	-28(a3),a2
	movl	a2,-24(a3)
	movl	a4,-28(a3)
	movl	$__cycle__in__spine,(a4)
	addl	$12,a4
	addl	$4,a3
	ret
add_empty_node_9_gc:
	call	collect_2
	jmp	add_empty_node_9_gc_

add_empty_node_10:
	cmpl	end_heap,a4
	jae	add_empty_node_10_gc
add_empty_node_10_gc_:
	movl	-4(a3),a2
	movl	a2,(a3)
	movl	-8(a3),a2
	movl	a2,-4(a3)
	movl	-12(a3),a2
	movl	a2,-8(a3)
	movl	-16(a3),a2
	movl	a2,-12(a3)
	movl	-20(a3),a2
	movl	a2,-16(a3)
	movl	-24(a3),a2
	movl	a2,-20(a3)
	movl	-28(a3),a2
	movl	a2,-24(a3)
	movl	-32(a3),a2
	movl	a2,-28(a3)
	movl	a4,-32(a3)
	movl	$__cycle__in__spine,(a4)
	addl	$12,a4
	addl	$4,a3
	ret
add_empty_node_10_gc:
	call	collect_2
	jmp	add_empty_node_10_gc_

add_empty_node_31:
	movl	$7,d1
	jmp	add_empty_node_11_
add_empty_node_27:
	movl	$6,d1
	jmp	add_empty_node_11_
add_empty_node_23:
	movl	$5,d1
	jmp	add_empty_node_11_
add_empty_node_19:
	movl	$4,d1
	jmp	add_empty_node_11_
add_empty_node_15:
	movl	$3,d1
	jmp	add_empty_node_11_
add_empty_node_11:
	movl	$2,d1
add_empty_node_11_:
	cmpl	end_heap,a4
	jae	add_empty_node_11_gc
add_empty_node_11_gc_:
	movl	a3,d0
	movl	-4(a3),a2
	movl	a2,(a3)
add_empty_node_11_lp:
	movl	-8(d0),a2
	movl	a2,-4(d0)
	movl	-12(d0),a2
	movl	a2,-8(d0)
	movl	-16(d0),a2
	movl	a2,-12(d0)
	movl	-20(d0),a2
	movl	a2,-16(d0)
	subl	$16,d0
	subl	$1,d1
	jne	add_empty_node_11_lp
	movl	a4,-4(d0)
	movl	$__cycle__in__spine,(a4)
	addl	$12,a4
	addl	$4,a3
	ret
add_empty_node_11_gc:
	call	collect_2
	jmp	add_empty_node_11_gc_

add_empty_node_32:
	movl	$7,d1
	jmp	add_empty_node_12_
add_empty_node_28:
	movl	$6,d1
	jmp	add_empty_node_12_
add_empty_node_24:
	movl	$5,d1
	jmp	add_empty_node_12_
add_empty_node_20:
	movl	$4,d1
	jmp	add_empty_node_12_
add_empty_node_16:
	movl	$3,d1
	jmp	add_empty_node_12_
add_empty_node_12:
	movl	$2,d1
add_empty_node_12_:
	cmpl	end_heap,a4
	jae	add_empty_node_12_gc
add_empty_node_12_gc_:
	movl	a3,d0
	movl	-4(a3),a2
	movl	a2,(a3)
	movl	-8(a3),a2
	movl	a2,-4(a3)
add_empty_node_12_lp:
	movl	-12(d0),a2
	movl	a2,-8(d0)
	movl	-16(d0),a2
	movl	a2,-12(d0)
	movl	-20(d0),a2
	movl	a2,-16(d0)
	movl	-24(d0),a2
	movl	a2,-20(d0)
	subl	$16,d0
	subl	$1,d1
	jne	add_empty_node_12_lp
	movl	a4,-8(d0)
	movl	$__cycle__in__spine,(a4)
	addl	$12,a4
	addl	$4,a3
	ret
add_empty_node_12_gc:
	call	collect_2
	jmp	add_empty_node_12_gc_

add_empty_node_29:
	movl	$6,d1
	jmp	add_empty_node_13_
add_empty_node_25:
	movl	$5,d1
	jmp	add_empty_node_13_
add_empty_node_21:
	movl	$4,d1
	jmp	add_empty_node_13_
add_empty_node_17:
	movl	$3,d1
	jmp	add_empty_node_13_
add_empty_node_13:
	movl	$2,d1
add_empty_node_13_:
	cmpl	end_heap,a4
	jae	add_empty_node_13_gc
add_empty_node_13_gc_:
	movl	a3,d0
	movl	-4(a3),a2
	movl	a2,(a3)
	movl	-8(a3),a2
	movl	a2,-4(a3)
	movl	-12(a3),a2
	movl	a2,-8(a3)
add_empty_node_13_lp:
	movl	-16(d0),a2
	movl	a2,-12(d0)
	movl	-20(d0),a2
	movl	a2,-16(d0)
	movl	-24(d0),a2
	movl	a2,-20(d0)
	movl	-28(d0),a2
	movl	a2,-24(d0)
	subl	$16,d0
	subl	$1,d1
	jne	add_empty_node_13_lp
	movl	a4,-12(d0)
	movl	$__cycle__in__spine,(a4)
	addl	$12,a4
	addl	$4,a3
	ret
add_empty_node_13_gc:
	call	collect_2
	jmp	add_empty_node_13_gc_

add_empty_node_30:
	movl	$7,d1
	jmp	add_empty_node_14_
add_empty_node_26:
	movl	$6,d1
	jmp	add_empty_node_14_
add_empty_node_22:
	movl	$5,d1
	jmp	add_empty_node_14_
add_empty_node_18:
	movl	$4,d1
	jmp	add_empty_node_14_
add_empty_node_14:
	movl	$3,d1
	jmp	add_empty_node_14_
add_empty_node_14_:
	cmpl	end_heap,a4
	jae	add_empty_node_14_gc
add_empty_node_14_gc_:
	movl	a3,d0
add_empty_node_14_lp:
	movl	-4(d0),a2
	movl	a2,(d0)
	movl	-8(d0),a2
	movl	a2,-4(d0)
	movl	-12(d0),a2
	movl	a2,-8(d0)
	movl	-16(d0),a2
	movl	a2,-12(d0)
	subl	$16,d0
	subl	$1,d1
	jne	add_empty_node_14_lp
	movl	a4,(d0)
	movl	$__cycle__in__spine,(a4)
	addl	$12,a4
	addl	$4,a3
	ret
add_empty_node_14_gc:
	call	collect_2
	jmp	add_empty_node_14_gc_

yet_args_needed_0:
	cmpl	end_heap,a4
	jae	yet_args_needed_0_gc
yet_args_needed_0_gc_r:
	mov	a0,4(a4)
	mov	(a1),d0
	mov	a4,a0
	add	$8,d0
	mov	d0,(a4)
	add	$8,a4
	ret

yet_args_needed_0_gc:
	call	collect_2
	jmp	yet_args_needed_0_gc_r


	align	(2)
	cmpl	end_heap,a4
	jmp	build_node_2
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_1:
	cmpl	end_heap,a4
	jae	yet_args_needed_1_gc
yet_args_needed_1_gc_r:
	mov	a0,8(a4)
	mov	(a1),d0
	mov	a4,a0
	add	$8,d0
	mov	d0,(a4)
	mov	4(a1),d1
	mov	d1,4(a4)
	add	$12,a4
	ret

yet_args_needed_1_gc:
	call	collect_2
	jmp	yet_args_needed_1_gc_r

build_node_2:
	jae	build_node_2_gc
build_node_2_gc_r:
	movl	d1,(a4)
	movl	a1,4(a4)
	movl	a0,8(a4)
	movl	a4,a0
	addl	$12,a4
	ret

build_node_2_gc:
	call	collect_2
	jmp	build_node_2_gc_r


	align	(2)
	cmpl	end_heap,a4
	jmp	build_node_3
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_2:
	cmpl	end_heap,a4
	jae	gc_22
gc_r_22:
	mov	(a1),d0
	mov	a0,4(a4)
	add	$8,d0
	mov	4(a1),a2
	mov	d0,8(a4)
	lea	8(a4),a0
	mov	a2,12(a4)
	mov	8(a1),a2
	mov	a2,(a4)
	mov	a4,16(a4)
	add	$20,a4
	ret

gc_22:	call	collect_2
	jmp	gc_r_22

build_node_3:
	jae	build_node_3_gc
build_node_3_gc_r:
	movl	d1,(a4)
	lea	12(a4),a2
	movl	a1,4(a4)
	movl	a2,8(a4)
	movl	a0,12(a4)
	movl	a4,a0
	movl	-4(a3),a2
	subl	$4,a3
	movl	a2,16(a4)
	addl	$20,a4
	ret

build_node_3_gc:
	call	collect_2
	jmp	build_node_3_gc_r


	align	(2)
	cmpl	end_heap,a4
	jmp	build_node_4
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_3:
	cmpl	end_heap,a4
	jae	gc_23
gc_r_23:
	mov	(a1),d0
	mov	a0,8(a4)
	add	$8,d0
	mov	4(a1),a2
	mov	d0,12(a4)
	mov	8(a1),a1
	mov	a2,16(a4)
	mov	(a1),a2
	mov	a4,20(a4)
	mov	a2,(a4)
	mov	4(a1),a2
	lea	12(a4),a0
	mov	a2,4(a4)
	add	$24,a4
	ret

gc_23:	call	collect_2
	jmp	gc_r_23

build_node_4:
	jae	build_node_4_gc
build_node_4_gc_r:
	movl	d1,(a4)
	lea	12(a4),a2
	movl	a1,4(a4)
	movl	a2,8(a4)
	movl	a0,12(a4)
	movl	a4,a0
	movl	-4(a3),a2
	movl	a2,16(a4)
	movl	-8(a3),a2
	subl	$8,a3
	movl	a2,20(a4)
	addl	$24,a4
	ret

build_node_4_gc:
	call	collect_2
	jmp	build_node_4_gc_r


	align	(2)
	cmpl	end_heap,a4
	jmp	build_node_5
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_4:
	cmpl	end_heap,a4
	jae	gc_24
gc_r_24:
	mov	(a1),d0
	mov	a0,12(a4)
	add	$8,d0
	mov	4(a1),a2
	mov	d0,16(a4)
	mov	8(a1),a1
	mov	a2,20(a4)
	mov	(a1),a2
	mov	a4,24(a4)
	mov	a2,(a4)
	mov	4(a1),a2
	lea	16(a4),a0
	mov	a2,4(a4)
	mov	8(a1),a2
	mov	a2,8(a4)
	add	$28,a4
	ret

gc_24:	call	collect_2
	jmp	gc_r_24

build_node_5:
	jae	build_node_5_gc
build_node_5_gc_r:
	movl	d1,(a4)
	lea	12(a4),a2
	movl	a1,4(a4)
	movl	a2,8(a4)
	movl	a0,12(a4)
	movl	a4,a0
	movl	-4(a3),a2
	movl	a2,16(a4)
	movl	-8(a3),a2
	movl	a2,20(a4)
	movl	-12(a3),a2
	subl	$12,a3
	movl	a2,24(a4)
	addl	$28,a4
	ret

build_node_5_gc:
	call	collect_2
	jmp	build_node_5_gc_r


	align	(2)
	movl	$6,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_5:
	mov	(a1),d1
	movl	$8,d0
	jmp	yet_args_needed_


	align	(2)
	movl	$7,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_6:
	mov	(a1),d1
	movl	$9,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$8,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_7:
	mov	(a1),d1
	movl	$10,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$9,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_8:
	mov	(a1),d1
	movl	$11,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$10,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_9:
	mov	(a1),d1
	movl	$12,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$11,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_10:
	mov	(a1),d1
	movl	$13,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$12,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_11:
	mov	(a1),d1
	movl	$14,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$13,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_12:
	mov	(a1),d1
	movl	$15,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$14,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_13:
	mov	(a1),d1
	movl	$16,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$15,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_14:
	mov	(a1),d1
	movl	$17,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$16,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_15:
	mov	(a1),d1
	movl	$18,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$17,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_16:
	mov	(a1),d1
	movl	$19,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$18,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_17:
	mov	(a1),d1
	movl	$20,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$19,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_18:
	mov	(a1),d1
	movl	$21,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$20,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_19:
	mov	(a1),d1
	movl	$22,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$21,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_20:
	mov	(a1),d1
	movl	$23,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$22,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_21:
	mov	(a1),d1
	movl	$24,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$23,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_22:
	mov	(a1),d1
	movl	$25,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$24,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_23:
	mov	(a1),d1
	movl	$26,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$25,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_24:
	mov	(a1),d1
	movl	$27,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$26,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_25:
	mov	(a1),d1
	movl	$28,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$27,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_26:
	mov	(a1),d1
	movl	$29,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$28,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_27:
	mov	(a1),d1
	movl	$30,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$29,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_28:
	mov	(a1),d1
	movl	$31,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$30,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_29:
	mov	(a1),d1
	movl	$32,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$31,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_30:
	mov	(a1),d1
	movl	$33,d0
	jmp	yet_args_needed_

	align	(2)
	movl	$32,d0
	jmp	build_node_
	nop
	nop
	align	(2)	
#ifdef PROFILE
	nop
	nop
	nop
	nop	
	nop
	nop
	nop
	nop	
#endif
yet_args_needed_31:
	mov	(a1),d1
	movl	$34,d0
	jmp	yet_args_needed_

yet_args_needed:
/ for more than 4 arguments
	mov	(a1),d1
	movzwl	-2(d1),d0
	add	$3,d0
yet_args_needed_:
	lea	-32(a4,d0,4),a2
	cmpl	end_heap,a2
	jae	yet_args_needed_gc
yet_args_needed_gc_r:
	sub	$3+1+4,d0
	push	d1
	push	a0
	mov	4(a1),d1
	mov	8(a1),a1
	mov	a4,a2
	mov	(a1),a0
	mov	a0,(a4)
	mov	4(a1),a0
	mov	a0,4(a4)
	mov	8(a1),a0
	mov	a0,8(a4)
	add	$12,a1
	add	$12,a4

yet_args_needed_cp_a:
	mov	(a1),a0
	add	$4,a1
	mov	a0,(a4)
	add	$4,a4
	subl	$1,d0
	jge	yet_args_needed_cp_a

	pop	a0
	mov	a0,(a4)
	pop	d0
	add	$8,d0
	mov	d0,4(a4)
	lea	4(a4),a0
	mov	d1,8(a4)
	mov	a2,12(a4)
	add	$16,a4
	ret

yet_args_needed_gc:
	call	collect_2l
	jmp	yet_args_needed_gc_r

build_node_:
	lea	-32+8(a4,d0,4),a2
	cmpl	end_heap,a2
	jae	build_node_gc
build_node_gc_r:
	movl	d1,(a4)
	lea	12(a4),a2
	movl	a1,4(a4)
	movl	a2,8(a4)
	movl	a0,12(a4)
	movl	a4,a0
	movl	-4(a3),a2
	movl	a2,16(a4)
	movl	-8(a3),a2
	movl	a2,20(a4)
	movl	-12(a3),a2
	subl	$12,a3
	movl	a2,24(a4)
	addl	$28,a4

	subl	$5,d0
build_node_cp_a:
	movl	-4(a3),a2
	subl	$4,a3
	movl	a2,(a4)
	addl	$4,a4
	subl	$1,d0
	jne	build_node_cp_a

	ret

build_node_gc:
	call	collect_2l
	jmp	build_node_gc_r

	.globl	apupd_1
	.globl	apupd_2
	.globl	apupd_3
	.globl	apupd_4
	.globl	apupd_5
	.globl	apupd_6
	.globl	apupd_7
	.globl	apupd_8
	.globl	apupd_9
	.globl	apupd_10
	.globl	apupd_11
	.globl	apupd_12
	.globl	apupd_13
	.globl	apupd_14
	.globl	apupd_15
	.globl	apupd_16
	.globl	apupd_17
	.globl	apupd_18
	.globl	apupd_19
	.globl	apupd_20
	.globl	apupd_21
	.globl	apupd_22
	.globl	apupd_23
	.globl	apupd_24
	.globl	apupd_25
	.globl	apupd_26
	.globl	apupd_27
	.globl	apupd_28
	.globl	apupd_29
	.globl	apupd_30
	.globl	apupd_31
	.globl	apupd_32
	.globl	__indirection

apupd_1:
	cmpl	$apupd_upd,(sp)
	lea	ap_1,a2
	jne	ap_upd

	movl	-4(a3),a2
	movl	-8(a3),d0
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
ap_1:
	movl	(a1),a2
	jmp	*2(a2)

apupd_2:
	cmpl	$apupd_upd,(sp)
	lea	ap_2,a2
	jne	ap_upd

	movl	-8(a3),a2
	movl	-12(a3),d0
	movl	-4(a3),d1
	movl	d1,-8(a3)
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_2

apupd_3:
	cmpl	$apupd_upd,(sp)
	lea	ap_3,a2
	jne	ap_upd

	movl	-12(a3),a2
	movl	-16(a3),d0
	movl	-8(a3),d1
	movl	d1,-12(a3)
	movl	-4(a3),d1
	movl	d1,-8(a3)
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_3

apupd_4:
	cmpl	$apupd_upd,(sp)
	lea	ap_4,a2
	jne	ap_upd

	movl	-16(a3),a2
	movl	-20(a3),d0
	movl	-12(a3),d1
	movl	d1,-16(a3)
	movl	-8(a3),d1
	movl	d1,-12(a3)
	movl	-4(a3),d1
	movl	d1,-8(a3)
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_4

apupd_5:
	cmpl	$apupd_upd,(sp)
	lea	ap_5,a2
	jne	ap_upd

	movl	-20(a3),a2
	movl	-24(a3),d0
	movl	-16(a3),d1
	movl	d1,-20(a3)
	movl	-12(a3),d1
	movl	d1,-16(a3)
	movl	-8(a3),d1
	movl	d1,-12(a3)
	movl	-4(a3),d1
	movl	d1,-8(a3)
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_5

apupd_6:
	cmpl	$apupd_upd,(sp)
	lea	ap_6,a2
	jne	ap_upd

	movl	-24(a3),a2
	movl	-28(a3),d0
	movl	-20(a3),d1
	movl	d1,-24(a3)
	movl	-16(a3),d1
	movl	d1,-20(a3)
	movl	-12(a3),d1
	movl	d1,-16(a3)
	movl	-8(a3),d1
	movl	d1,-12(a3)
	movl	-4(a3),d1
	movl	d1,-8(a3)
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_6

apupd_7:
	cmpl	$apupd_upd,(sp)
	lea	ap_7,a2
	jne	ap_upd

	movl	-28(a3),a2
	movl	-32(a3),d0
	call	move_8
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_7

apupd_8:
	cmpl	$apupd_upd,(sp)
	lea	ap_8,a2
	jne	ap_upd

	movl	-32(a3),a2
	movl	-36(a3),d0
	call	move_9
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_8

apupd_9:
	cmpl	$apupd_upd,(sp)
	lea	ap_9,a2
	jne	ap_upd

	movl	-36(a3),a2
	movl	-40(a3),d0
	call	move_10
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_9

apupd_10:
	cmpl	$apupd_upd,(sp)
	lea	ap_10,a2
	jne	ap_upd

	movl	-40(a3),a2
	movl	-44(a3),d0
	call	move_11
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_10

apupd_11:
	cmpl	$apupd_upd,(sp)
	lea	ap_11,a2
	jne	ap_upd

	movl	-44(a3),a2
	movl	-48(a3),d0
	call	move_12
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_11

apupd_12:
	cmpl	$apupd_upd,(sp)
	lea	ap_12,a2
	jne	ap_upd

	movl	-48(a3),a2
	movl	-52(a3),d0
	call	move_13
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_12

apupd_13:
	cmpl	$apupd_upd,(sp)
	lea	ap_13,a2
	jne	ap_upd

	movl	-52(a3),a2
	movl	-56(a3),d0
	call	move_14
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_13

apupd_14:
	cmpl	$apupd_upd,(sp)
	lea	ap_14,a2
	jne	ap_upd

	movl	-56(a3),a2
	movl	-60(a3),d0
	call	move_15
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_14

apupd_15:
	cmpl	$apupd_upd,(sp)
	lea	ap_15,a2
	jne	ap_upd

	movl	-60(a3),a2
	movl	-64(a3),d0
	call	move_16
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_15

apupd_16:
	cmpl	$apupd_upd,(sp)
	lea	ap_16,a2
	jne	ap_upd

	movl	-64(a3),a2
	movl	-68(a3),d0
	call	move_17
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_16

apupd_17:
	cmpl	$apupd_upd,(sp)
	lea	ap_17,a2
	jne	ap_upd

	movl	-68(a3),a2
	movl	-72(a3),d0
	call	move_18
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_17

apupd_18:
	cmpl	$apupd_upd,(sp)
	lea	ap_18,a2
	jne	ap_upd

	movl	-72(a3),a2
	movl	-76(a3),d0
	call	move_19
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_18

apupd_19:
	cmpl	$apupd_upd,(sp)
	lea	ap_19,a2
	jne	ap_upd

	movl	-76(a3),a2
	movl	-80(a3),d0
	call	move_20
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_19

apupd_20:
	cmpl	$apupd_upd,(sp)
	lea	ap_20,a2
	jne	ap_upd

	movl	-80(a3),a2
	movl	-84(a3),d0
	call	move_21
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_20

apupd_21:
	cmpl	$apupd_upd,(sp)
	lea	ap_21,a2
	jne	ap_upd

	movl	-84(a3),a2
	movl	-88(a3),d0
	call	move_22
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_21

apupd_22:
	cmpl	$apupd_upd,(sp)
	lea	ap_22,a2
	jne	ap_upd

	movl	-88(a3),a2
	movl	-92(a3),d0
	call	move_23
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_22

apupd_23:
	cmpl	$apupd_upd,(sp)
	lea	ap_23,a2
	jne	ap_upd

	movl	-92(a3),a2
	movl	-96(a3),d0
	call	move_24
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_23

apupd_24:
	cmpl	$apupd_upd,(sp)
	lea	ap_24,a2
	jne	ap_upd

	movl	-96(a3),a2
	movl	-100(a3),d0
	call	move_25
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_24

apupd_25:
	cmpl	$apupd_upd,(sp)
	lea	ap_25,a2
	jne	ap_upd

	movl	-100(a3),a2
	movl	-104(a3),d0
	call	move_26
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_25

apupd_26:
	cmpl	$apupd_upd,(sp)
	lea	ap_26,a2
	jne	ap_upd

	movl	-104(a3),a2
	movl	-108(a3),d0
	call	move_27
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_26

apupd_27:
	cmpl	$apupd_upd,(sp)
	lea	ap_27,a2
	jne	ap_upd

	movl	-108(a3),a2
	movl	-112(a3),d0
	call	move_28
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_27

apupd_28:
	cmpl	$apupd_upd,(sp)
	lea	ap_28,a2
	jne	ap_upd

	movl	-112(a3),a2
	movl	-116(a3),d0
	call	move_29
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_28

apupd_29:
	cmpl	$apupd_upd,(sp)
	lea	ap_29,a2
	jne	ap_upd

	movl	-116(a3),a2
	movl	-120(a3),d0
	call	move_30
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_29

apupd_30:
	cmpl	$apupd_upd,(sp)
	lea	ap_30,a2
	jne	ap_upd

	movl	-120(a3),a2
	movl	-124(a3),d0
	call	move_31
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_30

apupd_31:
	cmpl	$apupd_upd,(sp)
	lea	ap_31,a2
	jne	ap_upd

	movl	-124(a3),a2
	movl	-128(a3),d0
	call	move_32
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_31

apupd_32:
	cmpl	$apupd_upd,(sp)
	lea	ap_32,a2
	jne	ap_upd

	movl	-128(a3),a2
	movl	-132(a3),d0
	call	move_33
	subl	$4,a3
	movl	$__indirection,(a2)
	movl	d0,4(a2)
	jmp	ap_32

ap_upd:
	call	*a2
apupd_upd:
	movl	-4(a3),a1
	subl	$4,a3
	movl	(a0),d0
	movl	d0,(a1)
	movl	4(a0),d0
	movl	d0,4(a1)
	movl	8(a0),d0
	movl	a1,a0
	movl	d0,8(a1)	
	ret

move_33:
	movl	-124(a3),d1
	movl	d1,-128(a3)
move_32:
	movl	-120(a3),d1
	movl	d1,-124(a3)
move_31:
	movl	-116(a3),d1
	movl	d1,-120(a3)
move_30:
	movl	-112(a3),d1
	movl	d1,-116(a3)
move_29:
	movl	-108(a3),d1
	movl	d1,-112(a3)
move_28:
	movl	-104(a3),d1
	movl	d1,-108(a3)
move_27:
	movl	-100(a3),d1
	movl	d1,-104(a3)
move_26:
	movl	-96(a3),d1
	movl	d1,-100(a3)
move_25:
	movl	-92(a3),d1
	movl	d1,-96(a3)
move_24:
	movl	-88(a3),d1
	movl	d1,-92(a3)
move_23:
	movl	-84(a3),d1
	movl	d1,-88(a3)
move_22:
	movl	-80(a3),d1
	movl	d1,-84(a3)
move_21:
	movl	-76(a3),d1
	movl	d1,-80(a3)
move_20:
	movl	-72(a3),d1
	movl	d1,-76(a3)
move_19:
	movl	-68(a3),d1
	movl	d1,-72(a3)
move_18:
	movl	-64(a3),d1
	movl	d1,-68(a3)
move_17:
	movl	-60(a3),d1
	movl	d1,-64(a3)
move_16:
	movl	-56(a3),d1
	movl	d1,-60(a3)
move_15:
	movl	-52(a3),d1
	movl	d1,-56(a3)
move_14:
	movl	-48(a3),d1
	movl	d1,-52(a3)
move_13:
	movl	-44(a3),d1
	movl	d1,-48(a3)
move_12:
	movl	-40(a3),d1
	movl	d1,-44(a3)
move_11:
	movl	-36(a3),d1
	movl	d1,-40(a3)
move_10:
	movl	-32(a3),d1
	movl	d1,-36(a3)
move_9:
	movl	-28(a3),d1
	movl	d1,-32(a3)
move_8:
	movl	-24(a3),d1
	movl	d1,-28(a3)
move_7:
	movl	-20(a3),d1
	movl	d1,-24(a3)
	movl	-16(a3),d1
	movl	d1,-20(a3)
	movl	-12(a3),d1
	movl	d1,-16(a3)
	movl	-8(a3),d1
	movl	d1,-12(a3)
	movl	-4(a3),d1
	movl	d1,-8(a3)
	ret
