         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	17
				.ascii	"TEST OK (Swopped)\000"
				.space	237
				.align	2
		$LC0:
				.byte	19
				.ascii	"TEST OK (Unswopped)\000"
				.space	235
				.align	2
				.globl	main
				LFB185 = .
				.set	nomips16
				.set	nomicromips
				.ent	main
		main:
				.frame	$sp,816,$31		# vars= 544, regs= 1/0, args= 256, gp= 8
				.mask	0x80000000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL0 = .
				addiu	$sp,$sp,-816
				sw	$31,812($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,804($sp)
    2
				lw	$25,%call16(_imp_initialise)($28)
				.reloc	1f,R_MIPS_JALR,_imp_initialise
			1:	jalr	$25
				nop
				LVL1 = .
				lw	$28,256($sp)
				LVL2 = .
				LVL3 = .
    3 !
    4 ! TEST A MAP USE THAT IS DIFFICULT TO OPTIMISE
    5 !
    6 %RECORDFORMAT F(%INTEGER I,J,K,%BYTEARRAY VOL(1:5),
    7       %BYTE B,%BYTEARRAY LAB(1:3))
    8 %INTEGER I,J
    9 %RECORD(F) SP
   10 %RECORD(F)%NAME R
   11       R==SP
   12       R=0
				sw	$0,268($sp)
				sw	$0,272($sp)
				sw	$0,276($sp)
				sw	$0,284($sp)
				sw	$0,288($sp)
   13       R_VOL(1)='A'
				li	$2,65			# 0x41
				sb	$2,280($sp)
   14       R_VOL(2)='B'
				li	$2,66			# 0x42
				sb	$2,281($sp)
   15       R_VOL(3)='C'
				li	$2,67			# 0x43
				sb	$2,282($sp)
   16       R_VOL(4)='D'
				li	$2,68			# 0x44
				sb	$2,283($sp)
   17       R_VOL(5)='E'
				li	$2,69			# 0x45
				sb	$2,284($sp)
				LVL4 = .
				addiu	$2,$sp,270
				addiu	$4,$sp,275
				LVL5 = .
		$L2:
   18       %FOR I=1,1,5 %CYCLE
   19          BYTEINTEGER(ADDR(R_I)+1+I)=R_VOL(I)
				lbu	$3,10($2)
				sb	$3,0($2)
				LDL1 = .
				addiu	$2,$2,1
				LVL6 = .
   20       %REPEAT
   21       I=ADDR(R_VOL(5))
				bne	$2,$4,$L2
				nop
				L3 = .
				LVL7 = .
   22       J=ADDR(R_LAB(1))
   23       %IF R_I=M'AB' %AND R_J=M'CDE'<<8 %AND J-I=2 %THEN %c
				lw	$4,268($sp)
				li	$2,16706			# 0x4142
				beq	$4,$2,$L25
				li	$2,1111556096			# 0x42410000
				L4 = .
   24          PRINTSTRING("TEST OK (Unswopped)") %AND %STOP
				lw	$3,272($sp)
				li	$2,1128529920			# 0x43440000
				addiu	$2,$2,17664
				bne	$3,$2,$L27
				li	$5,5			# 0x5
				LBB24 = .
   25       %if R_I=M'BA'<<16 %and R_j=M'EDC' %and J-I=2 %then %C
				bne	$4,$2,$L5
				lw	$3,272($sp)
   26          PRINTSTRING("TEST OK (Swopped)") %and %stop
				li	$2,4521984			# 0x450000
				addiu	$2,$2,17475
				beq	$3,$2,$L26
				lui	$2,%hi($LC1)
		$L5:
				lui	$2,%hi($LC0)
				addiu	$2,$2,%lo($LC0)
				addiu	$3,$sp,548
				addiu	$4,$2,256
		$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,548
				addiu	$3,$sp,292
				addiu	$4,$sp,804
		$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
				addiu	$2,$sp,292
				addiu	$3,$sp,548
				move	$4,$3
		$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
				LBE24 = .
				LBB25 = .
				LBB26 = .
				addiu	$2,$sp,564
				addiu	$3,$sp,16
				addiu	$4,$sp,804
		$L9:
				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,$L9
				addiu	$3,$3,16
				lw	$4,548($sp)
				lw	$5,552($sp)
				lw	$6,556($sp)
				lw	$7,560($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL12 = .
				lw	$28,256($sp)
				LVL13 = .
				LBE26 = .
				LBE25 = .
				LBB27 = .
				LBB28 = .
				move	$4,$0
				lw	$25,%call16(exit)($28)
				.reloc	1f,R_MIPS_JALR,exit
			1:	jalr	$25
				nop
				LVL14 = .
		$L26:
				LBE28 = .
				LBE27 = .
				LBB29 = .
				addiu	$2,$2,%lo($LC1)
				addiu	$3,$sp,548
				addiu	$4,$2,256
		$L10:
				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,$L10
				addiu	$3,$3,16
				addiu	$2,$sp,548
				addiu	$3,$sp,292
				addiu	$4,$sp,804
		$L11:
				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,$L11
				addiu	$3,$3,16
				addiu	$2,$sp,292
				addiu	$3,$sp,548
				move	$4,$3
		$L12:
				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,$L12
				addiu	$3,$3,16
				LBE29 = .
				LBB30 = .
				LBB31 = .
				addiu	$2,$sp,564
				addiu	$3,$sp,16
				addiu	$4,$sp,804
		$L13:
				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,$L13
				addiu	$3,$3,16
				lw	$4,548($sp)
				lw	$5,552($sp)
				lw	$6,556($sp)
				lw	$7,560($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL15 = .
				lw	$28,256($sp)
				LVL16 = .
				LBE31 = .
				LBE30 = .
				LBB32 = .
				LBB33 = .
				move	$4,$0
				lw	$25,%call16(exit)($28)
				.reloc	1f,R_MIPS_JALR,exit
			1:	jalr	$25
				nop
				LVL17 = .
				LBE33 = .
				LBE32 = .
				.set	macro
				.set	reorder
				.end	main
		$LFE185:
		$Letext0:
   27       WRITE(R_I,5)
				li	$5,5			# 0x5
		$L27:
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL8 = .
				lw	$28,256($sp)
   28       WRITE(R_J,5)
				li	$5,5			# 0x5
				lw	$4,272($sp)
				lw	$25,%call16(_imp_writeint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_writeint
			1:	jalr	$25
				nop
				LVL9 = .
				lw	$28,256($sp)
				LVL10 = .
				LBB22 = .
				LBB23 = .
				move	$4,$0
				lw	$25,%call16(exit)($28)
				.reloc	1f,R_MIPS_JALR,exit
			1:	jalr	$25
				nop
				LVL11 = .
		$L25:
				LBE23 = .
				LBE22 = .
   29 %ENDOFPROGRAM
   22 Statements compiled
