         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   %switch middle,right,left(1:3)
				call	_imp_initialise
		.LVL1:
		.LDL1:
    3
    4   ->middle(3)
    5
    6 left(1):
    7 middle(1):
    8 middle(2):
    9 right(1):
   10 right(2):
   11 right(3):
   12 left(*):
   13
   14 %endofprogram
    4 Statements compiled
				lui	s0,%hi(_imp_current_file)
		.LBB7:
				lui	s5,%hi(.LANCHOR0)
		.LBE7:
				lui	s1,%hi(_imp_current_line)
				li	s4,-1
		.L3:
				lui	s3,%hi(.LC1)
				lui	s2,%hi(.LC2)
		.L4:
		.L5:
		.L6:
		.L7:
		.L8:
		.L13:
		.L9:
				ld	a1,%lo(_imp_current_file)(s0)
				beqz	a1,.L10
				add	a0,sp,1048
				call	_imp_c2istr
		.LVL2:
		.L11:
				lw	s6,%lo(_imp_current_line)(s1)
				bnez	s6,.L12
				li	s6,21
		.L12:
				li	a2,256
				add	a1,sp,1048
				add	a0,sp,16
				call	memcpy
		.LVL3:
				li	a5,4
				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,.L13
				ld	a1,%lo(_imp_current_file)(s0)
				beqz	a1,.L14
				add	a0,sp,1304
				call	_imp_c2istr
		.LVL5:
		.L15:
				lw	s2,%lo(_imp_current_line)(s1)
				bnez	s2,.L16
				li	s2,24
		.L16:
				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
		.L10:
		.LBB8:
				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:
		.LBE8:
				li	a2,256
				add	a1,sp,280
				add	a0,sp,1048
				call	memcpy
		.LVL10:
				j	.L11
		.L14:
		.LBB9:
				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:
		.LBE9:
				li	a2,256
				add	a1,sp,792
				add	a0,sp,1304
				call	memcpy
		.LVL13:
				j	.L15
		.LFE185:
				.section	.rodata
				.align	3
				.set	.LANCHOR0,. + 0
		.LC0:
				.byte	20
				.string	"test-new/test163.imp"
				.zero	234
				.section	.rodata.str1.8,"aMS",@progbits,1
				.align	3
		.LC1:
				.string	"test-new/test163.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:
