         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.option nopic
		.Ltext0:
				.align	1
				.globl	main
		main:
		.LFB185:
		.LVL0:
				add	sp,sp,-816
				sd	ra,808(sp)
				sd	s0,800(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,792(sp)
		.L2:
		.L3:
		.L4:
    2   %integer i
				call	_imp_initialise
		.LVL1:
		.LDL1:
		.L5:
    3   %switch lab('a':'d')
    4   i = 'b'
    5   ->lab(i)
    6 lab('a'):
    7 lab('c'):
    8 lab('d'): %stop
    9 %endofprogram
    7 Statements compiled
				lui	a5,%hi(_imp_current_file)
				ld	a1,%lo(_imp_current_file)(a5)
				beqz	a1,.L6
				add	a0,sp,536
				call	_imp_c2istr
		.LVL2:
		.L7:
				lui	a5,%hi(_imp_current_line)
				lw	s0,%lo(_imp_current_line)(a5)
				beqz	s0,.L12
		.L8:
				li	a2,256
				add	a1,sp,536
				add	a0,sp,16
				call	memcpy
		.LVL3:
				li	a5,5
				sd	a5,0(sp)
				lui	a7,%hi(.LC1)
				addi	a7,a7,%lo(.LC1)
				li	a6,98
				lui	a5,%hi(.LC2)
				addi	a5,a5,%lo(.LC2)
				li	a4,98
				li	a3,2
				li	a2,8
				mv	a1,s0
				add	a0,sp,16
				call	_signal_eventf
		.LVL4:
		.LDL2:
				li	a0,0
				ld	a4,792(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L13
				ld	ra,808(sp)
				ld	s0,800(sp)
				add	sp,sp,816
				jr	ra
		.L6:
		.LBB6:
				li	a2,256
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a0,sp,536
				call	memcpy
		.LVL5:
				li	a2,256
				add	a1,sp,536
				add	a0,sp,280
				call	memcpy
		.LVL6:
		.LBE6:
				li	a2,256
				add	a1,sp,280
				add	a0,sp,536
				call	memcpy
		.LVL7:
				j	.L7
		.L12:
				li	s0,14
				j	.L8
		.L13:
				call	__stack_chk_fail
		.LVL8:
		.LFE185:
				.section	.rodata
				.align	3
				.set	.LANCHOR0,. + 0
		.LC0:
				.byte	15
				.string	"test-new/58.imp"
				.zero	239
				.section	.rodata.str1.8,"aMS",@progbits,1
				.align	3
		.LC1:
				.string	"test-new/58.imp"
		.LC2:
				.string	"switch jump to undefined label LAB(%d): at %s line %d"
		.Letext0:
