         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.section .mdebug.abi32
				.previous
				.nan	legacy
				.module	fp=xx
				.module	nooddspreg
				.abicalls
		$Ltext0:
				.align	2
				.globl	main
				LFB185 = .
				.set	nomips16
				.set	nomicromips
				.ent	main
		main:
				.frame	$sp,32,$31		# vars= 0, regs= 1/0, args= 16, gp= 8
				.mask	0x80000000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL0 = .
				addiu	$sp,$sp,-32
				sw	$31,28($sp)
				lui	$28,%hi(__gnu_local_gp)
				addiu	$28,$28,%lo(__gnu_local_gp)
				.cprestore	16
    2 ! PASSES A RECORD BY VALUE
				lw	$25,%call16(_imp_initialise)($28)
				.reloc	1f,R_MIPS_JALR,_imp_initialise
			1:	jalr	$25
				nop
				LVL1 = .
				lw	$28,16($sp)
				LVL2 = .
				LVL3 = .
				LBB8 = .
				LBB9 = .
    3 %recordformat fm((%integer i %or %byte b1,b2,b3,b4))
    4 %record(fm) a,b
    5
    6 %routine fred(%record(fm) x,%integer y, %record(fm) z)
    7    write(x_b1,1)
				li	$5,1			# 0x1
				li	$4,1			# 0x1
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL4 = .
				lw	$28,16($sp)
    8    write(x_b2,1)
				li	$5,1			# 0x1
				li	$4,2			# 0x2
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL5 = .
				lw	$28,16($sp)
    9    write(x_b3,1)
				li	$5,1			# 0x1
				li	$4,3			# 0x3
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL6 = .
				lw	$28,16($sp)
   10    write(x_b4,1)
				li	$5,1			# 0x1
				li	$4,4			# 0x4
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL7 = .
				lw	$28,16($sp)
   11    write(z_b1,1)
				li	$5,1			# 0x1
				li	$4,5			# 0x5
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL8 = .
				lw	$28,16($sp)
   12    write(z_b2,1)
				li	$5,1			# 0x1
				li	$4,6			# 0x6
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL9 = .
				lw	$28,16($sp)
   13    write(z_b3,1)
				li	$5,1			# 0x1
				li	$4,7			# 0x7
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL10 = .
				lw	$28,16($sp)
   14    write(z_b4,1)
				li	$5,1			# 0x1
				li	$4,8			# 0x8
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL11 = .
				lw	$28,16($sp)
				LVL12 = .
				LBE9 = .
				LBE8 = .
				LBB10 = .
				LBB11 = .
				move	$4,$0
				lw	$25,%call16(exit)($28)
				.reloc	1f,R_MIPS_JALR,exit
			1:	jalr	$25
				nop
				LVL13 = .
				LBE11 = .
				LBE10 = .
				.set	macro
				.set	reorder
				.end	main
		$LFE185:
		$Letext0:
   15 %end
?Y unused
   16
   17 a_i=x'01020304'
   18 b_i=x'05060708'
   19 fred(a,9,b)
   20 %endofprogram
   17 Statements compiled
