         Edinburgh IMP77 Compiler - Version 8.4
    1
				.section .mdebug.abi32
				.previous
				.nan	legacy
				.module	fp=xx
				.module	nooddspreg
				.abicalls
		$Ltext0:
				.align	2
				LFB61 = .
				.set	nomips16
				.set	nomicromips
				.ent	_imp_SQRT
		_imp_SQRT:
				.frame	$sp,40,$31		# vars= 0, regs= 1/2, args= 16, gp= 8
				.mask	0x80000000,-12
				.fmask	0x00300000,-8
				.set	noreorder
				.set	nomacro
				LVL0 = .
				addiu	$sp,$sp,-40
				sw	$31,28($sp)
				sdc1	$f20,32($sp)
				lui	$28,%hi(__gnu_local_gp)
				addiu	$28,$28,%lo(__gnu_local_gp)
				.cprestore	16
				mtc1	$0,$f0
				mthc1	$0,$f0
				c.ule.d	$fcc0,$f0,$f12
				bc1f	$fcc0,$L4
				sqrt.d	$f20,$f12
				LVL1 = .
				mov.d	$f0,$f20
		$L5:
				lw	$31,28($sp)
				ldc1	$f20,32($sp)
				jr	$31
				addiu	$sp,$sp,40
				LVL2 = .
		$L4:
				lw	$25,%call16(sqrt)($28)
				.reloc	1f,R_MIPS_JALR,sqrt
			1:	jalr	$25
				nop
				LVL3 = .
				lw	$28,16($sp)
				LVL4 = .
				.option	pic0
				b	$L5
				.option	pic2
				mov.d	$f0,$f20
				.set	macro
				.set	reorder
				.end	_imp_SQRT
		$LFE61:
				.align	2
				LFB42 = .
				.set	nomips16
				.set	nomicromips
				.ent	_imp_SIN
		_imp_SIN:
				.frame	$sp,32,$31		# vars= 0, regs= 1/0, args= 16, gp= 8
				.mask	0x80000000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL5 = .
				addiu	$sp,$sp,-32
				sw	$31,28($sp)
				lui	$28,%hi(__gnu_local_gp)
				addiu	$28,$28,%lo(__gnu_local_gp)
				.cprestore	16
				lw	$25,%call16(sin)($28)
				.reloc	1f,R_MIPS_JALR,sin
			1:	jalr	$25
				nop
				LVL6 = .
				lw	$28,16($sp)
				LVL7 = .
				lw	$31,28($sp)
				jr	$31
				addiu	$sp,$sp,32
				.set	macro
				.set	reorder
				.end	_imp_SIN
		$LFE42:
				.section	.rodata.str1.4,"aMS",@progbits,1
				.align	2
		$LC3:
				.ascii	"Illegal cycle I = 0, 1, STEPS\000"
				.rdata
				.align	2
		$LC2:
				.byte	17
				.ascii	"test-new/rt28.imp\000"
				.space	237
				.align	2
				LFB186 = .
    2 %begin
				.set	nomips16
				.set	nomicromips
				.ent	main
		main:
				.frame	$sp,1304,$31		# vars= 1032, regs= 1/0, args= 256, gp= 8
				.mask	0x80000000,-4
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
				LVL38 = .
				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)
    3 %routine Tabulate (%longrealfn func(%longreal x),%longreal from,to,
				.set	nomips16
				.set	nomicromips
				.ent	TABULATE.6002
		TABULATE.6002:
				.frame	$sp,1360,$31		# vars= 776, regs= 5/6, args= 528, gp= 8
				.mask	0x800f0000,-28
				.fmask	0x03f00000,-8
				.set	noreorder
				.set	nomacro
				LVL8 = .
				addiu	$sp,$sp,-1360
				sw	$31,1332($sp)
				sw	$19,1328($sp)
				sw	$18,1324($sp)
				sw	$17,1320($sp)
				sw	$16,1316($sp)
				sdc1	$f24,1352($sp)
				sdc1	$f22,1344($sp)
				sdc1	$f20,1336($sp)
				lui	$28,%hi(__gnu_local_gp)
				addiu	$28,$28,%lo(__gnu_local_gp)
				.cprestore	528
				move	$18,$4
				mtc1	$7,$f20
				mthc1	$6,$f20
				lw	$17,1384($sp)
				lw	$2,%got(__stack_chk_guard)($28)
				lw	$2,0($2)
				sw	$2,1308($sp)
				lw	$25,%call16(_imp_initialise)($28)
				.reloc	1f,R_MIPS_JALR,_imp_initialise
			1:	jalr	$25
				nop
				LVL39 = .
				lw	$28,256($sp)
				LVL40 = .
				LBB31 = .
    4    %integer steps)
    5 ! func(x) is the dummy formal function
    6 %real value,inc
    7 %integer i
    8 !
    9 inc=(to-from)/steps
				ldc1	$f2,1376($sp)
				sub.d	$f2,$f2,$f20
				mtc1	$17,$f0
				cvt.d.w	$f4,$f0
				div.d	$f2,$f2,$f4
				cvt.s.d	$f24,$f2
				LVL9 = .
				LBB21 = .
   10 !
   11 value=from
   12 %for i=0,1,steps %cycle
   13    print(value,4,2) ; print(func(value),10,4) ; newline
				cvt.d.s	$f22,$f20
				LVL13 = .
				LBB22 = .
				LBB23 = .
				li	$7,2			# 0x2
				li	$6,4			# 0x4
				mov.d	$f12,$f22
				lw	$25,%call16(_imp_print)($28)
				.reloc	1f,R_MIPS_JALR,_imp_print
			1:	jalr	$25
				nop
				LVL14 = .
				lw	$28,528($sp)
				LVL15 = .
				LBE23 = .
				LBE22 = .
   14    value=value+inc
				bltz	$17,$L29
				cvt.s.d	$f20,$f20
				LVL10 = .
				mov.d	$f12,$f22
				move	$25,$18
				jalr	$25
				nop
				LVL16 = .
				lw	$28,528($sp)
				LVL17 = .
				LBB24 = .
				LBB25 = .
				li	$7,4			# 0x4
				li	$6,10			# 0xa
				mov.d	$f12,$f0
				lw	$25,%call16(_imp_print)($28)
				.reloc	1f,R_MIPS_JALR,_imp_print
			1:	jalr	$25
				nop
				LVL18 = .
				lw	$28,528($sp)
				LVL19 = .
				LVL20 = .
				LBE25 = .
				LBE24 = .
				LBB26 = .
				LBB27 = .
				lw	$25,%call16(_imp_newline)($28)
				.reloc	1f,R_MIPS_JALR,_imp_newline
			1:	jalr	$25
				nop
				LVL21 = .
				lw	$28,528($sp)
				LVL22 = .
				LBE27 = .
				LBE26 = .
				lw	$2,%got(_imp_current_file)($28)
				lw	$5,0($2)
				beq	$5,$0,$L10
				addiu	$4,$sp,796
				LVL29 = .
				lw	$25,%call16(_imp_c2istr)($28)
				.reloc	1f,R_MIPS_JALR,_imp_c2istr
			1:	jalr	$25
				nop
				LVL30 = .
				lw	$28,528($sp)
				LVL31 = .
				LVL32 = .
				lw	$2,%got(_imp_current_line)($28)
		$L32:
				lw	$19,0($2)
				bne	$19,$0,$L33
				lui	$5,%hi($LC3)
				li	$19,14			# 0xe
		$L33:
				addiu	$5,$5,%lo($LC3)
				addiu	$16,$sp,1052
				move	$4,$16
				lw	$25,%call16(_imp_c2istr)($28)
				.reloc	1f,R_MIPS_JALR,_imp_c2istr
			1:	jalr	$25
				nop
				LVL33 = .
				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,$16
				addiu	$2,$sp,260
				addiu	$3,$sp,1308
		$L16:
				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,$L16
				addiu	$2,$2,16
				sw	$19,256($sp)
				addiu	$2,$sp,812
				addiu	$3,$sp,16
				addiu	$4,$sp,1052
		$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
				lw	$4,796($sp)
				lw	$5,800($sp)
				lw	$6,804($sp)
				lw	$7,808($sp)
				lw	$25,%call16(_signal_event)($28)
				.reloc	1f,R_MIPS_JALR,_signal_event
			1:	jalr	$25
				nop
				LVL34 = .
				lw	$28,528($sp)
				LBE29 = .
				lui	$2,%hi($LC2)
				addiu	$2,$2,%lo($LC2)
				addiu	$3,$sp,1052
				addiu	$4,$2,256
				LVL36 = .
		$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,1052
				addiu	$3,$sp,540
				addiu	$4,$sp,1308
		$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
				LBE28 = .
				addiu	$2,$sp,540
				addiu	$3,$sp,796
				move	$4,$3
		$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
				LBE30 = .
				.option	pic0
				b	$L32
				.option	pic2
				lw	$2,%got(_imp_current_line)($28)
		$L30:
   15 %repeat
   16 %end ;!  of routine tabulate
   17 !
				li	$2,-1			# 0xffffffffffffffff
		$L31:
				beq	$17,$2,$L8
				nop
				li	$16,-1			# 0xffffffffffffffff
				LVL11 = .
		$L19:
				bne	$17,$16,$L19
				add.s	$f20,$f20,$f24
				L18 = .
				LVL23 = .
		$L8:
				LBE21 = .
				lw	$3,1308($sp)
				lw	$2,%got(__stack_chk_guard)($28)
				lw	$2,0($2)
				bne	$3,$2,$L30
				lw	$31,1332($sp)
				lw	$19,1328($sp)
				lw	$18,1324($sp)
				LVL24 = .
				lw	$17,1320($sp)
				LVL25 = .
				lw	$16,1316($sp)
				ldc1	$f24,1352($sp)
				LVL26 = .
				ldc1	$f22,1344($sp)
				ldc1	$f20,1336($sp)
				LVL27 = .
				jr	$31
				addiu	$sp,$sp,1360
				LVL28 = .
		$L29:
				LBB29 = .
				.option	pic0
				b	$L31
				.option	pic2
				li	$2,-1			# 0xffffffffffffffff
				LVL35 = .
		$L10:
				LBB30 = .
				LBB28 = .
				lw	$25,%call16(__stack_chk_fail)($28)
				.reloc	1f,R_MIPS_JALR,__stack_chk_fail
			1:	jalr	$25
				nop
				LVL37 = .
				.set	macro
				.set	reorder
				.end	TABULATE.6002
		$LFE186:
				.rdata
				.align	2
		$LC0:
				.byte	29
				.ascii	"\012    x               sine(x)\012\000"
				.space	225
				.align	2
		$LC1:
				.byte	29
				.ascii	"\012    x         squareroot(x)\012\000"
				.space	225
				.align	2
				.globl	main
				LFB185 = .
   18 ! now call with some functions....
				addiu	$16,$16,1
				LVL12 = .
   19 printstring("
				lui	$2,%hi($LC0)
				addiu	$2,$2,%lo($LC0)
				addiu	$3,$sp,1036
				addiu	$4,$2,256
		$L35:
				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,$L35
				addiu	$3,$3,16
				addiu	$2,$sp,1036
				addiu	$3,$sp,268
				addiu	$4,$sp,1292
		$L36:
				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,$L36
				addiu	$3,$3,16
				addiu	$2,$sp,268
				addiu	$3,$sp,1036
				addiu	$4,$sp,524
		$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
				LBE31 = .
				LBB32 = .
				LBB33 = .
				addiu	$2,$sp,1052
				addiu	$3,$sp,16
				addiu	$4,$sp,1292
		$L38:
				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,$L38
				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
				LVL41 = .
				lw	$28,256($sp)
				LBE33 = .
				LBE32 = .
   20     x               sine(x)
   21 ")
   22 tabulate ( sin, 0.0,pi/2,10)
				li	$2,10			# 0xa
				sw	$2,24($sp)
				lui	$2,%hi($LC4)
				ldc1	$f0,%lo($LC4)($2)
				sdc1	$f0,16($sp)
				move	$7,$0
				move	$6,$0
				lui	$4,%hi(_imp_SIN)
				addiu	$4,$4,%lo(_imp_SIN)
				.option	pic0
				jal	TABULATE.6002
				nop
				.option	pic2
				LVL42 = .
				lw	$28,256($sp)
				LBB34 = .
   23 ! note that the function name appears WITHOUT parameters in the call
   24 !
   25 printstring("
				lui	$2,%hi($LC1)
				addiu	$2,$2,%lo($LC1)
				addiu	$3,$sp,780
				addiu	$4,$2,256
		$L39:
				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,$L39
				addiu	$3,$3,16
				addiu	$2,$sp,780
				addiu	$3,$sp,524
				addiu	$4,$sp,1036
		$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
				addiu	$2,$sp,524
				addiu	$3,$sp,780
				move	$4,$3
		$L41:
				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,$L41
				addiu	$3,$3,16
				LBE34 = .
				LBB35 = .
				LBB36 = .
				addiu	$2,$sp,796
				addiu	$3,$sp,16
				addiu	$4,$sp,1036
		$L42:
				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,$L42
				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
				LVL43 = .
				lw	$28,256($sp)
				LBE36 = .
				LBE35 = .
   26     x         squareroot(x)
   27 ")
   28 tabulate( sqrt, 0.0,10.0,5)
				li	$2,5			# 0x5
				sw	$2,24($sp)
				lui	$2,%hi($LC5)
				ldc1	$f0,%lo($LC5)($2)
				sdc1	$f0,16($sp)
				move	$7,$0
				move	$6,$0
				lui	$4,%hi(_imp_SQRT)
				addiu	$4,$4,%lo(_imp_SQRT)
				.option	pic0
				jal	TABULATE.6002
				nop
				.option	pic2
				LVL44 = .
				lw	$28,256($sp)
				LVL45 = .
				LBB37 = .
				LBB38 = .
				move	$4,$0
				lw	$25,%call16(exit)($28)
				.reloc	1f,R_MIPS_JALR,exit
			1:	jalr	$25
				nop
				LVL46 = .
				LBE38 = .
				LBE37 = .
				.set	macro
				.set	reorder
				.end	main
		$LFE185:
				.section	.rodata.cst8,"aM",@progbits,8
				.align	3
		$LC4:
				.word	1073291771
				.word	1413754136
				.align	3
		$LC5:
				.word	1076101120
				.word	0
		$Letext0:
   29 !
   30 %endofprogram
   18 Statements compiled
