         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.section .mdebug.abi32
				.previous
				.nan	legacy
				.module	fp=xx
				.module	nooddspreg
				.abicalls
		$Ltext0:
				.rdata
				.align	2
		$LC2:
				.byte	4
				.ascii	"p2: \000"
				.space	250
				.align	2
				LFB187 = .
				.set	nomips16
				.set	nomicromips
				.ent	main
		main:
				.frame	$sp,1320,$31		# vars= 1032, regs= 6/0, args= 256, gp= 8
				.mask	0x801f0000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL12 = .
				addiu	$sp,$sp,-1320
				sw	$31,1316($sp)
				sw	$20,1312($sp)
				sw	$19,1308($sp)
				sw	$18,1304($sp)
				sw	$17,1300($sp)
				sw	$16,1296($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,1292($sp)
    2   %string(255) s
				lw	$25,%call16(_imp_initialise)($28)
				.reloc	1f,R_MIPS_JALR,_imp_initialise
			1:	jalr	$25
				nop
				LVL13 = .
				lw	$28,256($sp)
				LVL14 = .
    3   %integer n
    4
    5   %routine p1 (%string(*)%name k)
				.set	nomips16
				.set	nomicromips
				.ent	P1.6000
		P1.6000:
				.frame	$sp,1304,$31		# vars= 1032, regs= 1/0, args= 256, gp= 8
				.mask	0x80000000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL6 = .
				addiu	$sp,$sp,-1304
				sw	$31,1300($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,1292($sp)
				LBB30 = .
    6     print string("p1: ")
				lui	$2,%hi($LC3)
				addiu	$2,$2,%lo($LC3)
				addiu	$3,$sp,1036
				addiu	$4,$2,256
				LVL7 = .
		$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
				addiu	$2,$sp,1036
				addiu	$3,$sp,268
				addiu	$4,$sp,1292
		$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,268
				addiu	$3,$sp,1036
				addiu	$4,$sp,524
		$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
				LBE30 = .
				LBB31 = .
				LBB32 = .
				addiu	$2,$sp,1052
				addiu	$3,$sp,16
				addiu	$4,$sp,1292
		$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
				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
				LVL8 = .
				lw	$28,256($sp)
				addiu	$2,$sp,524
				addiu	$3,$sp,780
				move	$4,$3
		$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
				LBE32 = .
				LBE31 = .
				LBB33 = .
				LBB34 = .
				addiu	$2,$sp,796
				addiu	$3,$sp,16
				addiu	$4,$sp,1036
		$L23:
				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,$L23
				addiu	$3,$3,16
				lw	$4,780($sp)
				lw	$5,784($sp)
				lw	$6,788($sp)
				lw	$7,792($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL9 = .
				lw	$28,256($sp)
				LBE34 = .
				LBE33 = .
				LBB35 = .
				LBB36 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL10 = .
				lw	$28,256($sp)
				LBE36 = .
				LBE35 = .
    7     print string(k)
    8     newline
    9   %end
   10
				lw	$3,1292($sp)
				lw	$2,%got(__stack_chk_guard)($28)
				lw	$2,0($2)
				bne	$3,$2,$L32
				lw	$31,1300($sp)
				jr	$31
				addiu	$sp,$sp,1304
		$L32:
				lw	$25,%call16(__stack_chk_fail)($28)
				.reloc	1f,R_MIPS_JALR,__stack_chk_fail
			1:	jalr	$25
				nop
				LVL11 = .
				.set	macro
				.set	reorder
				.end	P1.6000
		$LFE186:
				.rdata
				.align	2
		$LC1:
				.byte	9
				.ascii	"test done\000"
				.space	245
				.align	2
				.globl	main
				LFB185 = .
   11   %routine p2 (%string(*)%name k)
				.set	nomips16
				.set	nomicromips
				.ent	P2.6007
		P2.6007:
				.frame	$sp,1304,$31		# vars= 1032, regs= 1/0, args= 256, gp= 8
				.mask	0x80000000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL0 = .
				addiu	$sp,$sp,-1304
				sw	$31,1300($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,1292($sp)
				LBB23 = .
   12     print string("p2: ")
				lui	$2,%hi($LC2)
				addiu	$2,$2,%lo($LC2)
				addiu	$3,$sp,1036
				addiu	$4,$2,256
				LVL1 = .
		$L2:
				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,$L2
				addiu	$3,$3,16
				addiu	$2,$sp,1036
				addiu	$3,$sp,268
				addiu	$4,$sp,1292
		$L3:
				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,$L3
				addiu	$3,$3,16
				addiu	$2,$sp,268
				addiu	$3,$sp,1036
				addiu	$4,$sp,524
		$L4:
				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,$L4
				addiu	$3,$3,16
				LBE23 = .
				LBB24 = .
				LBB25 = .
				addiu	$2,$sp,1052
				addiu	$3,$sp,16
				addiu	$4,$sp,1292
		$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
				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
				LVL2 = .
				lw	$28,256($sp)
				addiu	$2,$sp,524
				addiu	$3,$sp,780
				move	$4,$3
		$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
				LBE25 = .
				LBE24 = .
				LBB26 = .
				LBB27 = .
				addiu	$2,$sp,796
				addiu	$3,$sp,16
				addiu	$4,$sp,1036
		$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
				lw	$4,780($sp)
				lw	$5,784($sp)
				lw	$6,788($sp)
				lw	$7,792($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL3 = .
				lw	$28,256($sp)
				LBE27 = .
				LBE26 = .
				LBB28 = .
				LBB29 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL4 = .
				lw	$28,256($sp)
				LBE29 = .
				LBE28 = .
   13     print string(k)
   14     newline
   15   %end
   16
				lw	$3,1292($sp)
				lw	$2,%got(__stack_chk_guard)($28)
				lw	$2,0($2)
				bne	$3,$2,$L16
				lw	$31,1300($sp)
				jr	$31
				addiu	$sp,$sp,1304
		$L16:
				lw	$25,%call16(__stack_chk_fail)($28)
				.reloc	1f,R_MIPS_JALR,__stack_chk_fail
			1:	jalr	$25
				nop
				LVL5 = .
				.set	macro
				.set	reorder
				.end	P2.6007
		$LFE187:
				.rdata
				.align	2
		$LC3:
				.byte	4
				.ascii	"p1: \000"
				.space	250
				.align	2
				LFB186 = .
   17   %routine pass (%routine p (%string(*)%name k), %string(*)%name k)
   18     p(k)
				.option	pic0
				jal	P2.6007
				nop
				.option	pic2
				LVL18 = .
				lw	$28,256($sp)
				LVL19 = .
				L36 = .
				LBE48 = .
				LBE47 = .
				LBB49 = .
				addiu	$2,$17,%lo($LC1)
		$L49:
				addiu	$3,$sp,524
				addiu	$4,$2,256
		$L37:
				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,$L37
				addiu	$3,$3,16
				addiu	$2,$sp,524
				addiu	$3,$sp,780
		$L38:
				lw	$7,0($2)
				lw	$6,4($2)
				lw	$5,8($2)
				lw	$4,12($2)
				sw	$7,0($3)
				sw	$6,4($3)
				sw	$5,8($3)
				sw	$4,12($3)
				addiu	$2,$2,16
				bne	$2,$19,$L38
				addiu	$3,$3,16
				addiu	$2,$sp,780
				addiu	$3,$sp,1036
		$L39:
				lw	$7,0($2)
				lw	$6,4($2)
				lw	$5,8($2)
				lw	$4,12($2)
				sw	$7,0($3)
				sw	$6,4($3)
				sw	$5,8($3)
				sw	$4,12($3)
				addiu	$2,$2,16
				bne	$2,$20,$L39
				addiu	$3,$3,16
				LBE49 = .
				LBB50 = .
				LBB51 = .
				addiu	$2,$sp,1052
				addiu	$3,$sp,16
				addiu	$4,$sp,1292
		$L40:
				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,$L40
				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
				LVL20 = .
				lw	$28,256($sp)
				LBE51 = .
				LBE50 = .
				LBB52 = .
				LBB53 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL21 = .
				lw	$28,256($sp)
				LBE53 = .
				LBE52 = .
				.option	pic0
				jal	P1.6000
				nop
				.option	pic2
				LVL23 = .
				lw	$28,256($sp)
				LBE55 = .
				LBE54 = .
				.option	pic0
				b	$L49
				.option	pic2
				addiu	$2,$17,%lo($LC1)
				.set	macro
				.set	reorder
				.end	main
		$LFE185:
		$Letext0:
   19   %end
   20
   21   %cycle
   22     read(n)
				addiu	$18,$sp,264
				move	$4,$18
		$L48:
				lw	$25,%call16(_imp_readint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_readint
			1:	jalr	$25
				nop
				LVL15 = .
				lw	$28,256($sp)
				.option	pic0
				b	$L48
				.option	pic2
				move	$4,$18
		$L47:
				LVL22 = .
				LBB54 = .
				LBB55 = .
   23     read(s)
				addiu	$16,$sp,268
				LBB46 = .
				move	$4,$16
				lw	$25,%call16(_imp_readitem)($28)
				.reloc	1f,R_MIPS_JALR,_imp_readitem
			1:	jalr	$25
				nop
				LVL16 = .
				lw	$28,256($sp)
   24     %if n = 1 %start
				lw	$3,264($sp)
				li	$2,1			# 0x1
				beq	$3,$2,$L47
				move	$4,$16
				L35 = .
				LVL17 = .
				LBB47 = .
				LBB48 = .
   25       pass(p1,s)
   26     %else
   27       pass(p2,s)
   28     %finish
   29     print string("test done")
				lui	$17,%hi($LC1)
				addiu	$19,$sp,780
				addiu	$20,$sp,1036
				L34 = .
				LBE46 = .
   30     newline
   31   %repeat
   32
   33 %end
   34 %end %of %file
   29 Statements compiled
