         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.section .mdebug.abi32
				.previous
				.nan	legacy
				.module	fp=xx
				.module	nooddspreg
				.abicalls
		$Ltext0:
				.section	.rodata.str1.4,"aMS",@progbits,1
				.align	2
		$LC3:
				.ascii	"Illegal cycle I = 2, 1, ROUNDS\000"
				.rdata
				.align	2
		$LC0:
				.byte	10
				.ascii	"rounds.txt\000"
				.space	244
				.align	2
		$LC1:
				.byte	21
				.ascii	"test-new/leibnitz.imp\000"
				.space	233
				.align	2
				.globl	main
				LFB185 = .
				.set	nomips16
				.set	nomicromips
				.ent	main
		main:
				.frame	$sp,1848,$31		# vars= 1288, regs= 5/0, args= 528, gp= 8
				.mask	0x800f0000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL0 = .
				addiu	$sp,$sp,-1848
				sw	$31,1844($sp)
				sw	$19,1840($sp)
				sw	$18,1836($sp)
				sw	$17,1832($sp)
				sw	$16,1828($sp)
				lui	$28,%hi(__gnu_local_gp)
				addiu	$28,$28,%lo(__gnu_local_gp)
				.cprestore	528
				lw	$2,%got(__stack_chk_guard)($28)
				lw	$2,0($2)
				sw	$2,1820($sp)
    2   %reals %long
				lw	$25,%call16(_imp_initialise)($28)
				.reloc	1f,R_MIPS_JALR,_imp_initialise
			1:	jalr	$25
				nop
				LVL1 = .
				lw	$28,528($sp)
				LVL2 = .
				LVL3 = .
				LBB18 = .
    3
    4   %integer rounds
    5   %real pi = 1.0
    6
				lui	$2,%hi($LC2)
				ldc1	$f2,%lo($LC2)($2)
				LBB27 = .
				lui	$2,%hi($LC2)
				.option	pic0
				b	$L15
				.option	pic2
				ldc1	$f2,%lo($LC2)($2)
				.set	macro
				.set	reorder
				.end	main
		$LFE185:
				.rdata
				.align	2
		__PRETTY_FUNCTION__.5597:
				.ascii	"_imp_SELECTINPUT\000"
				.section	.rodata.cst8,"aM",@progbits,8
				.align	3
		$LC2:
				.word	1072693248
				.word	0
				.align	3
		$LC4:
				.word	1074790400
				.word	0
		$Letext0:
    7   !%on %event 9 %start
    8   !  print string("Cannot open file"); newline
    9   !  %stop
   10   !%finish
   11
   12   %integer i
   13
   14   open input(1, "rounds.txt");   ! open file
				lui	$2,%hi($LC0)
				addiu	$2,$2,%lo($LC0)
				addiu	$3,$sp,1564
				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,1564
				addiu	$3,$sp,540
				addiu	$4,$sp,1820
		$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
				LVL4 = .
				addiu	$2,$sp,540
				addiu	$3,$sp,1564
				addiu	$4,$sp,796
		$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
				LBE18 = .
				LBB19 = .
				LBB20 = .
				addiu	$2,$sp,1576
				addiu	$3,$sp,16
				addiu	$4,$sp,1816
		$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	$2,0($2)
				sw	$2,0($3)
				lw	$5,1564($sp)
				lw	$6,1568($sp)
				lw	$7,1572($sp)
				li	$4,1			# 0x1
				lw	$25,%call16(_imp_openinput)($28)
				.reloc	1f,R_MIPS_JALR,_imp_openinput
			1:	jalr	$25
				nop
				LVL5 = .
				lw	$28,528($sp)
				LVL6 = .
				LBE20 = .
				LBE19 = .
				LBB21 = .
				LBB22 = .
				lw	$2,%got(_imp_InStream)($28)
				li	$3,1			# 0x1
				sw	$3,0($2)
				lw	$2,%got(_imp_infile)($28)
				lw	$3,280($2)
				lw	$2,%got(_imp_InFile)($28)
				sw	$3,0($2)
				lui	$4,%hi(__PRETTY_FUNCTION__.5597)
				addiu	$4,$4,%lo(__PRETTY_FUNCTION__.5597)
				lw	$25,%call16(check_instream)($28)
				.reloc	1f,R_MIPS_JALR,check_instream
			1:	jalr	$25
				nop
				LVL7 = .
				lw	$28,528($sp)
				LVL8 = .
				LBE22 = .
				LBE21 = .
   15   select input(1)
   16
   17   read(rounds)
				addiu	$4,$sp,536
				lw	$25,%call16(_imp_readint)($28)
				.reloc	1f,R_MIPS_JALR,_imp_readint
			1:	jalr	$25
				nop
				LVL9 = .
				lw	$28,528($sp)
				LBB23 = .
				LBB24 = .
				lw	$25,%call16(_imp_closeinput)($28)
				.reloc	1f,R_MIPS_JALR,_imp_closeinput
			1:	jalr	$25
				nop
				LVL10 = .
				lw	$28,528($sp)
				LBE24 = .
				LBE23 = .
   18
   19   close input;                   ! close file
   20
   21   rounds = rounds + 2;           ! do this outside the loop
				lw	$16,536($sp)
				addiu	$18,$16,2
				LVL11 = .
				LBB25 = .
   22
   23   %for i=2, 1, rounds %cycle
   24     %long %real x = -1.0 + 2.0 * (i & 1); ! allows vectorization
   25     pi = pi + (x / (2 * i - 1)); ! double / unsigned = double
				bgez	$16,$L6
				sw	$18,536($sp)
				lw	$2,%got(_imp_current_file)($28)
				lw	$5,0($2)
				beq	$5,$0,$L7
				addiu	$4,$sp,1052
				lw	$25,%call16(_imp_c2istr)($28)
				.reloc	1f,R_MIPS_JALR,_imp_c2istr
			1:	jalr	$25
				nop
				LVL12 = .
				lw	$28,528($sp)
				lw	$2,%got(_imp_current_line)($28)
		$L31:
				lw	$19,0($2)
				bne	$19,$0,$L32
				lui	$5,%hi($LC3)
				li	$19,25			# 0x19
		$L32:
				addiu	$5,$5,%lo($LC3)
				addiu	$17,$sp,1308
				move	$4,$17
				lw	$25,%call16(_imp_c2istr)($28)
				.reloc	1f,R_MIPS_JALR,_imp_c2istr
			1:	jalr	$25
				nop
				LVL13 = .
				lw	$28,528($sp)
				sw	$0,524($sp)
				li	$2,1			# 0x1
				sw	$2,520($sp)
				li	$2,5			# 0x5
				sw	$2,516($sp)
				move	$4,$17
				addiu	$2,$sp,260
				addiu	$3,$sp,1564
		$L13:
				lw	$8,0($4)
				lw	$7,4($4)
				lw	$6,8($4)
				lw	$5,12($4)
				sw	$8,0($2)
				sw	$7,4($2)
				sw	$6,8($2)
				sw	$5,12($2)
				addiu	$4,$4,16
				bne	$4,$3,$L13
				addiu	$2,$2,16
				sw	$19,256($sp)
				addiu	$2,$sp,1068
				addiu	$3,$sp,16
				addiu	$4,$sp,1308
		$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,1052($sp)
				lw	$5,1056($sp)
				lw	$6,1060($sp)
				lw	$7,1064($sp)
				lw	$25,%call16(_signal_event)($28)
				.reloc	1f,R_MIPS_JALR,_signal_event
			1:	jalr	$25
				nop
				LVL14 = .
				lw	$28,528($sp)
		$L6:
				LVL15 = .
				mov.d	$f6,$f2
				LVL16 = .
		$L16:
				andi	$2,$3,0x1
				mtc1	$2,$f0
				cvt.d.w	$f0,$f0
				add.d	$f0,$f0,$f0
				sub.d	$f0,$f0,$f6
				mtc1	$4,$f4
				cvt.d.w	$f4,$f4
				div.d	$f0,$f0,$f4
				add.d	$f2,$f2,$f0
				LVL18 = .
				LDL1 = .
				lui	$2,%hi($LC1)
				addiu	$2,$2,%lo($LC1)
				addiu	$3,$sp,1308
				addiu	$4,$2,256
		$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
				addiu	$2,$sp,1308
				addiu	$3,$sp,796
				addiu	$4,$sp,1564
		$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
				LBE26 = .
				addiu	$2,$sp,796
				addiu	$3,$sp,1052
				move	$4,$3
		$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
				LBE34 = .
				.option	pic0
				b	$L31
				.option	pic2
				lw	$2,%got(_imp_current_line)($28)
				LVL27 = .
		$L19:
   26   %repeat
				li	$3,1			# 0x1
				LBE25 = .
   27
   28   pi = pi * 4
				li	$2,1			# 0x1
				beq	$18,$2,$L19
				addiu	$5,$16,2
				li	$4,3			# 0x3
				bne	$3,$5,$L16
				addiu	$4,$4,2
				LVL19 = .
		$L15:
				LBE27 = .
				LBB28 = .
				LBB29 = .
				li	$6,16			# 0x10
				lui	$2,%hi($LC4)
				ldc1	$f12,%lo($LC4)($2)
				mul.d	$f12,$f2,$f12
				LVL20 = .
				lw	$25,%call16(_imp_printfl)($28)
				.reloc	1f,R_MIPS_JALR,_imp_printfl
			1:	jalr	$25
				nop
				LVL21 = .
				lw	$28,528($sp)
				LVL22 = .
				LVL23 = .
				LBE29 = .
				LBE28 = .
				LBB30 = .
				LBB31 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL24 = .
				lw	$28,528($sp)
				LVL25 = .
				LBE31 = .
				LBE30 = .
				LBB32 = .
				LBB33 = .
				move	$4,$0
				lw	$25,%call16(exit)($28)
				.reloc	1f,R_MIPS_JALR,exit
			1:	jalr	$25
				nop
				LVL26 = .
		$L7:
				LBE33 = .
				LBE32 = .
				LBB34 = .
				LBB26 = .
   29   print fl(pi, 16);              ! print 16 decimal digits of pi
				addiu	$3,$3,1
				LVL17 = .
   30   newline
   31
   32 %endofprogram
   18 Statements compiled
