         Edinburgh IMP77 Compiler - Version 8.4
    1 ! In the C translation, local should be 'static' not external or auto...
		.Ltext0:
				.align	1
				.global	FRED
				.thumb
				.thumb_func
		FRED:
		.LFB185:
    2 %routinespec local(%integer i)
    3
    4 %externalroutine fred
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r3, lr}
		.LVL0:
		.LBB10:
		.LBB11:
    5   local(2)
    6 %end
    7
				pop	{r3, pc}
		.LFE185:
				.align	1
				.global	main
				.thumb
				.thumb_func
		main:
		.LFB187:
    8 %routine local(%integer i)
    9   write(i,0); newline
				movs	r1, #0
				movs	r0, #2
				bl	_imp_writeint(PLT)
		.LVL1:
		.LBB12:
		.LBB13:
				bl	_imp_newline(PLT)
		.LVL2:
		.LBE13:
		.LBE12:
		.LBE11:
		.LBE10:
   10 %end
   11
   12 %begin
				@ Volatile: function does not return.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL3:
				push	{r3, lr}
   13   %routinespec jim(%integer i)
				bl	_imp_initialise(PLT)
		.LVL4:
		.LBB18:
		.LBB19:
   14   jim(22)
   15   %routine jim(%integer i)
   16     fred
				bl	FRED(PLT)
		.LVL5:
		.LBE19:
		.LBE18:
		.LBB20:
		.LBB21:
				movs	r0, #0
				bl	exit(PLT)
		.LVL6:
		.LBE21:
		.LBE20:
		.LFE187:
		.Letext0:
   17   %end
?I unused
   18 %end
   19
   20 %endoffile
   16 Statements compiled
