         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.section	".text"
		.Ltext0:
				.align 4
				.proc	020
		DOSOMETHING.6058:
		.LFB186:
				.register	%g7, #ignore
		.LVL3:
				save	%sp, -192, %sp
		.LVL4:
				ldx	[%g7+40], %g1
				stx	%g1, [%fp+2039]
				mov	0, %g1
    2   %integer i
				mov	%i1, %o1
				call	_imp_initialise, 0
				 mov	%i0, %o0
		.LVL5:
    3
    4   %routine dosomething(%integername p)
		.LVL0:
				save	%sp, -176, %sp
		.LVL1:
    5     p = p - 1
				lduw	[%i0], %g1
				add	%g1, -1, %g1
    6     dosomething(p) %if p>0
				cmp	%g1, 0
				bg,pn	%icc, .L3
				 st	%g1, [%i0]
		.L2:
		.L4:
    7   %end
				call	DOSOMETHING.6058, 0
				 mov	%i0, %o0
		.LVL2:
				ba,pt	%xcc, .L4
				 nop
		.LFE186:
				.align 4
				.global main
				.proc	04
		main:
		.LFB185:
    8
				return	%i7+8
				 nop
		.L3:
    9   i = 10
				mov	10, %g1
				st	%g1, [%fp+2035]
   10   dosomething(i)
				call	DOSOMETHING.6058, 0
				 add	%fp, 2035, %o0
		.LVL6:
		.LBB4:
		.LBB5:
				call	exit, 0
				 mov	0, %o0
		.LVL7:
		.LBE5:
		.LBE4:
				nop
		.LFE185:
		.Letext0:
   11
   12 %endofprogram
    9 Statements compiled
