         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.section .mdebug.abi32
				.previous
				.nan	legacy
				.module	fp=xx
				.module	nooddspreg
				.abicalls
		$Ltext0:
				.rdata
				.align	2
		$LC1:
				.byte	7
				.ascii	"Test ok\000"
				.space	247
				.align	2
				LFB186 = .
				.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
				LVL13 = .
				addiu	$sp,$sp,-32
				sw	$31,28($sp)
				lui	$28,%hi(__gnu_local_gp)
				addiu	$28,$28,%lo(__gnu_local_gp)
				.cprestore	16
    2 %externalinteger fredfred
				lw	$25,%call16(_imp_initialise)($28)
				.reloc	1f,R_MIPS_JALR,_imp_initialise
			1:	jalr	$25
				nop
				LVL14 = .
				lw	$28,16($sp)
				LVL15 = .
				LVL16 = .
    3 %routine fred(%integer opcode)
				.set	nomips16
				.set	nomicromips
				.ent	FRED.5999
		FRED.5999:
				.frame	$sp,1304,$31		# vars= 1032, regs= 2/0, args= 256, gp= 8
				.mask	0x80010000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL0 = .
				addiu	$sp,$sp,-1304
				sw	$31,1300($sp)
				sw	$16,1296($sp)
				lui	$28,%hi(__gnu_local_gp)
				addiu	$28,$28,%lo(__gnu_local_gp)
				.cprestore	256
				move	$16,$4
				lw	$2,%got(__stack_chk_guard)($28)
				lw	$2,0($2)
				sw	$2,1292($sp)
    4 %externalintegerspec fredfred
    5 %integer i,j,k,l
    6 %string(11) ts
    7       ts="abcdef"
    8 i=1; j=2; k=3
    9 write(fredfred,5)
				li	$6,11			# 0xb
				addiu	$5,$sp,524
				addiu	$4,$sp,268
				LVL1 = .
				lw	$25,%call16(_imp_strncpy)($28)
				.reloc	1f,R_MIPS_JALR,_imp_strncpy
			1:	jalr	$25
				nop
				LVL2 = .
				lw	$28,256($sp)
				LVL3 = .
				li	$5,5			# 0x5
				lw	$2,%got(FREDFRED)($28)
				lw	$4,0($2)
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL4 = .
				lw	$28,256($sp)
   10 %if opcode=x'9a' %or X'e8'<=opcode<=x'e9' %or x'81'<=opcode<=x'89' %then printstring("Test ok")
				li	$2,154			# 0x9a
				beq	$16,$2,$L2
				addiu	$2,$16,-232
				LVL5 = .
				LBB13 = .
   11 newline
   12 %end
?L unused
   13 fredfred=5
				lw	$3,1292($sp)
				lw	$2,%got(__stack_chk_guard)($28)
				lw	$2,0($2)
				bne	$3,$2,$L15
				lw	$31,1300($sp)
				lw	$16,1296($sp)
				jr	$31
				addiu	$sp,$sp,1304
		$L15:
				lw	$25,%call16(__stack_chk_fail)($28)
				.reloc	1f,R_MIPS_JALR,__stack_chk_fail
			1:	jalr	$25
				nop
				LVL12 = .
				.set	macro
				.set	reorder
				.end	FRED.5999
		$LFE186:
				.align	2
				.globl	main
				LFB185 = .
   14 fred(x'e8')
				sltu	$2,$2,2
				bne	$2,$0,$L16
				lui	$2,%hi($LC1)
				L3 = .
				LVL6 = .
				LBE13 = .
				LBB14 = .
				li	$4,232			# 0xe8
				.option	pic0
				jal	FRED.5999
				nop
				.option	pic2
				LVL17 = .
				lw	$28,16($sp)
				LVL18 = .
				LBB20 = .
				LBB21 = .
				move	$4,$0
				lw	$25,%call16(exit)($28)
				.reloc	1f,R_MIPS_JALR,exit
			1:	jalr	$25
				nop
				LVL19 = .
				LBE21 = .
				LBE20 = .
				.set	macro
				.set	reorder
				.end	main
		$LFE185:
		$Letext0:
   15 %endofprogram
   17 Statements compiled
				addiu	$16,$16,-129
				LVL7 = .
				sltu	$16,$16,9
				LVL8 = .
				beq	$16,$0,$L17
				lw	$25,%call16(_imp_newline)($28)
				LVL9 = .
		$L2:
				LBE14 = .
				LBB15 = .
				lui	$2,%hi($LC1)
		$L16:
				addiu	$2,$2,%lo($LC1)
				addiu	$3,$sp,1036
				addiu	$4,$2,256
		$L5:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L5
				addiu	$3,$3,16
				addiu	$2,$sp,1036
				addiu	$3,$sp,780
				addiu	$4,$sp,1292
		$L6:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L6
				addiu	$3,$3,16
				addiu	$2,$sp,780
				addiu	$3,$sp,1036
				move	$4,$3
		$L7:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L7
				addiu	$3,$3,16
				LBE15 = .
				LBB16 = .
				LBB17 = .
				addiu	$2,$sp,1052
				addiu	$3,$sp,16
				addiu	$4,$sp,1292
		$L8:
				lw	$8,0($2)
				lw	$7,4($2)
				lw	$6,8($2)
				lw	$5,12($2)
				sw	$8,0($3)
				sw	$7,4($3)
				sw	$6,8($3)
				sw	$5,12($3)
				addiu	$2,$2,16
				bne	$2,$4,$L8
				addiu	$3,$3,16
				lw	$4,1036($sp)
				lw	$5,1040($sp)
				lw	$6,1044($sp)
				lw	$7,1048($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL10 = .
				lw	$28,256($sp)
				L4 = .
				LBE17 = .
				LBE16 = .
				LBB18 = .
				LBB19 = .
				lw	$25,%call16(_imp_newline)($28)
		$L17:
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL11 = .
				lw	$28,256($sp)
				LBE19 = .
				LBE18 = .
