         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
				.option nopic
		.Ltext0:
				.align	1
		LABEL.6012:
		.LFB186:
		.LVL34:
				add	sp,sp,-2032
				sd	ra,2024(sp)
				sd	s0,2016(sp)
				sd	s1,2008(sp)
				sd	s2,2000(sp)
				sd	s3,1992(sp)
				sd	s4,1984(sp)
				sd	s5,1976(sp)
				sd	s6,1968(sp)
				sd	s7,1960(sp)
				add	sp,sp,-1904
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				li	s0,4096
				add	a4,s0,-248
				add	a4,a4,sp
				sd	a5,0(a4)
    2 %OWNINTEGER LABELNO=0
				call	_imp_initialise
		.LVL35:
		.LBB62:
    3 %CONSTINTEGER MAXLABELS=10
    4 %RECORDFORMAT F(%BYTE B,%STRING(255)LAB)
    5 %OWNSTRING(15)%ARRAY LBLNAME(0:MAXLABELS)
    6 %OWNRECORD(F)%ARRAY LBL(0:MAXLABELS)
    7
    8 %RECORD(F)%MAP LABEL(%STRING(15) L)
    9 %INTEGER I
				add	sp,sp,-2032
				sd	ra,2024(sp)
				sd	s0,2016(sp)
				sd	s1,2008(sp)
				sd	s2,2000(sp)
				sd	s3,1992(sp)
				add	sp,sp,-608
				mv	s3,a0
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				li	a4,4096
				add	a4,a4,-1528
				add	a3,sp,16
				add	a4,a4,a3
				sd	a5,0(a4)
   10  %IF LABELNO>0 %THENSTART
				lui	a5,%hi(LABELNO.6001)
				lw	s2,%lo(LABELNO.6001)(a5)
				blez	s2,.L10
		.LVL0:
		.LBB46:
		.LBB47:
   11   %FOR I=1,1,LABELNO %CYCLE
   12    %RESULT==LBL(I) %IF LBLNAME(I)=L
   13   %REPEAT
				addw	a5,s2,-1
		.LVL1:
		.LBE47:
				sll	a4,a5,32
				bltz	a4,.L18
		.LVL2:
		.L3:
				lui	s1,%hi(LBLNAME.6009+256)
				addi	s1,s1,%lo(LBLNAME.6009+256)
				li	s0,0
		.LVL3:
		.L7:
				lui	a5,%hi(_imp_current_file)
		.LVL20:
				ld	a1,%lo(_imp_current_file)(a5)
				beqz	a1,.L4
				add	a0,sp,1560
				call	_imp_c2istr
		.LVL21:
		.L5:
				lui	a5,%hi(_imp_current_line)
				lw	s1,%lo(_imp_current_line)(a5)
				bnez	s1,.L6
				li	s1,13
		.L6:
				lui	a1,%hi(.LC5)
				addi	a1,a1,%lo(.LC5)
				add	a0,sp,1816
				call	_imp_c2istr
		.LVL22:
				li	s0,-4096
				li	a2,256
				add	a1,sp,1560
				add	a0,sp,272
				call	memcpy
		.LVL23:
				li	a2,256
				add	a1,sp,1816
				add	a0,sp,16
				call	memcpy
		.LVL24:
				add	a2,s0,1520
				add	a0,s0,1776
				li	a5,0
				li	a4,1
				li	a3,5
				li	s0,4096
				add	a1,s0,-1520
				add	a6,sp,16
				add	a1,a1,a6
				add	a2,a1,a2
				mv	a1,s1
				add	s0,s0,-1520
				add	s0,s0,a6
				add	a0,s0,a0
				call	_signal_event
		.LVL25:
				j	.L3
		.L4:
		.LBB48:
				li	a2,256
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				li	s0,4096
				add	a0,s0,-1784
				add	a5,sp,16
				add	a0,a0,a5
				call	memcpy
		.LVL26:
				li	a5,-4096
				mv	a4,s0
				add	a3,s0,-1520
				add	a2,sp,16
				add	a3,a3,a2
				add	a5,a3,a5
				sd	a5,8(sp)
				add	s0,a5,2040
				li	a2,256
				add	a1,a4,-1784
				add	a5,sp,16
				add	a1,a1,a5
				mv	a0,s0
				call	memcpy
		.LVL27:
		.LBE48:
				li	a2,256
				mv	a1,s0
				add	a0,sp,1560
				call	memcpy
		.LVL28:
				j	.L5
		.L19:
   14  %FINISH
				mv	a1,s3
				mv	a0,s1
				call	_imp_strcmp
		.LVL5:
				beqz	a0,.L19
				add	s1,s1,256
   15 !  INSERT NEW LABEL-NAME.
   16  LABELNO=LABELNO+1
				bne	s2,s0,.L7
		.L2:
		.LVL6:
		.L10:
		.LBE46:
				lui	a4,%hi(LABELNO.6001)
				lw	a5,%lo(LABELNO.6001)(a4)
				addw	a5,a5,1
				sext.w	a0,a5
				sw	a5,%lo(LABELNO.6001)(a4)
				li	a5,10
				ble	a0,a5,.L11
		.LBB49:
		.LBB50:
   17  %IF LABELNO>MAXLABELS %THENSTART
				addw	s0,s0,1
		.LVL4:
				li	a0,257
				mul	s0,s0,a0
				lui	a0,%hi(LBL.6010)
				addi	a0,a0,%lo(LBL.6010)
				add	a0,s0,a0
				j	.L1
		.LVL29:
		.L11:
		.LBE61:
   18   PRINT STRING(L." MAKES TOO MANY LABELS."); NEWLINE
   19   %FOR I=1,1,MAXLABELS %CYCLE
   20    PRINT STRING(LBLNAME(I))
				add	a2,sp,1048
				mv	a1,s3
				li	s3,4096
				add	a5,s3,-1784
				add	a4,sp,16
				add	a0,a4,a5
				call	_imp_join
		.LVL7:
				li	a2,256
				add	a1,sp,792
				add	a0,s3,-2040
				add	a5,sp,16
				add	a0,a0,a5
				call	memcpy
		.LVL8:
		.LBE50:
		.LBE49:
		.LBB51:
		.LBB52:
				li	s0,-4096
				li	a2,256
				add	a1,s3,-2040
				add	a5,sp,16
				add	a1,a1,a5
				add	a0,sp,16
				call	memcpy
		.LVL9:
				add	a0,s0,1520
				add	a5,s3,-1520
				add	a4,sp,16
				add	a5,a5,a4
				add	a0,a5,a0
				call	_imp_printstring
		.LVL10:
		.LBE52:
		.LBE51:
		.LBB53:
		.LBB54:
				call	_imp_newline
		.LVL11:
				li	s0,10
		.LBE54:
		.LBE53:
		.LBB55:
		.LBB56:
				li	s1,-4096
				add	s2,sp,16
				add	s1,s1,1520
				add	a5,s3,-1520
				add	a4,sp,16
				add	a5,a5,a4
				add	s1,a5,s1
		.LVL12:
		.L12:
				li	a2,256
				add	a1,sp,1304
				li	s3,4096
				add	a0,s3,-1784
				add	a5,sp,16
				add	a0,a0,a5
				call	memcpy
		.LVL13:
				li	a2,256
				add	a1,s3,-1784
				add	a5,sp,16
				add	a1,a1,a5
				mv	a0,s2
				call	memcpy
		.LVL14:
				mv	a0,s1
				call	_imp_printstring
		.LVL15:
		.LBE56:
		.LBE55:
		.LBB57:
		.LBB58:
				call	_imp_newline
		.LVL16:
		.LDL1:
				addw	s0,s0,-1
		.LVL17:
		.LBE58:
		.LBE57:
   21    NEWLINE
   22   %REPEAT
				bnez	s0,.L12
		.L13:
		.LVL18:
		.LBB59:
		.LBB60:
				li	a0,0
				call	exit
		.LVL19:
		.L18:
		.LBE60:
		.LBE59:
		.LBB61:
   23   %MONITOR
   24   %STOP
   25  %FINISH    ;!  DEALING WITH TOO MANY LABELS.
   26  LBLNAME(LABELNO)=L
   27  LBL(LABELNO)_LAB=""
   28  %RESULT==LBL(LABELNO)
				sll	a0,a0,8
				li	a2,15
				li	s3,4096
				add	a5,s3,-2040
				add	a4,sp,16
				add	a1,a4,a5
				lui	a5,%hi(LBLNAME.6009)
				addi	a5,a5,%lo(LBLNAME.6009)
				add	a0,a5,a0
				call	_imp_strncpy
		.LVL30:
				lw	a0,%lo(LABELNO.6001)(s2)
				mul	a0,a0,s1
				add	a0,a0,s0
		.L1:
				li	a5,4096
				add	a5,a5,-1528
				add	a4,sp,16
				add	a5,a5,a4
				ld	a4,0(a5)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L20
				add	sp,sp,608
				ld	ra,2024(sp)
				ld	s0,2016(sp)
				ld	s1,2008(sp)
				ld	s2,2000(sp)
				ld	s3,1992(sp)
				add	sp,sp,2032
				jr	ra
		.L20:
				call	__stack_chk_fail
		.LVL33:
		.LFE186:
				.align	1
				.globl	main
		main:
		.LFB185:
   29 %END
				lui	s2,%hi(LABELNO.6001)
				lw	a0,%lo(LABELNO.6001)(s2)
				li	s1,257
				mul	a0,a0,s1
				add	a0,a0,1
				lui	s0,%hi(LBL.6010)
				addi	s0,s0,%lo(LBL.6010)
		.LVL31:
				li	a2,255
				add	a5,s3,-1784
				add	a4,sp,16
				add	a1,a4,a5
				add	a0,s0,a0
				call	_imp_strncpy
		.LVL32:
   30
   31
   32
   33   LABEL("T")_LAB="TESTING USE OF LABEL"
   34   PRINT STRING(LABEL("T")_LAB); NEWLINE
   35   LABEL("T")_LAB="THIS SHOULD MODIFY ".LABEL("T")_LAB." AS I TRIED TO DO YESTERDAY"
				li	a2,240
				li	a1,0
				add	a0,s0,-488
				add	a0,a0,sp
				call	memset
		.LVL36:
				lui	a5,%hi(.LANCHOR0)
				addi	a5,a5,%lo(.LANCHOR0)
				lbu	s5,256(a5)
				add	a4,s0,-503
				add	a4,a4,sp
				sb	s5,0(a4)
				lbu	s4,257(a5)
				mv	s6,s0
				add	a5,s0,-502
				add	a5,a5,sp
				sb	s4,0(a5)
				add	a5,s0,-501
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s0,-500
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s0,-499
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s0,-498
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s0,-497
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s0,-496
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s0,-495
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s0,-494
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s0,-493
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s0,-492
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s0,-491
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s0,-490
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s0,-489
				add	a5,a5,sp
				sb	zero,0(a5)
				li	s3,1
				add	a5,s0,-504
				add	a5,a5,sp
				sb	s3,0(a5)
				li	s2,-4096
				add	s0,sp,264
				li	a2,256
				add	a1,s6,-504
				add	a1,a1,sp
				mv	a0,s0
				call	memcpy
		.LVL37:
		.LBE62:
				mv	s1,sp
				li	a2,256
				mv	a1,s0
				mv	a0,s1
				call	memcpy
		.LVL38:
				add	s0,s2,240
				add	a5,s6,-240
				add	a5,a5,sp
				add	s0,a5,s0
				mv	a0,s0
				call	LABEL.6012
		.LVL39:
				add	a1,s2,760
				li	a2,255
				add	a5,s6,-240
				add	a5,a5,sp
				add	a1,a5,a1
				add	a0,a0,1
				call	_imp_strncpy
		.LVL40:
		.LBB63:
		.LBB64:
   36   PRINT STRING(LABEL("T")_LAB); NEWLINE
				li	a2,240
				li	a1,0
				add	a0,s6,-488
				add	a0,a0,sp
				call	memset
		.LVL41:
				mv	a5,s6
				add	a4,s6,-503
				add	a4,a4,sp
				sb	s5,0(a4)
				add	a4,s6,-502
				add	a4,a4,sp
				sb	s4,0(a4)
				add	a4,s6,-501
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s6,-500
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s6,-499
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s6,-498
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s6,-497
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s6,-496
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s6,-495
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s6,-494
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s6,-493
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s6,-492
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s6,-491
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s6,-490
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s6,-489
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s6,-504
				add	a4,a4,sp
				sb	s3,0(a4)
				add	s6,sp,1032
				li	a2,256
				mv	s7,a5
				add	a1,a5,-504
				add	a1,a1,sp
				mv	a0,s6
				call	memcpy
		.LVL42:
		.LBE64:
				li	a2,256
				mv	a1,s6
				mv	a0,s1
				call	memcpy
		.LVL43:
				mv	a0,s0
				call	LABEL.6012
		.LVL44:
				li	a2,256
				add	a1,sp,776
				add	a0,s7,-504
				add	a0,a0,sp
				call	memcpy
		.LVL45:
		.LBE63:
		.LBB65:
		.LBB66:
				li	a2,256
				add	a1,s7,-504
				add	a1,a1,sp
				mv	a0,s1
				call	memcpy
		.LVL46:
				mv	a0,s0
				call	_imp_printstring
		.LVL47:
		.LBE66:
		.LBE65:
		.LBB67:
		.LBB68:
				call	_imp_newline
		.LVL48:
		.LBE68:
		.LBE67:
		.LBB69:
   37 %ENDOFPROGRAM
				li	a2,240
				li	a1,0
				add	a0,s7,-744
				add	a0,a0,sp
				call	memset
		.LVL49:
				add	a4,s7,-759
				add	a4,a4,sp
				sb	s5,0(a4)
				add	a4,s7,-758
				add	a4,a4,sp
				sb	s4,0(a4)
				add	a4,s7,-757
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s7,-756
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s7,-755
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s7,-754
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s7,-753
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s7,-752
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s7,-751
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s7,-750
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s7,-749
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s7,-748
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s7,-747
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s7,-746
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s7,-745
				add	a4,a4,sp
				sb	zero,0(a4)
				add	a4,s7,-760
				add	a4,a4,sp
				sb	s3,0(a4)
				add	s6,sp,1288
				li	a2,256
				add	a1,s7,-760
				add	a1,a1,sp
				mv	a0,s6
				call	memcpy
		.LVL50:
		.LBE69:
				li	a2,256
				mv	a1,s6
				mv	a0,s1
				call	memcpy
		.LVL51:
				mv	a0,s0
				call	LABEL.6012
		.LVL52:
				mv	s6,a0
		.LBB70:
		.LBB71:
		.LBB72:
		.LBB73:
				li	a2,240
				li	a1,0
				add	a0,s7,-744
				add	a0,a0,sp
				call	memset
		.LVL53:
				add	a5,s7,-759
				add	a5,a5,sp
				sb	s5,0(a5)
				add	a5,s7,-758
				add	a5,a5,sp
				sb	s4,0(a5)
				add	a5,s7,-757
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-756
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-755
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-754
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-753
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-752
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-751
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-750
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-749
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-748
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-747
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-746
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-745
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-760
				add	a5,a5,sp
				sb	s3,0(a5)
				li	a2,256
				mv	a1,a5
				add	a0,s7,-1784
				add	a0,a0,sp
				call	memcpy
		.LVL54:
		.LBE73:
				li	a2,256
				add	a1,s7,-1784
				add	a1,a1,sp
				mv	a0,s1
				call	memcpy
		.LVL55:
				mv	a0,s0
				call	LABEL.6012
		.LVL56:
				add	a2,a0,1
				add	a5,s7,-2040
				add	a1,sp,a5
				add	a0,sp,1800
				call	_imp_join
		.LVL57:
		.LBE72:
				add	a1,s2,2040
				add	a5,s7,-1528
				add	a2,sp,a5
				add	a5,s7,-240
				add	a5,a5,sp
				add	a1,a5,a1
				add	a0,s7,-760
				add	a0,a0,sp
				call	_imp_join
		.LVL58:
		.LBE71:
		.LBE70:
				add	a1,s2,1784
				li	a2,255
				add	a5,s7,-240
				add	a5,a5,sp
				add	a1,a5,a1
				add	a0,s6,1
				call	_imp_strncpy
		.LVL59:
		.LBB74:
		.LBB75:
   35 Statements compiled
				li	a2,240
				li	a1,0
				add	a0,s7,-744
				add	a0,a0,sp
				call	memset
		.LVL60:
				add	a5,s7,-759
				add	a5,a5,sp
				sb	s5,0(a5)
				add	a5,s7,-758
				add	a5,a5,sp
				sb	s4,0(a5)
				add	a5,s7,-757
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-756
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-755
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-754
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-753
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-752
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-751
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-750
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-749
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-748
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-747
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-746
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-745
				add	a5,a5,sp
				sb	zero,0(a5)
				add	a5,s7,-760
				add	a5,a5,sp
				sb	s3,0(a5)
				li	a2,256
				mv	a1,a5
				add	a0,s7,-1016
				add	a0,a0,sp
				call	memcpy
		.LVL61:
		.LBE75:
				li	a2,256
				add	a1,s7,-1016
				add	a1,a1,sp
				mv	a0,s1
				call	memcpy
		.LVL62:
				mv	a0,s0
				call	LABEL.6012
		.LVL63:
				li	a2,256
				add	a5,s7,-1272
				add	a1,sp,a5
				add	a0,s7,-760
				add	a0,a0,sp
				call	memcpy
		.LVL64:
		.LBE74:
		.LBB76:
		.LBB77:
				li	a2,256
				add	a1,s7,-760
				add	a1,a1,sp
				mv	a0,s1
				call	memcpy
		.LVL65:
				mv	a0,s0
				call	_imp_printstring
		.LVL66:
		.LBE77:
		.LBE76:
		.LBB78:
		.LBB79:
				call	_imp_newline
		.LVL67:
		.LBE79:
		.LBE78:
		.LBB80:
		.LBB81:
				li	a0,0
				call	exit
		.LVL68:
		.LBE81:
		.LBE80:
		.LFE185:
				.section	.rodata
				.align	3
				.set	.LANCHOR0,. + 0
		.LC3:
				.byte	17
				.string	"test-new/rt35.imp"
				.zero	237
		.LC6:
				.string	"T"
				.zero	13
				.bss
				.align	3
		LBLNAME.6009:
				.zero	2816
		LBL.6010:
				.zero	2827
				.section	.rodata.str1.8,"aMS",@progbits,1
				.align	3
		.LC5:
				.string	"Illegal cycle I = 1, 1, LABELNO"
				.section	.sbss,"aw",@nobits
				.align	2
		LABELNO.6001:
				.zero	4
		.Letext0:
