         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
				.section	".text"
		.Ltext0:
				.section	.rodata.str1.8,"aMS",@progbits,1
				.align 8
		.LC2:
				.asciz	"Illegal cycle I = (PLACES << 2) - 4,  -4, 0"
				.section	".rodata"
		.LC1:
				.byte	16
				.asciz	"test-new/vs4.imp"
				.skip	238
				.section	".text"
				.align 4
				.proc	020
		PRHEX.6058:
		.LFB186:
		.LVL22:
				save	%sp, -176, %sp
		.LVL23:
    2 %ROUTINE PRHEX(%INTEGER VALUE, PLACES)
				.register	%g2, #scratch
				.register	%g7, #ignore
		.LVL0:
				save	%sp, -1488, %sp
		.LVL1:
				ldx	[%g7+40], %g1
				stx	%g1, [%fp+2039]
				mov	0, %g1
				mov	%i1, %o1
				call	_imp_initialise, 0
				 mov	%i0, %o0
		.LVL24:
    3 %CONSTBYTEINTEGERARRAY HEX(0:15)='0','1','2','3','4',
				mov	48, %g1
				stb	%g1, [%fp+2023]
				mov	49, %g1
				stb	%g1, [%fp+2024]
				mov	50, %g1
				stb	%g1, [%fp+2025]
				mov	51, %g1
				stb	%g1, [%fp+2026]
				mov	52, %g1
				stb	%g1, [%fp+2027]
				mov	53, %g1
				stb	%g1, [%fp+2028]
				mov	54, %g1
				stb	%g1, [%fp+2029]
				mov	55, %g1
				stb	%g1, [%fp+2030]
				mov	56, %g1
				stb	%g1, [%fp+2031]
				mov	57, %g1
				stb	%g1, [%fp+2032]
				mov	65, %g1
				stb	%g1, [%fp+2033]
				mov	66, %g1
				stb	%g1, [%fp+2034]
				mov	67, %g1
				stb	%g1, [%fp+2035]
				mov	68, %g1
				stb	%g1, [%fp+2036]
				mov	69, %g1
				stb	%g1, [%fp+2037]
				mov	70, %g1
				stb	%g1, [%fp+2038]
		.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))
				sll	%i1, 2, %i1
		.LVL2:
		.LBB10:
				srl	%i0, %i1, %g1
				and	%g1, 15, %g1
				add	%fp, 2047, %g2
				add	%g2, %g1, %g1
		.LBB11:
		.LBB12:
				call	_imp_printsymbol, 0
				 ldsb	[%g1-24], %o0
		.LVL8:
		.LBE12:
		.LBE11:
    8       %REPEAT
				mov	4, %g1
				sub	%g1, %i1, %g1
		.LVL3:
				xor	%g1, -4, %g1
		.LVL4:
				cmp	%g1, 0
				bl,pn	%icc, .L11
				 cmp	%i1, 0
		.LVL5:
		.L13:
		.LBE10:
				sethi	%hi(_imp_current_file), %g1
		.LVL11:
				ldx	[%g1+%lo(_imp_current_file)], %o1
				brz,pn	%o1, .L3
				 mov	256, %o2
				call	_imp_c2istr, 0
				 add	%fp, 1511, %o0
		.LVL12:
				sethi	%hi(_imp_current_line), %g1
		.L14:
				lduw	[%g1+%lo(_imp_current_line)], %i5
				cmp	%i5, 0
				be,a,pt	%icc, .L5
				 mov	8, %i5
		.L5:
				sethi	%hi(.LC2), %o1
				or	%o1, %lo(.LC2), %o1
				call	_imp_c2istr, 0
				 add	%fp, 1767, %o0
		.LVL13:
				mov	256, %o2
				add	%fp, 1511, %o1
				call	memcpy, 0
				 add	%fp, 991, %o0
		.LVL14:
				mov	256, %o2
				add	%fp, 1767, %o1
				call	memcpy, 0
				 add	%fp, 735, %o0
		.LVL15:
				mov	0, %o5
				mov	1, %o4
				mov	5, %o3
				add	%fp, 735, %o2
				sra	%i5, 0, %o1
				call	_signal_event, 0
				 add	%fp, 991, %o0
		.LVL16:
		.LBE14:
				sethi	%hi(.LC1), %o1
				or	%o1, %lo(.LC1), %o1
				call	memcpy, 0
				 add	%fp, 1767, %o0
		.LVL17:
				mov	256, %o2
				add	%fp, 1767, %o1
				call	memcpy, 0
				 add	%fp, 1255, %o0
		.LVL18:
		.LBE13:
				mov	256, %o2
				add	%fp, 1255, %o1
				call	memcpy, 0
				 add	%fp, 1511, %o0
		.LVL19:
		.LBE15:
				ba,pt	%xcc, .L14
				 sethi	%hi(_imp_current_line), %g1
		.LVL20:
		.L12:
    9 %END
   10 PRHEX(X'B00B',8)
				ldx	[%fp+2039], %g1
				ldx	[%g7+40], %g2
				xor	%g1, %g2, %g1
				mov	0, %g2
				brnz,pn	%g1, .L12
				 nop
				return	%i7+8
				 nop
		.LVL10:
		.L11:
		.LBB14:
				call	__stack_chk_fail, 0
				 nop
		.LVL21:
				nop
		.LFE186:
				.align 4
				.global main
				.proc	04
		main:
		.LFB185:
				mov	8, %o1
				sethi	%hi(46148608), %o0
				call	PRHEX.6058, 0
				 srlx	%o0, 10, %o0
		.LVL25:
		.LBB16:
		.LBB17:
				call	exit, 0
				 mov	0, %o0
		.LVL26:
		.LBE17:
		.LBE16:
				nop
		.LFE185:
		.Letext0:
   11 %ENDOFPROGRAM
				be,pn	%icc, .L1
				 nop
		.LVL6:
				cmp	%i1, 0
				bne,a,pt %icc, .L15
				 add	%i1, -4, %i1
		.L6:
		.LVL9:
		.L1:
		.LBE9:
				ba,pt	%xcc, .L13
				 cmp	%i1, 0
		.L3:
		.LBB15:
		.LBB13:
   10 Statements compiled
				add	%i1, -4, %i1
		.LVL7:
		.L15:
