.file	"run.c"
	.text
	.align	0
	.global	reset_datastack
	.def	reset_datastack;	.scl	2;	.type	32;	.endef
reset_datastack:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	@ link register save eliminated.
	ldr	r3, .L3
	@ lr needed for prologue
	ldr	r2, [r3, #0]
	ldr	r1, [r2, #24]
	ldr	r3, [r1, #0]
	sub	r5, r3, #4
	mov	pc, lr
.L4:
	.align	0
.L3:
	.word	stack_chain
	.align	0
	.global	reset_retainstack
	.def	reset_retainstack;	.scl	2;	.type	32;	.endef
reset_retainstack:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	@ link register save eliminated.
	ldr	r3, .L7
	@ lr needed for prologue
	ldr	r2, [r3, #0]
	ldr	r1, [r2, #28]
	ldr	r3, [r1, #0]
	sub	r6, r3, #4
	mov	pc, lr
.L8:
	.align	0
.L7:
	.word	stack_chain
	.align	0
	.global	save_stacks
	.def	save_stacks;	.scl	2;	.type	32;	.endef
save_stacks:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	@ link register save eliminated.
	ldr	r3, .L11
	@ lr needed for prologue
	ldr	r2, [r3, #0]
	str	r6, [r2, #12]
	str	r5, [r2, #8]
	mov	pc, lr
.L12:
	.align	0
.L11:
	.word	stack_chain
	.align	0
	.global	init_stacks
	.def	init_stacks;	.scl	2;	.type	32;	.endef
init_stacks:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	@ link register save eliminated.
	ldr	r3, .L15
	ldr	r2, .L15+4
	str	r0, [r3, #0]
	ldr	r3, .L15+8
	str	r1, [r2, #0]
	mov	r1, #0
	@ lr needed for prologue
	str	r1, [r3, #0]
	mov	pc, lr
.L16:
	.align	0
.L15:
	.word	ds_size
	.word	rs_size
	.word	stack_chain
	.align	0
	.global	enable_word_profiling
	.def	enable_word_profiling;	.scl	2;	.type	32;	.endef
enable_word_profiling:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	@ link register save eliminated.
	ldr	r3, .L21
	ldr	r2, [r0, #32]
	@ lr needed for prologue
	cmp	r2, r3
	ldreq	r3, .L21+4
	streq	r3, [r0, #32]
	mov	pc, lr
.L22:
	.align	0
.L21:
	.word	docol
	.word	docol_profiling
	.align	0
	.global	disable_word_profiling
	.def	disable_word_profiling;	.scl	2;	.type	32;	.endef
disable_word_profiling:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	@ link register save eliminated.
	ldr	r3, .L27
	ldr	r2, [r0, #32]
	@ lr needed for prologue
	cmp	r2, r3
	ldreq	r3, .L27+4
	streq	r3, [r0, #32]
	mov	pc, lr
.L28:
	.align	0
.L27:
	.word	docol_profiling
	.word	docol
	.align	0
	.global	primitive_3drop
	.def	primitive_3drop;	.scl	2;	.type	32;	.endef
primitive_3drop:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	str	lr, [sp, #-4]!
	mov	r0, r1
	bl	save_callstack_top
	sub	r5, r5, #12
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_2drop
	.def	primitive_2drop;	.scl	2;	.type	32;	.endef
primitive_2drop:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	str	lr, [sp, #-4]!
	mov	r0, r1
	bl	save_callstack_top
	sub	r5, r5, #8
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_millis
	.def	primitive_millis;	.scl	2;	.type	32;	.endef
primitive_millis:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	str	lr, [sp, #-4]!
	mov	r0, r1
	bl	save_callstack_top
	bl	current_millis
	ldr	lr, [sp], #4
	b	box_unsigned_8
	.align	0
	.global	array_to_stack
	.def	array_to_stack;	.scl	2;	.type	32;	.endef
array_to_stack:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	stmfd	sp!, {r4, r7, lr}
	ldr	r4, [r0, #4]
	mov	r7, r1
	mov	r4, r4, lsr #3
	mov	r4, r4, asl #2
	add	r1, r0, #8
	mov	r2, r4
	mov	r0, r7
	bl	memcpy
	add	r4, r4, r7
	sub	r0, r4, #4
	ldmfd	sp!, {r4, r7, pc}
	.align	0
	.global	unnest_stacks
	.def	unnest_stacks;	.scl	2;	.type	32;	.endef
unnest_stacks:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	stmfd	sp!, {r4, lr}
	ldr	r4, .L39
	ldr	r3, [r4, #0]
	ldr	r0, [r3, #24]
	bl	dealloc_segment
	ldr	r3, [r4, #0]
	ldr	r0, [r3, #28]
	bl	dealloc_segment
	ldr	r0, [r4, #0]
	ldr	r1, .L39+4
	ldr	r2, [r0, #36]
	ldr	r5, [r0, #16]
	ldr	r6, [r0, #20]
	str	r2, [r1, #8]
	ldr	r3, [r0, #32]
	str	r3, [r1, #4]
	ldr	r2, [r0, #40]
	ldr	r1, [r0, #44]
	ldr	r3, .L39+8
	str	r1, [r4, #0]
	str	r2, [r3, #0]
	ldmfd	sp!, {r4, lr}
	b	free
.L40:
	.align	0
.L39:
	.word	stack_chain
	.word	userenv
	.word	extra_roots
	.align	0
	.global	primitive_drop
	.def	primitive_drop;	.scl	2;	.type	32;	.endef
primitive_drop:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	str	lr, [sp, #-4]!
	mov	r0, r1
	bl	save_callstack_top
	sub	r5, r5, #4
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_swapd
	.def	primitive_swapd;	.scl	2;	.type	32;	.endef
primitive_swapd:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	ldr	r1, [r5, #-4]
	ldr	r2, [r5, #-8]
	stmdb	r5, {r1, r2}	@ phole stm
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_swap
	.def	primitive_swap;	.scl	2;	.type	32;	.endef
primitive_swap:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	ldr	r1, [r5, #0]
	ldr	r2, [r5, #-4]
	stmda	r5, {r1, r2}	@ phole stm
	ldr	pc, [sp], #4
	.align	0
	.global	primitive__rot
	.def	primitive__rot;	.scl	2;	.type	32;	.endef
primitive__rot:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	ldr	r0, [r5, #0]
	ldmdb	r5, {r1, r2}	@ phole ldm
	stmda	r5, {r0, r1, r2}	@ phole stm
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_rot
	.def	primitive_rot;	.scl	2;	.type	32;	.endef
primitive_rot:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	ldr	r0, [r5, #0]
	ldr	r2, [r5, #-8]
	ldr	r1, [r5, #-4]
	stmda	r5, {r0, r2}	@ phole stm
	str	r1, [r5, #-8]
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_3dup
	.def	primitive_3dup;	.scl	2;	.type	32;	.endef
primitive_3dup:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	ldmda	r5, {r0, r1, r2}	@ phole ldm
	mov	r3, r5
	add	r5, r5, #12
	str	r2, [r3, #12]
	stmdb	r5, {r0, r1}	@ phole stm
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_2dup
	.def	primitive_2dup;	.scl	2;	.type	32;	.endef
primitive_2dup:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	ldr	r0, [r5, #0]
	ldr	r2, [r5, #-4]
	add	r1, r5, #8
	mov	r5, r1
	str	r2, [r5, #-4]
	str	r0, [r5, #0]
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_sleep
	.def	primitive_sleep;	.scl	2;	.type	32;	.endef
primitive_sleep:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	mov	r3, r5
	ldr	r0, [r3], #-4
	mov	r5, r3
	bl	to_cell
	ldr	lr, [sp], #4
	b	sleep_millis
	.align	0
	.global	primitive_exit
	.def	primitive_exit;	.scl	2;	.type	32;	.endef
primitive_exit:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	mov	r3, r5
	ldr	r0, [r3], #-4
	mov	r5, r3
	bl	to_fixnum
	bl	exit
	.align	0
	.global	primitive_to_r
	.def	primitive_to_r;	.scl	2;	.type	32;	.endef
primitive_to_r:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	mov	r3, r5
	ldr	r1, [r3], #-4
	add	r2, r6, #4
	mov	r6, r2
	mov	r5, r3
	str	r1, [r6, #0]
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_eq
	.def	primitive_eq;	.scl	2;	.type	32;	.endef
primitive_eq:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	mov	r0, r5
	ldr	r1, [r5, #-4]
	ldr	r2, [r0], #-4
	mov	r3, #7
	cmp	r2, r1
	ldreq	r3, .L66
	mov	r5, r0
	ldreq	r3, [r3, #0]
	str	r3, [r0, #0]
	ldr	pc, [sp], #4
.L67:
	.align	0
.L66:
	.word	T
	.align	0
	.global	primitive_getenv
	.def	primitive_getenv;	.scl	2;	.type	32;	.endef
primitive_getenv:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	ldr	r3, [r5, #0]
	ldr	r2, .L70
	mov	r3, r3, asr #3
	ldr	r1, [r2, r3, asl #2]
	str	r1, [r5, #0]
	ldr	pc, [sp], #4
.L71:
	.align	0
.L70:
	.word	userenv
	.align	0
	.global	primitive_2nip
	.def	primitive_2nip;	.scl	2;	.type	32;	.endef
primitive_2nip:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	str	lr, [sp, #-4]!
	mov	r0, r1
	bl	save_callstack_top
	ldr	r2, [r5, #0]
	mov	r3, r5
	sub	r5, r5, #8
	str	r2, [r3, #-8]
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_nip
	.def	primitive_nip;	.scl	2;	.type	32;	.endef
primitive_nip:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	mov	r2, r5
	ldr	r1, [r2], #-4
	str	r1, [r5, #-4]
	mov	r5, r2
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_os_env
	.def	primitive_os_env;	.scl	2;	.type	32;	.endef
primitive_os_env:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	str	lr, [sp, #-4]!
	mov	r0, r1
	bl	save_callstack_top
	bl	unbox_char_string
	bl	getenv
	add	r3, r5, #4
	cmp	r0, #0
	moveq	r5, r3
	moveq	r3, #7
	streq	r3, [r5, #0]
	ldreq	pc, [sp], #4
	ldr	lr, [sp], #4
	b	box_char_string
	.align	0
	.global	stack_to_array
	.def	stack_to_array;	.scl	2;	.type	32;	.endef
stack_to_array:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	stmfd	sp!, {r4, r7, r8, lr}
	mov	r8, r0
	rsb	r1, r8, r1
	adds	r7, r1, #4
	mov	r0, #8
	mov	r1, r7, asr #2
	mov	r3, #0
	bmi	.L85
	bl	allot_array_internal
	mov	r1, r8
	mov	r4, r0
	mov	r2, r7
	add	r0, r0, #8
	bl	memcpy
	bic	r4, r4, #7
	add	r3, r5, #4
	mov	r5, r3
	orr	r4, r4, #3
	str	r4, [r5, #0]
	mov	r3, #1
.L85:
	mov	r0, r3
	ldmfd	sp!, {r4, r7, r8, pc}
	.align	0
	.global	primitive_from_r
	.def	primitive_from_r;	.scl	2;	.type	32;	.endef
primitive_from_r:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	mov	r3, r6
	ldr	r1, [r3], #-4
	add	r2, r5, #4
	mov	r5, r2
	mov	r6, r3
	str	r1, [r5, #0]
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_pick
	.def	primitive_pick;	.scl	2;	.type	32;	.endef
primitive_pick:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	str	lr, [sp, #-4]!
	mov	r0, r1
	bl	save_callstack_top
	ldr	r2, [r5, #-8]
	mov	r3, r5
	add	r5, r5, #4
	str	r2, [r3, #4]
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_over
	.def	primitive_over;	.scl	2;	.type	32;	.endef
primitive_over:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	str	lr, [sp, #-4]!
	mov	r0, r1
	bl	save_callstack_top
	ldr	r2, [r5, #-4]
	mov	r3, r5
	add	r5, r5, #4
	str	r2, [r3, #4]
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_tuck
	.def	primitive_tuck;	.scl	2;	.type	32;	.endef
primitive_tuck:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	ldr	r0, [r5, #0]
	ldr	r2, [r5, #-4]
	add	r1, r5, #4
	mov	r3, r5
	mov	r5, r1
	stmda	r3, {r0, r2}	@ phole stm
	str	r0, [r5, #0]
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_dupd
	.def	primitive_dupd;	.scl	2;	.type	32;	.endef
primitive_dupd:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	ldr	r0, [r5, #0]
	ldr	r2, [r5, #-4]
	add	r1, r5, #4
	mov	r3, r5
	mov	r5, r1
	str	r2, [r3, #0]
	str	r0, [r5, #0]
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_dup
	.def	primitive_dup;	.scl	2;	.type	32;	.endef
primitive_dup:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	mov	r2, r5
	ldr	r1, [r2], #4
	str	r1, [r5, #4]
	mov	r5, r2
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_set_slot
	.def	primitive_set_slot;	.scl	2;	.type	32;	.endef
primitive_set_slot:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	mov	r0, r5
	ldr	r1, [r0], #-4
	ldr	ip, [r5, #-4]
	ldr	lr, [r0, #-4]
	mov	r1, r1, asr #3
	bic	r3, ip, #7
	ldr	r2, .L101
	str	lr, [r3, r1, asl #2]
	ldr	r1, [r2, #0]
	sub	lr, r0, #4
	ldrb	r3, [r1, ip, lsr #6]	@ zero_extendqisi2
	mov	r5, r0
	mvn	r3, r3, asl #26
	mvn	r3, r3, lsr #26
	mov	r5, lr
	sub	r5, lr, #4
	strb	r3, [r1, ip, lsr #6]
	ldr	pc, [sp], #4
.L102:
	.align	0
.L101:
	.word	cards_offset
	.align	0
	.global	primitive_slot
	.def	primitive_slot;	.scl	2;	.type	32;	.endef
primitive_slot:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	mov	r1, r5
	ldr	r2, [r1], #-4
	ldr	r3, [r5, #-4]
	mov	r2, r2, asr #3
	bic	r3, r3, #7
	ldr	ip, [r3, r2, asl #2]
	mov	r0, r5
	mov	r5, r1
	sub	r5, r1, #4
	mov	r5, r1
	str	ip, [r0, #-4]
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_setenv
	.def	primitive_setenv;	.scl	2;	.type	32;	.endef
primitive_setenv:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	mov	r1, r5
	ldr	r3, [r1], #-4
	ldr	r0, [r5, #-4]
	ldr	r2, .L107
	mov	r3, r3, asr #3
	mov	r5, r1
	sub	r5, r1, #4
	str	r0, [r2, r3, asl #2]
	ldr	pc, [sp], #4
.L108:
	.align	0
.L107:
	.word	userenv
	.align	0
	.global	primitive_class_hash
	.def	primitive_class_hash;	.scl	2;	.type	32;	.endef
primitive_class_hash:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	ldr	r3, [r5, #0]
	and	r2, r3, #7
	cmp	r2, #2
	bic	r0, r3, #7
	beq	.L116
	cmp	r2, #3
	bic	r3, r3, #7
	ldreq	r3, [r3, #0]
	mov	r0, r2, asl #3
	streq	r3, [r5, #0]
	strne	r0, [r5, #0]
	ldr	pc, [sp], #4
.L116:
	ldr	r3, [r0, #8]
	bic	r3, r3, #7
	ldr	r2, [r3, #4]
	str	r2, [r5, #0]
	ldr	pc, [sp], #4
	.align	0
	.global	primitive_tag
	.def	primitive_tag;	.scl	2;	.type	32;	.endef
primitive_tag:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	str	lr, [sp, #-4]!
	mov	r0, r1
	bl	save_callstack_top
	ldr	r3, [r5, #0]
	and	r3, r3, #7
	mov	r3, r3, asl #3
	str	r3, [r5, #0]
	ldr	pc, [sp], #4
	.align	0
	.global	nest_stacks
	.def	nest_stacks;	.scl	2;	.type	32;	.endef
nest_stacks:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	stmfd	sp!, {r4, lr}
	mov	r0, #48
	bl	safe_malloc
	mov	r4, r0
	ldr	r0, .L121
	str	r5, [r4, #16]
	str	r6, [r4, #20]
	ldr	r3, [r0, #8]
	mvn	r2, #0
	str	r3, [r4, #36]
	ldr	r1, [r0, #4]
	ldr	r3, .L121+4
	str	r1, [r4, #32]
	str	r2, [r4, #0]
	str	r2, [r4, #4]
	ldr	r0, [r3, #0]
	bl	alloc_segment
	ldr	r3, .L121+8
	str	r0, [r4, #24]
	ldr	r0, [r3, #0]
	bl	alloc_segment
	ldr	r3, .L121+12
	ldr	ip, [r4, #24]
	ldr	r2, [r3, #0]
	ldr	r1, .L121+16
	str	r2, [r4, #40]
	ldr	lr, [ip, #0]
	ldr	r2, [r0, #0]
	ldr	r3, [r1, #0]
	sub	r5, lr, #4
	sub	r6, r2, #4
	str	r3, [r4, #44]
	str	r0, [r4, #28]
	str	r4, [r1, #0]
	ldmfd	sp!, {r4, pc}
.L122:
	.align	0
.L121:
	.word	userenv
	.word	ds_size
	.word	rs_size
	.word	extra_roots
	.word	stack_chain
	.align	0
	.global	fix_stacks
	.def	fix_stacks;	.scl	2;	.type	32;	.endef
fix_stacks:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	ldr	r2, .L131
	add	r3, r5, #4
	ldr	r2, [r2, #0]
	stmfd	sp!, {r4, lr}
	ldr	r0, [r2, #24]
	add	r4, r6, #256
	ldr	ip, [r0, #0]
	add	lr, r5, #256
	cmp	r3, ip
	add	r1, r6, #4
	bcc	.L124
	ldr	r3, [r0, #8]
	cmp	lr, r3
	bcs	.L124
.L126:
	ldr	r2, [r2, #28]
	ldr	r0, [r2, #0]
	cmp	r1, r0
	bcc	.L127
	ldr	r3, [r2, #8]
	cmp	r4, r3
	ldmccfd	sp!, {r4, pc}
.L127:
	sub	r6, r0, #4
	ldmfd	sp!, {r4, pc}
.L124:
	sub	r5, ip, #4
	b	.L126
.L132:
	.align	0
.L131:
	.word	stack_chain
	.align	0
	.global	primitive_type
	.def	primitive_type;	.scl	2;	.type	32;	.endef
primitive_type:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	str	lr, [sp, #-4]!
	bl	save_callstack_top
	ldr	r3, [r5, #0]
	bic	r1, r3, #7
	and	r3, r3, #7
	cmp	r3, #3
	ldreq	r3, [r1, #0]
	moveq	r3, r3, lsr #3
	mov	r3, r3, asl #3
	str	r3, [r5, #0]
	ldr	pc, [sp], #4
	.align	0
	.global	default_word_xt
	.def	default_word_xt;	.scl	2;	.type	32;	.endef
default_word_xt:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	ldr	r3, .L154
	ldr	r0, [r0, #16]
	ldr	r2, [r3, #0]
	str	lr, [sp, #-4]!
	cmp	r0, r2
	ldreq	r0, .L154+4
	ldreq	pc, [sp], #4
	and	r1, r0, #7
	cmp	r1, #3
	biceq	r3, r0, #7
	ldreq	r2, [r3, #0]
	movne	r2, r1
	moveq	r2, r2, lsr #3
	cmp	r2, #14
	beq	.L153
	cmp	r1, #3
	biceq	r3, r0, #7
	ldreq	r2, [r3, #0]
	moveq	r1, r2, lsr #3
	cmp	r1, #0
	ldrne	r0, .L154+8
	ldrne	pc, [sp], #4
	bl	to_fixnum
	ldr	r3, .L154+12
	ldr	r0, [r3, r0, asl #2]
	ldr	pc, [sp], #4
.L153:
	ldr	r3, .L154+16
	ldr	r2, .L154+20
	ldrb	r1, [r3, #0]	@ zero_extendqisi2
	ldr	r3, .L154+24
	cmp	r1, #0
	moveq	r0, r2
	movne	r0, r3
	ldr	pc, [sp], #4
.L155:
	.align	0
.L154:
	.word	T
	.word	dosym
	.word	undefined
	.word	primitives
	.word	profiling
	.word	docol
	.word	docol_profiling
	.align	0
	.global	primitive_profiling
	.def	primitive_profiling;	.scl	2;	.type	32;	.endef
primitive_profiling:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	stmfd	sp!, {r4, r7, r8, lr}
	mov	r0, r1
	bl	save_callstack_top
	mov	r3, r5
	ldr	r0, [r3], #-4
	ldr	r4, .L175
	mov	r5, r3
	bl	to_boolean
	strb	r0, [r4, #0]
	bl	begin_scan
	ldr	r8, .L175+4
	ldr	r7, .L175+8
.L173:
	bl	next_object
	cmp	r0, #7
	bic	r2, r0, #7
	and	r3, r0, #7
	beq	.L174
.L158:
	cmp	r3, #3
	ldreq	r3, [r2, #0]
	moveq	r3, r3, lsr #3
	cmp	r3, #17
	bne	.L173
	ldrb	r3, [r4, #0]	@ zero_extendqisi2
	bic	r2, r0, #7
	cmp	r3, #0
	bic	r0, r0, #7
	beq	.L162
	ldr	r3, [r2, #32]
	cmp	r3, r8
	streq	r7, [r2, #32]
	bl	next_object
	cmp	r0, #7
	bic	r2, r0, #7
	and	r3, r0, #7
	bne	.L158
.L174:
	ldr	r3, .L175+12
	mov	r2, #0
	strb	r2, [r3, #0]
	ldmfd	sp!, {r4, r7, r8, pc}
.L162:
	ldr	r3, [r0, #32]
	cmp	r3, r7
	streq	r8, [r0, #32]
	b	.L173
.L176:
	.align	0
.L175:
	.word	profiling
	.word	docol
	.word	docol_profiling
	.word	gc_off
	.align	0
	.global	primitive_set_retainstack
	.def	primitive_set_retainstack;	.scl	2;	.type	32;	.endef
primitive_set_retainstack:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	stmfd	sp!, {r4, r7, lr}
	bl	save_callstack_top
	mov	r3, r5
	ldr	r1, [r3], #-4
	mov	r0, #8
	and	r2, r1, #7
	cmp	r2, #3
	bic	r4, r1, #7
	mov	r5, r3
	ldreq	r3, [r4, #0]
	moveq	r2, r3, lsr #3
	cmp	r2, #8
	blne	type_error
.L181:
	ldr	r3, .L184
	ldr	r7, [r4, #4]
	ldr	r2, [r3, #0]
	add	r1, r4, #8
	ldr	r0, [r2, #28]
	mov	r7, r7, lsr #3
	ldr	r4, [r0, #0]
	mov	r7, r7, asl #2
	mov	r0, r4
	mov	r2, r7
	bl	memcpy
	add	r4, r4, r7
	sub	r6, r4, #4
	ldmfd	sp!, {r4, r7, pc}
.L185:
	.align	0
.L184:
	.word	stack_chain
	.align	0
	.global	primitive_set_datastack
	.def	primitive_set_datastack;	.scl	2;	.type	32;	.endef
primitive_set_datastack:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r0, r1
	stmfd	sp!, {r4, r7, lr}
	bl	save_callstack_top
	mov	r3, r5
	ldr	r1, [r3], #-4
	mov	r0, #8
	and	r2, r1, #7
	cmp	r2, #3
	bic	r4, r1, #7
	mov	r5, r3
	ldreq	r3, [r4, #0]
	moveq	r2, r3, lsr #3
	cmp	r2, #8
	blne	type_error
.L190:
	ldr	r3, .L193
	ldr	r7, [r4, #4]
	ldr	r2, [r3, #0]
	add	r1, r4, #8
	ldr	r0, [r2, #24]
	mov	r7, r7, lsr #3
	ldr	r4, [r0, #0]
	mov	r7, r7, asl #2
	mov	r0, r4
	mov	r2, r7
	bl	memcpy
	add	r4, r4, r7
	sub	r5, r4, #4
	ldmfd	sp!, {r4, r7, pc}
.L194:
	.align	0
.L193:
	.word	stack_chain
	.align	0
	.global	primitive_retainstack
	.def	primitive_retainstack;	.scl	2;	.type	32;	.endef
primitive_retainstack:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	stmfd	sp!, {r4, r7, r8, lr}
	mov	r0, r1
	bl	save_callstack_top
	ldr	ip, .L200
	mov	r1, #7
	ldr	lr, [ip, #0]
	mov	r0, #8
	ldr	r4, [lr, #28]
	mov	r2, r1
	ldr	r8, [r4, #0]
	mov	r3, #0
	rsb	ip, r8, r6
	adds	r7, ip, #4
	bmi	.L196
	mov	r1, r7, asr #2
	bl	allot_array_internal
	mov	r1, r8
	mov	r4, r0
	mov	r2, r7
	add	r0, r0, #8
	bl	memcpy
	bic	r4, r4, #7
	add	r3, r5, #4
	mov	r5, r3
	orr	r4, r4, #3
	str	r4, [r5, #0]
	ldmfd	sp!, {r4, r7, r8, pc}
.L196:
	mov	r0, #13
	ldmfd	sp!, {r4, r7, r8, lr}
	b	general_error
.L201:
	.align	0
.L200:
	.word	stack_chain
	.align	0
	.global	primitive_datastack
	.def	primitive_datastack;	.scl	2;	.type	32;	.endef
primitive_datastack:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	stmfd	sp!, {r4, r7, r8, lr}
	mov	r0, r1
	bl	save_callstack_top
	ldr	ip, .L207
	mov	r1, #7
	ldr	lr, [ip, #0]
	mov	r0, #8
	ldr	r4, [lr, #24]
	mov	r2, r1
	ldr	r8, [r4, #0]
	mov	r3, #0
	rsb	ip, r8, r5
	adds	r7, ip, #4
	bmi	.L203
	mov	r1, r7, asr #2
	bl	allot_array_internal
	mov	r1, r8
	mov	r4, r0
	mov	r2, r7
	add	r0, r0, #8
	bl	memcpy
	bic	r4, r4, #7
	add	r3, r5, #4
	mov	r5, r3
	orr	r4, r4, #3
	str	r4, [r5, #0]
	ldmfd	sp!, {r4, r7, r8, pc}
.L203:
	mov	r0, #11
	ldmfd	sp!, {r4, r7, r8, lr}
	b	general_error
.L208:
	.align	0
.L207:
	.word	stack_chain
	.comm	errno, 4	@ 4
	.comm	profiling, 4	@ 1
	.comm	userenv, 160	@ 160
	.comm	T, 4	@ 4
	.comm	stack_chain, 4	@ 4
	.comm	ds_size, 4	@ 4
	.comm	rs_size, 4	@ 4
	.comm	signal_number, 4	@ 4
	.comm	signal_fault_addr, 4	@ 4
	.comm	signal_callstack_top, 4	@ 4
	.comm	secure_gc, 4	@ 1
	.comm	data_heap, 4	@ 4
	.comm	cards_offset, 4	@ 4
	.comm	newspace, 4	@ 4
	.comm	nursery, 4	@ 4
	.comm	gc_time, 8	@ 8
	.comm	minor_collections, 4	@ 4
	.comm	cards_scanned, 4	@ 4
	.comm	performing_gc, 4	@ 1
	.comm	collecting_gen, 4	@ 4
	.comm	collecting_code, 4	@ 1
	.comm	collecting_aging_again, 4	@ 1
	.comm	last_code_heap_scan, 4	@ 4
	.comm	growing_data_heap, 4	@ 1
	.comm	old_data_heap, 4	@ 4
	.comm	gc_jmp, 44	@ 44
	.comm	heap_scan_ptr, 4	@ 4
	.comm	gc_off, 4	@ 1
	.comm	extra_roots_region, 4	@ 4
	.comm	extra_roots, 4	@ 4
	.comm	bignum_zero, 4	@ 4
	.comm	bignum_pos_one, 4	@ 4
	.comm	bignum_neg_one, 4	@ 4
	.comm	code_heap, 8	@ 8
	.comm	data_relocation_base, 4	@ 4
	.comm	code_relocation_base, 4	@ 4
	.comm	posix_argc, 4	@ 4
	.comm	posix_argv, 4	@ 4
	.def	memcpy;	.scl	2;	.type	32;	.endef
	.def	type_error;	.scl	2;	.type	32;	.endef
	.def	safe_malloc;	.scl	2;	.type	32;	.endef
	.def	alloc_segment;	.scl	2;	.type	32;	.endef
	.def	dealloc_segment;	.scl	2;	.type	32;	.endef
	.def	free;	.scl	2;	.type	32;	.endef
	.def	allot_array_internal;	.scl	2;	.type	32;	.endef
	.def	general_error;	.scl	2;	.type	32;	.endef
	.def	memcpy;	.scl	2;	.type	32;	.endef
	.def	dosym;	.scl	2;	.type	32;	.endef
	.def	undefined;	.scl	2;	.type	32;	.endef
	.def	exit;	.scl	2;	.type	32;	.endef
	.def	to_fixnum;	.scl	2;	.type	32;	.endef
	.def	unbox_char_string;	.scl	2;	.type	32;	.endef
	.def	getenv;	.scl	2;	.type	32;	.endef
	.def	box_char_string;	.scl	2;	.type	32;	.endef
	.def	box_unsigned_8;	.scl	2;	.type	32;	.endef
	.def	current_millis;	.scl	2;	.type	32;	.endef
	.def	sleep_millis;	.scl	2;	.type	32;	.endef
	.def	to_cell;	.scl	2;	.type	32;	.endef
	.def	docol_profiling;	.scl	2;	.type	32;	.endef
	.def	docol;	.scl	2;	.type	32;	.endef
	.def	save_callstack_top;	.scl	2;	.type	32;	.endef
	.def	to_boolean;	.scl	2;	.type	32;	.endef
	.def	begin_scan;	.scl	2;	.type	32;	.endef
	.def	next_object;	.scl	2;	.type	32;	.endef
	.section .drectve
	.ascii " -export:nursery,data"
	.ascii " -export:cards_offset,data"
	.ascii " -export:stack_chain,data"
	.ascii " -export:userenv,data"
	.ascii " -export:profiling,data"
	.ascii " -export:nest_stacks"
	.ascii " -export:unnest_stacks"
	.ascii " -export:save_stacks"