         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.option nopic
		.Ltext0:
				.align	1
				.globl	main
		main:
		.LFB185:
		.LVL0:
				add	sp,sp,-1632
				sd	ra,1624(sp)
				sd	s0,1616(sp)
				sd	s1,1608(sp)
				sd	s2,1600(sp)
				sd	s3,1592(sp)
				sd	s4,1584(sp)
				sd	s5,1576(sp)
				sd	s6,1568(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,1560(sp)
		.L2:
    2
				call	_imp_initialise
		.LVL1:
		.LDL1:
		.LBB8:
    3   %begin
    4     %switch middle,right,left(1:3)
    5
    6     ->middle(3)
    7
    8     left(1):
    9     middle(1):
   10     middle(2):
   11     right(1):
   12     right(2):
   13     right(3):
   14     left(*):
   15
   16   %end
   17
   18 %endofprogram
    6 Statements compiled
				lui	s0,%hi(_imp_current_file)
		.LBB9:
				lui	s5,%hi(.LANCHOR0)
		.LBE9:
				lui	s1,%hi(_imp_current_line)
				li	s4,-1
		.L3:
				lui	s3,%hi(.LC1)
				lui	s2,%hi(.LC2)
		.L4:
		.L5:
		.L6:
		.L7:
		.L12:
		.L8:
				ld	a1,%lo(_imp_current_file)(s0)
				beqz	a1,.L9
				add	a0,sp,1048
				call	_imp_c2istr
		.LVL2:
		.L10:
				lw	s6,%lo(_imp_current_line)(s1)
				bnez	s6,.L11
				li	s6,22
		.L11:
				li	a2,256
				add	a1,sp,1048
				add	a0,sp,16
				call	memcpy
		.LVL3:
				li	a5,6
				sd	a5,0(sp)
				addi	a7,s3,%lo(.LC1)
				li	a6,3
				addi	a5,s2,%lo(.LC2)
				li	a4,3
				li	a3,2
				li	a2,8
				mv	a1,s6
				add	a0,sp,16
				call	_signal_eventf
		.LVL4:
		.LDL2:
				li	a5,2
				bleu	s4,a5,.L12
				ld	a1,%lo(_imp_current_file)(s0)
				beqz	a1,.L13
				add	a0,sp,1304
				call	_imp_c2istr
		.LVL5:
		.L14:
				lw	s2,%lo(_imp_current_line)(s1)
				bnez	s2,.L15
				li	s2,25
		.L15:
				li	a2,256
				add	a1,sp,1304
				add	a0,sp,16
				call	memcpy
		.LVL6:
				sd	zero,0(sp)
				li	a7,0
				li	a4,0
				mv	a6,a4
				lui	a5,%hi(.LC3)
				addi	a5,a5,%lo(.LC3)
				li	a3,3
				li	a2,6
				mv	a1,s2
				add	a0,sp,16
				call	_signal_eventf
		.LVL7:
				j	.L3
		.L9:
		.LBB10:
				li	a2,256
				addi	a1,s5,%lo(.LANCHOR0)
				add	a0,sp,536
				call	memcpy
		.LVL8:
				li	a2,256
				add	a1,sp,536
				add	a0,sp,280
				call	memcpy
		.LVL9:
		.LBE10:
				li	a2,256
				add	a1,sp,280
				add	a0,sp,1048
				call	memcpy
		.LVL10:
				j	.L10
		.L13:
		.LBB11:
				li	a2,256
				addi	a1,s5,%lo(.LANCHOR0)
				add	a0,sp,536
				call	memcpy
		.LVL11:
				li	a2,256
				add	a1,sp,536
				add	a0,sp,792
				call	memcpy
		.LVL12:
		.LBE11:
				li	a2,256
				add	a1,sp,792
				add	a0,sp,1304
				call	memcpy
		.LVL13:
				j	.L14
		.LBE8:
		.LFE185:
				.section	.rodata
				.align	3
				.set	.LANCHOR0,. + 0
		.LC0:
				.byte	20
				.string	"test-new/test164.imp"
				.zero	234
				.section	.rodata.str1.8,"aMS",@progbits,1
				.align	3
		.LC1:
				.string	"test-new/test164.imp"
				.zero	3
		.LC2:
				.string	"switch jump to undefined label MIDDLE(%d): at %s line %d"
				.zero	7
		.LC3:
				.string	"->RIGHT(%d) out of bounds at %s line %d"
		.Letext0:
