         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.machine ppc
				.section	".text"
		.Ltext0:
				.align 2
		TEST.7021:
		.LFB186:
		.LVL22:
				stwu 1,-2624(1)
				mflr 0
				stw 0,2628(1)
				stw 30,2616(1)
				stw 31,2620(1)
				lwz 9,-28680(2)
				stw 9,2604(1)
				li 9,0
				addi 9,1,2624
				stw 9,284(1)
    2 %owninteger swopped =0
				bl _imp_initialise
		.LVL23:
				li 5,768
				li 4,0
				addi 3,1,1836
				bl memset
		.LVL24:
				li 9,9
				stb 9,2348(1)
				lis 9,.LANCHOR1@ha
				la 9,.LANCHOR1@l(9)
				lwz 8,512(9)
				lwz 10,516(9)
				lhz 9,520(9)
				stw 8,2349(1)
				stw 10,2353(1)
				sth 9,2357(1)
    3 %recordformat f1(%integer i %or %byte b0,b1,b2,b3 %or %string(3)s)
    4 %recordformat f2(%integer i,%record(f1)f)
    5 %recordformat f3(%integer k,%record(f2)f)
    6 %integer i,fail,j,k
    7 %routine test(%integer exp,swexp,act)
		.LVL0:
				stwu 1,-1328(1)
				stw 28,1312(1)
				stw 29,1316(1)
				stw 30,1320(1)
				mr 29,3
				mr 30,5
				mr 28,11
				lwz 9,-28680(2)
				stw 9,1308(1)
				li 9,0
    8 %if swopped=0 %start
				lis 9,.LANCHOR0@ha
				lwz 9,.LANCHOR0@l(9)
				cmpwi 7,9,0
				bne 7,.L6
    9       %if exp=act %then swopped=-1
				cmpw 7,3,5
				beq 7,.L12
   10       %if swexp=act %then swopped=1
				cmpw 7,5,4
				bne 7,.L8
		.L9:
				lis 9,.LANCHOR0@ha
				li 10,-1
				stw 10,.LANCHOR0@l(9)
				cmpw 7,3,4
				bne 7,.L1
				b .L9
		.L2:
		.L6:
   11 %finish
				lis 9,.LANCHOR0@ha
				li 10,1
				stw 10,.LANCHOR0@l(9)
				b .L5
		.L12:
   12 %if swopped=-1 %and exp=act %then %return
				cmpwi 7,9,-1
				beq 7,.L13
		.L7:
   13 %if swopped=1 %and swexp=act %then %return
				cmpwi 7,9,1
				bne 7,.L8
		.L5:
				cmpw 7,3,5
				bne 7,.L8
				b .L1
		.LVL20:
		.L14:
				mflr 0
				stw 0,1332(1)
				stw 31,1324(1)
				bl __stack_chk_fail
		.LVL21:
		.LFE186:
				.align 2
				.globl main
		main:
		.LFB185:
   14       printstring("expected="); write(exp,5)
				cmpw 7,30,4
				beq 7,.L1
		.L8:
				mflr 0
				stw 0,1332(1)
				stw 31,1324(1)
		.LBB17:
				lis 31,.LANCHOR1@ha
				la 31,.LANCHOR1@l(31)
				li 5,256
		.LVL1:
				mr 4,31
		.LVL2:
				addi 3,1,1052
		.LVL3:
				bl memcpy
		.LVL4:
				li 5,256
				addi 4,1,1052
				addi 3,1,284
				bl memcpy
		.LVL5:
				li 5,256
				addi 4,1,284
				addi 3,1,1052
				bl memcpy
		.LVL6:
		.LBE17:
		.LBB18:
		.LBB19:
				li 5,256
				addi 4,1,1052
				addi 3,1,16
				bl memcpy
		.LVL7:
				addi 3,1,16
				bl _imp_printstring
		.LVL8:
		.LBE19:
		.LBE18:
   15       printstring(" actual="); write(act,5); newline
				li 4,5
				mr 3,29
				bl _imp_writeint
		.LVL9:
		.LBB20:
				li 5,256
				addi 4,31,256
				addi 3,1,796
				bl memcpy
		.LVL10:
				li 5,256
				addi 4,1,796
				addi 3,1,540
				bl memcpy
		.LVL11:
				li 5,256
				addi 4,1,540
				addi 3,1,796
				bl memcpy
		.LVL12:
		.LBE20:
		.LBB21:
		.LBB22:
				li 5,256
				addi 4,1,796
				addi 3,1,16
				bl memcpy
		.LVL13:
				addi 3,1,16
				bl _imp_printstring
		.LVL14:
		.LBE22:
		.LBE21:
   16       fail=fail+1
				li 4,5
				mr 3,30
				bl _imp_writeint
		.LVL15:
		.LBB23:
		.LBB24:
				bl _imp_newline
		.LVL16:
		.LBE24:
		.LBE23:
				lwz 9,0(28)
				addi 9,9,1
				stw 9,0(28)
   17       %monitor
   18 %end
				lwz 31,1324(1)
				lwz 0,1332(1)
				mtlr 0
		.L1:
   19 %conststring(11) %array tx(-1:1)="","","(swopped)";
				lwz 9,1308(1)
				lwz 10,-28680(2)
				xor. 9,9,10
				li 10,0
				bne 0,.L14
				lwz 28,1312(1)
				lwz 29,1316(1)
		.LVL17:
				lwz 30,1320(1)
		.LVL18:
				addi 1,1,1328
				blr
		.LVL19:
		.L13:
   20 %record(f1) r1
   21 %record(f2) r2
   22 %record(f3) r3
   23 fail=0
				li 9,0
				stw 9,280(1)
		.LVL25:
		.LDL1:
   24       j=0
   25 l1:
   26 r1_i=0
				stw 9,288(1)
		.LVL26:
   27 k=r1_I+j
   28 r1_b3=5
				li 9,5
				stb 9,291(1)
   29 test(5,X'05000000',r1_i)
				lwz 31,288(1)
				addi 11,1,280
				mr 5,31
				lis 4,0x500
				li 3,5
				bl TEST.7021
		.LVL27:
   30 test(5,x'05000000',r1_i+j)
				addi 11,1,280
				mr 5,31
				lis 4,0x500
				li 3,5
				bl TEST.7021
		.LVL28:
   31 r2_f_i=1
				li 30,1
				stw 30,1316(1)
   32 r2_f_b3=6
				li 31,6
				stb 31,1319(1)
   33 test(6,x'06000001',r2_f_i)
				addi 11,1,280
				lwz 5,1316(1)
				lis 4,0x600
				ori 4,4,0x1
				li 3,6
				bl TEST.7021
		.LVL29:
   34 r3_f_f_i=1
				stw 30,1580(1)
   35 r3_f_f_b3=6
				stb 31,1583(1)
   36 test(6,x'06000001',r3_f_f_i)
				addi 11,1,280
				lwz 5,1580(1)
				lis 4,0x600
				ori 4,4,0x1
				li 3,6
				bl TEST.7021
		.LVL30:
   37 %if fail=0 %then printstring("Test ok ".tx(swopped))
				lwz 9,280(1)
				cmpwi 7,9,0
				beq 7,.L19
		.L16:
		.LVL31:
		.LBB25:
		.LBB26:
				li 3,0
				bl exit
		.LVL32:
		.L19:
		.LBE26:
		.LBE25:
		.LBB27:
		.LBB28:
   38 %endofprogram
?L1 unused
?I unused
   40 Statements compiled
				lis 9,.LANCHOR0@ha
				lwz 5,.LANCHOR0@l(9)
				addi 5,5,1
				slwi 5,5,8
				addi 9,1,1836
				add 5,9,5
				addi 4,1,800
				addi 3,1,1056
				bl _imp_join
		.LVL33:
				li 5,256
				addi 4,1,544
				addi 3,1,1056
				bl memcpy
		.LVL34:
		.LBE28:
		.LBE27:
		.LBB29:
		.LBB30:
				li 5,256
				addi 4,1,1056
				addi 3,1,16
				bl memcpy
		.LVL35:
				addi 3,1,16
				bl _imp_printstring
		.LVL36:
				b .L16
		.LBE30:
		.LBE29:
		.LFE185:
				.section	.rodata
				.align 2
				.set	.LANCHOR1,. + 0
		.LC1:
				.byte	9
				.string	"expected="
				.zero	245
		.LC2:
				.byte	8
				.string	" actual="
				.zero	246
		.LC3:
				.string	"(swopped)"
				.zero	1
				.section	".bss"
				.align 2
				.set	.LANCHOR0,. + 0
		SWOPPED.6984:
				.zero	4
				.section	".text"
		.Letext0:
