         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.section	.rodata
		.LC1:
				.string	"test-in/test121.imp"
				.align 4
		.LC2:
				.string	"->FRED(%d) out of bounds at %s line %d"
				.align 4
		.LC3:
				.string	"switch jump to undefined label FRED(%d): at %s line %d"
				.align 32
		.LC0:
				.byte	19
				.string	"test-in/test121.imp"
				.zero	235
				.globl	main
		main:
		.LFB189:
				leal	4(%esp), %ecx
				andl	$-16, %esp
				pushl	-4(%ecx)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				pushl	%ecx
				subl	$1144, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				movl	4(%eax), %edx
				movl	%edx, -1148(%ebp)
				movl	%gs:20, %esi
				movl	%esi, -28(%ebp)
				xorl	%esi, %esi
				subl	$8, %esp
				pushl	-1148(%ebp)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
    2   %ownintegerarray hex(0:1) = x'12', x'ab'
				leal	-1120(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	HEX.6021@GOTOFF(%ebx), %eax
				movl	%eax, -1120(%ebp)
				movl	$4, -1116(%ebp)
    3   %integer i
    4   %switch fred(0:255)
    5   ->fred(x'ab')
				movl	$5, -1140(%ebp)
				leal	.LC1@GOTOFF(%ebx), %eax
				movl	%eax, -1136(%ebp)
				movl	$171, -1132(%ebp)
				nop
		.L2:
    6 fred(x'ab'):
    7   i = x'ab'
				movl	$171, -1128(%ebp)
				movl	$0, -1124(%ebp)
		.LBB6:
		.LBB7:
				subl	$12, %esp
				pushl	-1124(%ebp)
				call	exit@PLT
		.L19:
		.LBE7:
		.LBE6:
				cmpl	$255, -1132(%ebp)
				jle	.L5
		.L4:
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L6
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1152(%ebp)
				jmp	.L7
		.L6:
				movl	$8, -1152(%ebp)
		.L7:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L8
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-540(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L9
		.L8:
		.LBB8:
				leal	-284(%ebp), %eax
				leal	.LC0@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1052(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE8:
				leal	-540(%ebp), %eax
				leal	-1052(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L9:
				pushl	-1140(%ebp)
				pushl	-1136(%ebp)
				pushl	-1132(%ebp)
				leal	.LC2@GOTOFF(%ebx), %eax
				pushl	%eax
				pushl	-1132(%ebp)
				pushl	$3
				pushl	$6
				pushl	-1152(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_eventf@PLT
				addl	$288, %esp
		.L5:
				movl	-1132(%ebp), %eax
				movl	FRED.6027@GOTOFF(%ebx,%eax,4), %eax
				nop
				jmp	*%eax
		.L11:
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L12
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1152(%ebp)
				jmp	.L13
		.L12:
				movl	$8, -1152(%ebp)
		.L13:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L14
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L15
		.L14:
		.LBB9:
				leal	-284(%ebp), %eax
				leal	.LC0@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-796(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE9:
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L15:
				pushl	-1140(%ebp)
				pushl	-1136(%ebp)
				pushl	-1132(%ebp)
				leal	.LC3@GOTOFF(%ebx), %eax
				pushl	%eax
				pushl	-1132(%ebp)
				pushl	$2
				pushl	$8
				pushl	-1152(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-284(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_eventf@PLT
				addl	$288, %esp
		.L16:
				movl	$0, %eax
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L18
				call	__stack_chk_fail_local
		.L18:
				leal	-16(%ebp), %esp
				popl	%ecx
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				leal	-4(%ecx), %esp
				ret
		.LFE189:
				.data
				.align 4
		HEX.6021:
				.long	18
				.long	171
				.section	.data.rel.local,"aw",@progbits
				.align 32
		FRED.6027:
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L3
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.long	.L11
				.section	.text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
				.globl	__x86.get_pc_thunk.bx
				.hidden	__x86.get_pc_thunk.bx
		__x86.get_pc_thunk.bx:
		.LFB190:
				movl	(%esp), %ebx
				ret
		.LFE190:
		.Letext0:
    8 %endofprogram
				cmpl	$0, -1132(%ebp)
				js	.L4
				jmp	.L19
		.L3:
?HEX unused
    7 Statements compiled
