.section	".rodata"
.align	8
.section	".text"
composed_22:
	ld	[%o5 + 8], %i3
	st	%i3, [%i0 + 0]
	ld	[%o5 + 4], %o5
	st	%o7, [%i0 + 4]
	ld	[%o5 + 0], %o4
	call	%o4
	add	%i0, 8, %i0	! delay slot
	sub	%i0, 8, %i0
	ld	[%i0 + 4], %o7
	ld	[%i0 + 0], %o5
	ld	[%o5 + 0], %o4
	jmp	%o4
	nop
compose_7:
	mov	%i1, %i4
	add	%i1, 16, %i1
	set	composed_22, %i5
	st	%i5, [%i4 + 0]
	st	%i3, [%i4 + 8]
	st	%i2, [%i4 + 4]
	mov	%i4, %i2
	retl
	nop
dbl_10:
	add	%i2, %i2, %i2
	retl
	nop
inc_12:
	add	%i2, 1, %i2
	retl
	nop
dec_14:
	sub	%i2, 1, %i2
	retl
	nop
.global	min_caml_start
min_caml_start:
	save	%sp, -112, %sp
	mov	%i1, %i2
	add	%i1, 8, %i1
	set	dbl_10, %i3
	st	%i3, [%i2 + 0]
	mov	%i1, %i3
	st	%i3, [%i0 + 0]
	add	%i1, 8, %i1
	set	inc_12, %i4
	st	%i4, [%i3 + 0]
	mov	%i1, %i3
	add	%i1, 8, %i1
	set	dec_14, %i4
	st	%i4, [%i3 + 0]
	st	%o7, [%i0 + 4]
	call	compose_7
	add	%i0, 8, %i0	! delay slot
	sub	%i0, 8, %i0
	ld	[%i0 + 4], %o7
	mov	%i2, %i3
	ld	[%i0 + 0], %i2
	st	%o7, [%i0 + 4]
	call	compose_7
	add	%i0, 8, %i0	! delay slot
	sub	%i0, 8, %i0
	ld	[%i0 + 4], %o7
	mov	%i2, %o5
	set	123, %i2
	st	%o7, [%i0 + 4]
	ld	[%o5 + 0], %o4
	call	%o4
	add	%i0, 8, %i0	! delay slot
	sub	%i0, 8, %i0
	ld	[%i0 + 4], %o7
	st	%o7, [%i0 + 4]
	call	min_caml_print_int
	add	%i0, 8, %i0	! delay slot
	sub	%i0, 8, %i0
	ld	[%i0 + 4], %o7
	ret
	restore
