         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
		$LC0:
				.byte	5
				.ascii	"ERROR\000"
				.space	249
				.align	2
				.globl	main
				LFB185 = .
				.set	nomips16
				.set	nomicromips
				.ent	main
		main:
				.frame	$sp,1280,$31		# vars= 1000, regs= 4/0, args= 256, gp= 8
				.mask	0x80070000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL0 = .
				addiu	$sp,$sp,-1280
				sw	$31,1276($sp)
				sw	$18,1272($sp)
				sw	$17,1268($sp)
				sw	$16,1264($sp)
				lui	$28,%hi(__gnu_local_gp)
				addiu	$28,$28,%lo(__gnu_local_gp)
				.cprestore	256
				lw	$2,%got(__stack_chk_guard)($28)
				lw	$2,0($2)
				sw	$2,1260($sp)
    2 %INTEGER I,J,K
				lw	$25,%call16(_imp_initialise)($28)
				.reloc	1f,R_MIPS_JALR,_imp_initialise
			1:	jalr	$25
				nop
				LVL1 = .
				lw	$28,256($sp)
				LVL2 = .
				LVL3 = .
				move	$12,$0
				move	$11,$0
    3       I=3; J=4; K=5
    4 %INTEGERARRAY A(0:3,2:4,1:5)
    5 %INTEGERARRAY B(0:I,2:J,1:K)
    6       %FOR I=0,1,3 %CYCLE
    7          %FOR J=2,1,4 %CYCLE
    8             %FOR K=1,1,5 %CYCLE
    9                A(I,J,K)=M'A'<<24!I<<16!J<<8!K
				li	$18,1090519040			# 0x41000000
				.option	pic0
				b	$L4
				.option	pic2
				li	$31,240			# 0xf0
				LVL5 = .
		$L35:
				LDL1 = .
				LDL2 = .
				beq	$12,$31,$L34
				addu	$11,$11,$16
				LVL6 = .
		$L4:
				or	$14,$11,$18
				or	$7,$14,$8
				move	$2,$0
				LVL8 = .
		$L5:
				or	$5,$7,$2
				sw	$5,0($4)
   10                B(I,J,K)=M'B'<<24!I<<16!J<<8!K
				li	$17,1107296256			# 0x42000000
				addiu	$24,$sp,268
				addiu	$15,$sp,508
				LVL4 = .
				li	$25,1280			# 0x500
				li	$16,65536			# 0x10000
				or	$13,$11,$17
				move	$10,$12
				li	$8,512			# 0x200
				LVL7 = .
		$L2:
				or	$6,$8,$13
				addu	$4,$10,$24
				addu	$3,$10,$15
				or	$5,$6,$2
				sw	$5,0($3)
				LDL3 = .
				addiu	$4,$4,4
				bne	$8,$25,$L2
				addiu	$10,$10,20
				.option	pic0
				b	$L35
				.option	pic2
				addiu	$12,$12,60
		$L34:
   11             %REPEAT
				li	$9,5			# 0x5
				bne	$2,$9,$L5
				addiu	$3,$3,4
				LDL4 = .
				LDL5 = .
				addiu	$8,$8,256
   12          %REPEAT
				addiu	$2,$2,1
				LVL9 = .
   13       %REPEAT
   14       %FOR I=0,1,3 %CYCLE
   15          %FOR J=2,1,4 %CYCLE
   16             %FOR K=1,1,5 %CYCLE
				li	$9,64			# 0x40
				addiu	$14,$24,-64
				addiu	$13,$15,-64
   17                %IF A(I,J,K)&X'FFFFFF'#B(I,J,K)&X'FFFFFF' %START
				li	$7,-16777216			# 0xffffffffff000000
				addiu	$7,$7,1
				li	$25,304			# 0x130
				LVL10 = .
		$L3:
				addu	$11,$14,$9
				addu	$10,$13,$9
				addiu	$8,$9,-60
				LVL11 = .
		$L8:
				lw	$3,0($10)
				addu	$3,$3,$7
				sltu	$3,$3,1
				lw	$2,0($11)
				and	$3,$3,$2
				beq	$3,$0,$L11
				addu	$5,$8,$24
				addu	$4,$8,$15
				LVL12 = .
		$L14:
				LDL6 = .
				LDL7 = .
				lw	$2,0($4)
				addu	$2,$2,$7
				sltu	$2,$2,1
				lw	$6,0($5)
				and	$2,$2,$6
				beq	$2,$0,$L11
				addiu	$3,$3,1
				addiu	$5,$5,4
				bne	$3,$12,$L14
				addiu	$4,$4,4
				LDL8 = .
				LDL9 = .
				addiu	$11,$11,20
				addiu	$8,$8,20
				bne	$9,$25,$L3
				lui	$2,%hi($LC1)
				L9 = .
				LBB12 = .
   18                   PRINTSTRING("ERROR")
				bne	$8,$9,$L8
				addiu	$10,$10,20
				LDL10 = .
				LDL11 = .
				LDL12 = .
				addiu	$9,$9,60
				lui	$2,%hi($LC0)
				addiu	$2,$2,%lo($LC0)
				addiu	$3,$sp,1004
				addiu	$4,$2,256
		$L15:
				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,$L15
				addiu	$3,$3,16
				addiu	$2,$sp,1004
				addiu	$3,$sp,748
				addiu	$4,$sp,1260
		$L16:
				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,$L16
				addiu	$3,$3,16
				addiu	$2,$sp,748
				addiu	$3,$sp,1004
				move	$4,$3
		$L17:
				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,$L17
				addiu	$3,$3,16
				LBE17 = .
				LBB18 = .
				LBB19 = .
				addiu	$2,$sp,1020
				addiu	$3,$sp,16
				addiu	$4,$sp,1260
		$L18:
				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,$L18
				addiu	$3,$3,16
				lw	$4,1004($sp)
				lw	$5,1008($sp)
				lw	$6,1012($sp)
				lw	$7,1016($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL18 = .
				lw	$28,256($sp)
				LVL19 = .
				LVL20 = .
				LBE19 = .
				LBE18 = .
				LBB20 = .
				LBB21 = .
				move	$4,$0
				lw	$25,%call16(exit)($28)
				.reloc	1f,R_MIPS_JALR,exit
			1:	jalr	$25
				nop
				LVL21 = .
				LBE21 = .
				LBE20 = .
				.set	macro
				.set	reorder
				.end	main
		$LFE185:
		$Letext0:
   19                   %MONITOR
				li	$12,5			# 0x5
   20                   %STOP
   21                %FINISH
   22             %REPEAT
   23          %REPEAT
   24       %REPEAT
   25       PRINTSTRING("TEST OK")
				addiu	$2,$2,%lo($LC1)
				addiu	$3,$sp,1004
				LVL13 = .
				addiu	$4,$2,256
		$L19:
				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,$L19
				addiu	$3,$3,16
				addiu	$2,$sp,1004
				addiu	$3,$sp,748
				addiu	$4,$sp,1260
		$L20:
				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,$L20
				addiu	$3,$3,16
				addiu	$2,$sp,748
				addiu	$3,$sp,1004
				move	$4,$3
		$L21:
				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,$L21
				addiu	$3,$3,16
				LBE12 = .
				LBB13 = .
				LBB14 = .
				addiu	$2,$sp,1020
				addiu	$3,$sp,16
				addiu	$4,$sp,1260
		$L22:
				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,$L22
				addiu	$3,$3,16
				lw	$4,1004($sp)
				lw	$5,1008($sp)
				lw	$6,1012($sp)
				lw	$7,1016($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL14 = .
				lw	$28,256($sp)
				LVL15 = .
				LVL16 = .
				LBE14 = .
				LBE13 = .
				LBB15 = .
				LBB16 = .
				move	$4,$0
				lw	$25,%call16(exit)($28)
				.reloc	1f,R_MIPS_JALR,exit
			1:	jalr	$25
				nop
				LVL17 = .
		$L11:
				LBE16 = .
				LBE15 = .
				LBB17 = .
   26 %ENDOFPROGRAM
   28 Statements compiled
