         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
				.option nopic
		.Ltext0:
				.align	1
		PRHEX.6003:
		.LFB186:
		.LVL23:
				add	sp,sp,-16
				sd	ra,8(sp)
    2 %ROUTINE PRHEX(%INTEGER VALUE, PLACES)
		.LVL0:
				add	sp,sp,-1344
				sd	ra,1336(sp)
				sd	s0,1328(sp)
				sd	s1,1320(sp)
				sd	s2,1312(sp)
				mv	s1,a0
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,1304(sp)
				call	_imp_initialise
		.LVL24:
    3 %CONSTBYTEINTEGERARRAY HEX(0:15)='0','1','2','3','4',
				li	a5,48
				sb	a5,1288(sp)
				li	a5,49
				sb	a5,1289(sp)
				li	a5,50
				sb	a5,1290(sp)
				li	a5,51
				sb	a5,1291(sp)
				li	a5,52
				sb	a5,1292(sp)
				li	a5,53
				sb	a5,1293(sp)
				li	a5,54
				sb	a5,1294(sp)
				li	a5,55
				sb	a5,1295(sp)
				li	a5,56
				sb	a5,1296(sp)
				li	a5,57
				sb	a5,1297(sp)
				li	a5,65
				sb	a5,1298(sp)
				li	a5,66
				sb	a5,1299(sp)
				li	a5,67
				sb	a5,1300(sp)
				li	a5,68
				sb	a5,1301(sp)
				li	a5,69
				sb	a5,1302(sp)
				li	a5,70
				sb	a5,1303(sp)
		.LBB9:
    4                '5','6','7','8','9','A','B','C','D','E','F'
    5 %INTEGER I
    6       %CYCLE I=PLACES<<2-4, -4, 0
    7          PRINT SYMBOL(HEX(VALUE>>I&15))
				sllw	a1,a1,2
		.LVL1:
				sext.w	s0,a1
		.LVL2:
		.LBB10:
				srlw	a5,s1,a5
		.LVL7:
				and	a5,a5,15
				add	a4,sp,1312
				add	a5,a4,a5
		.LBB11:
		.LBB12:
				lbu	a0,-24(a5)
				call	_imp_printsymbol
		.LVL8:
		.LBE12:
		.LBE11:
    8       %REPEAT
				li	a5,4
				subw	a1,a5,a1
		.LVL3:
				sll	a5,a1,32
				bgez	a5,.L12
		.LVL4:
		.L2:
		.LBE10:
				lui	a5,%hi(_imp_current_file)
				ld	a1,%lo(_imp_current_file)(a5)
				beqz	a1,.L3
				add	a0,sp,776
		.LVL11:
				call	_imp_c2istr
		.LVL12:
		.L4:
				lui	a5,%hi(_imp_current_line)
				lw	s2,%lo(_imp_current_line)(a5)
				bnez	s2,.L5
				li	s2,8
		.L5:
				lui	a1,%hi(.LC2)
				addi	a1,a1,%lo(.LC2)
				add	a0,sp,1032
				call	_imp_c2istr
		.LVL13:
				li	a2,256
				add	a1,sp,776
				add	a0,sp,256
				call	memcpy
		.LVL14:
				li	a2,256
				add	a1,sp,1032
				mv	a0,sp
				call	memcpy
		.LVL15:
				li	a5,0
				li	a4,1
				li	a3,5
				mv	a2,sp
				mv	a1,s2
				add	a0,sp,256
				call	_signal_event
		.LVL16:
				j	.L2
		.LVL17:
		.L3:
		.LBB13:
				li	a2,256
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a0,sp,1032
		.LVL18:
				call	memcpy
		.LVL19:
				li	a2,256
				add	a1,sp,1032
				add	a0,sp,520
				call	memcpy
		.LVL20:
		.LBE13:
				li	a2,256
				add	a1,sp,520
				add	a0,sp,776
				call	memcpy
		.LVL21:
				j	.L4
		.L13:
		.LBE14:
    9 %END
   10 PRHEX(X'B00B',8)
				ld	a4,1304(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L13
				ld	ra,1336(sp)
				ld	s0,1328(sp)
				ld	s1,1320(sp)
				ld	s2,1312(sp)
				add	sp,sp,1344
				jr	ra
		.LVL10:
		.L12:
		.LBB14:
				call	__stack_chk_fail
		.LVL22:
		.LFE186:
				.align	1
				.globl	main
		main:
		.LFB185:
				li	a1,8
				li	a0,45056
				add	a0,a0,11
				call	PRHEX.6003
		.LVL25:
		.LBB15:
		.LBB16:
				li	a0,0
				call	exit
		.LVL26:
		.LBE16:
		.LBE15:
		.LFE185:
				.section	.rodata
				.align	3
				.set	.LANCHOR0,. + 0
		.LC1:
				.byte	16
				.string	"test-new/vs4.imp"
				.zero	238
				.section	.rodata.str1.8,"aMS",@progbits,1
				.align	3
		.LC2:
				.string	"Illegal cycle I = (PLACES << 2) - 4,  -4, 0"
		.Letext0:
   11 %ENDOFPROGRAM
				beqz	s0,.L1
		.LVL5:
		.L7:
				bnez	s0,.L7
		.L6:
		.LVL9:
		.L1:
		.LBE9:
   10 Statements compiled
				addw	a5,s0,-4
				sext.w	s0,a5
		.LVL6:
