         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.section .mdebug.abi32
				.previous
				.nan	legacy
				.module	fp=xx
				.module	nooddspreg
				.abicalls
		$Ltext0:
				.rdata
				.align	2
		$LC0:
				.byte	46
				.ascii	"Please enter the word BUG when I ask for data:\000"
				.space	208
				.align	2
		$LC3:
				.byte	14
				.ascii	"Call returned \000"
				.space	240
				.align	2
		$LC1:
				.byte	16
				.ascii	"Test successful.\000"
				.space	238
				.align	2
		$LC2:
				.byte	39
				.ascii	"Test failed - getchar was called twice.\000"
				.space	215
				.align	2
				.globl	main
				LFB185 = .
				.set	nomips16
				.set	nomicromips
				.ent	main
		main:
				.frame	$sp,2328,$31		# vars= 2056, regs= 1/0, args= 256, gp= 8
				.mask	0x80000000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL0 = .
				addiu	$sp,$sp,-2328
				sw	$31,2324($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,2316($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 = .
				LBB58 = .
    3   %integerfn getchar
    4     %integer sym
    5     readsymbol(sym)
    6     printstring("Call returned "); printsymbol(sym); newline
				lui	$2,%hi($LC3)
				addiu	$2,$2,%lo($LC3)
				addiu	$3,$sp,1804
				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,1804
				addiu	$3,$sp,2060
				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
				addiu	$2,$sp,2060
				addiu	$3,$sp,1804
				addiu	$4,$sp,2316
		$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
				LBE68 = .
				LBB69 = .
				LBB70 = .
				addiu	$2,$sp,1820
				addiu	$3,$sp,16
				addiu	$4,$sp,2060
		$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,1804($sp)
				lw	$5,1808($sp)
				lw	$6,1812($sp)
				lw	$7,1816($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL10 = .
				lw	$28,256($sp)
				LVL11 = .
				LBE70 = .
				LBE69 = .
				LBB71 = .
				LBB72 = .
				lb	$4,267($sp)
				lw	$25,%call16(_imp_printsymbol)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printsymbol
			1:	jalr	$25
				nop
				LVL12 = .
				lw	$28,256($sp)
				LVL13 = .
				LBE72 = .
				LBE71 = .
				LBB73 = .
				LBB74 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL14 = .
				lw	$28,256($sp)
				LBE74 = .
				LBE73 = .
    7     %result = sym
				lw	$2,264($sp)
				LBE65 = .
				LBE64 = .
    8   %end
    9
   10   printstring("Please enter the word BUG when I ask for data:"); newline
				lui	$2,%hi($LC0)
				addiu	$2,$2,%lo($LC0)
				addiu	$3,$sp,2060
				addiu	$4,$2,256
		$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,2060
				addiu	$3,$sp,268
				addiu	$4,$sp,2316
		$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
				LBE58 = .
				LBB59 = .
				LBB60 = .
				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
				LVL3 = .
				lw	$28,256($sp)
				LBE60 = .
				LBE59 = .
				LBB61 = .
				LBB62 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL4 = .
				lw	$28,256($sp)
				LVL5 = .
				LBE62 = .
				LBE61 = .
				LBB63 = .
				LBB64 = .
				LBB65 = .
				LBB66 = .
				LBB67 = .
				addiu	$4,$sp,264
				LVL6 = .
				lw	$25,%call16(_imp_readsymbol)($28)
				.reloc	1f,R_MIPS_JALR,_imp_readsymbol
			1:	jalr	$25
				nop
				LVL7 = .
				lw	$28,256($sp)
				LVL8 = .
				LVL9 = .
				LBE67 = .
				LBE66 = .
				LBB68 = .
   11
   12   %if 'A' <= getchar <= 'C' %start
   13     printstring("Test successful."); newline
				addiu	$2,$2,%lo($LC1)
				addiu	$3,$sp,1548
				addiu	$4,$2,256
		$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,1548
				addiu	$3,$sp,524
				addiu	$4,$sp,1804
		$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
				addiu	$2,$sp,524
				addiu	$3,$sp,1292
				addiu	$4,$sp,780
		$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
				LBE75 = .
				LBB76 = .
				LBB77 = .
				addiu	$2,$sp,1308
				addiu	$3,$sp,16
				addiu	$4,$sp,1548
		$L14:
				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,$L14
				addiu	$3,$3,16
				lw	$4,1292($sp)
				lw	$5,1296($sp)
				lw	$6,1300($sp)
				lw	$7,1304($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL15 = .
				lw	$28,256($sp)
				LBE77 = .
				LBE76 = .
				LBB78 = .
				LBB79 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL16 = .
				lw	$28,256($sp)
				LBE79 = .
				LBE78 = .
				.option	pic0
				b	$L38
				.option	pic2
				move	$4,$0
		$L10:
				LBB80 = .
				lui	$2,%hi($LC2)
				addiu	$2,$2,%lo($LC2)
				addiu	$3,$sp,1548
				addiu	$4,$2,256
		$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,1548
				addiu	$3,$sp,780
				addiu	$4,$sp,1804
		$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
				addiu	$2,$sp,780
				addiu	$3,$sp,1548
				addiu	$4,$sp,1036
		$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
				LBE80 = .
				LBB81 = .
				LBB82 = .
				addiu	$2,$sp,1564
				addiu	$3,$sp,16
				addiu	$4,$sp,1804
		$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
				lw	$4,1548($sp)
				lw	$5,1552($sp)
				lw	$6,1556($sp)
				lw	$7,1560($sp)
				lw	$25,%call16(_imp_printstring)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printstring
			1:	jalr	$25
				nop
				LVL17 = .
				lw	$28,256($sp)
				LBE82 = .
				LBE81 = .
				LBB83 = .
				LBB84 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL18 = .
				lw	$28,256($sp)
				L15 = .
				LVL19 = .
				LBE84 = .
				LBE83 = .
				LBB85 = .
				LBB86 = .
				move	$4,$0
		$L38:
				lw	$25,%call16(exit)($28)
				.reloc	1f,R_MIPS_JALR,exit
			1:	jalr	$25
				nop
				LVL20 = .
				LBE86 = .
				LBE85 = .
				.set	macro
				.set	reorder
				.end	main
		$LFE185:
		$Letext0:
   14   %else
   15     printstring("Test failed - getchar was called twice."); newline
				addiu	$2,$2,-65
				sltu	$2,$2,3
				beq	$2,$0,$L10
				lui	$2,%hi($LC1)
				LBE63 = .
				LBB75 = .
   16   %finish
   17
   18 %endofprogram
   19 Statements compiled
