         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.globl	main
		main:
		.LFB185:
		.LVL0:
				pushq	%rbx
				subq	$2320, %rsp
				movq	%fs:40, %rax
				movq	%rax, 2312(%rsp)
				xorl	%eax, %eax
    2 %real i,j
				call	_imp_initialise@PLT
		.LVL1:
    3 %on %event 1 %start
				movl	$1, %esi
				leaq	536+_imp_event(%rip), %rdi
				call	__sigsetjmp@PLT
		.LVL2:
				testl	%eax, %eax
				jne	.L3
		.LVL3:
				movl	$2, %esi
				leaq	_imp_event(%rip), %rdi
				call	_imp_on_event_enter@PLT
		.LVL4:
				testq	%rax, %rax
				je	.L3
    4      ->trap
    5 %finish
    6 i=2
    7 %cycle
    8 j=i; i=I+I
    9 %if i<00.00001 %or j>=i %then printstring("Oflow missed") %and %stop
				movss	.LC0(%rip), %xmm0
				movsd	.LC1(%rip), %xmm3
		.L4:
		.LDL1:
		.LDL2:
		.LDL3:
		.LVL5:
				movaps	%xmm0, %xmm1
				addss	%xmm0, %xmm1
		.LVL6:
				pxor	%xmm2, %xmm2
				cvtss2sd	%xmm1, %xmm2
				ucomisd	%xmm2, %xmm3
				ja	.L5
				movaps	%xmm1, %xmm0
		.LVL7:
   10 %repeat
				ucomiss	%xmm0, %xmm1
				jbe	.L5
   11 printstring("FAIL")
?access
   12 %stop
				movabsq	$7596763843786466895, %rax
				movl	$1684370291, %edx
				movq	%rax, 769(%rsp)
				movq	%rdx, 777(%rsp)
				leaq	785(%rsp), %rdi
				movl	$239, %ecx
				movl	$0, %eax
				rep stosb
				movb	$12, 768(%rsp)
				movq	%rsp, %rdi
				leaq	768(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LVL9:
				movb	$12, (%rsp)
				leaq	1280(%rsp), %rdi
				movq	%rsp, %rsi
				movl	$32, %ecx
				rep movsq
		.LBE30:
		.LBB31:
		.LBB32:
				subq	$256, %rsp
				leaq	1536(%rsp), %rsi
				movl	$32, %ecx
				movq	%rsp, %rdi
				rep movsq
				call	_imp_printstring@PLT
		.LVL10:
				addq	$256, %rsp
		.LVL11:
		.LBE32:
		.LBE31:
		.LBB33:
		.LBB34:
				movl	$0, %edi
				call	exit@PLT
		.LVL12:
		.L3:
		.LBE34:
		.LBE33:
		.LBB35:
				movabsq	$8247252502062659173, %rax
				movabsq	$35615570686049, %rdx
				movq	%rax, 769(%rsp)
				movq	%rdx, 777(%rsp)
				leaq	785(%rsp), %rdi
				movl	$239, %ecx
				movl	$0, %ebx
				movl	%ebx, %eax
				rep stosb
				movb	$14, 768(%rsp)
				leaq	256(%rsp), %rdi
				leaq	768(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LVL13:
				movb	$14, 256(%rsp)
				leaq	1536(%rsp), %rdi
				leaq	256(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LBE35:
		.LBB36:
		.LBB37:
				subq	$256, %rsp
				leaq	1792(%rsp), %rsi
				movl	$32, %ecx
				movq	%rsp, %rdi
				rep movsq
				call	_imp_printstring@PLT
		.LVL14:
				addq	$256, %rsp
		.LBE37:
		.LBE36:
   13 trap:
   14 printstring("event trapped ")
				jmp	.L4
		.LVL8:
		.L5:
		.LBB30:
   15 write(eventinf>>8,5); write(eventinf&255,5)
				movl	8+_imp_event(%rip), %edi
				shrl	$8, %edi
				movl	$5, %esi
				call	_imp_writeint@PLT
		.LVL15:
   16 newline
				movzbl	8+_imp_event(%rip), %edi
				movl	$5, %esi
				call	_imp_writeint@PLT
		.LVL16:
		.LBB38:
		.LBB39:
				call	_imp_newline@PLT
		.LVL17:
		.LBE39:
		.LBE38:
		.LBB40:
   17 printstring("Line of failure =")
				movabsq	$2334675641769552204, %rax
				movabsq	$2334397830517055846, %rdx
				movq	%rax, 769(%rsp)
				movq	%rdx, 777(%rsp)
				movq	$61, 785(%rsp)
				movq	$0, 793(%rsp)
				leaq	801(%rsp), %rdi
				movl	$223, %ecx
				movl	%ebx, %eax
				rep stosb
				movb	$17, 768(%rsp)
				leaq	512(%rsp), %rdi
				leaq	768(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LVL18:
				movb	$17, 512(%rsp)
				leaq	1792(%rsp), %rdi
				leaq	512(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LBE40:
		.LBB41:
		.LBB42:
				subq	$256, %rsp
				leaq	2048(%rsp), %rsi
				movl	$32, %ecx
				movq	%rsp, %rdi
				rep movsq
				call	_imp_printstring@PLT
		.LVL19:
				addq	$256, %rsp
		.LBE42:
		.LBE41:
   18 write(eventline,4)
				movl	$4, %esi
				movl	524+_imp_event(%rip), %edi
				call	_imp_writeint@PLT
		.LVL20:
		.LBB43:
		.LBB44:
				call	_imp_newline@PLT
		.LVL21:
		.LBE44:
		.LBE43:
		.LBB45:
   19 newline
   20 printstring("Test OK")
				movabsq	$21197624064566612, %rax
				movl	$0, %edx
				movq	%rax, 769(%rsp)
				movq	%rdx, 777(%rsp)
				leaq	785(%rsp), %rdi
				movl	$239, %ecx
				movl	%ebx, %eax
				rep stosb
				movb	$7, 768(%rsp)
				leaq	1024(%rsp), %rdi
				leaq	768(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LVL22:
				movb	$7, 1024(%rsp)
				leaq	2048(%rsp), %rdi
				leaq	1024(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LBE45:
		.LBB46:
		.LBB47:
				subq	$256, %rsp
				leaq	2304(%rsp), %rsi
				movl	$32, %ecx
				movq	%rsp, %rdi
				rep movsq
				call	_imp_printstring@PLT
		.LVL23:
				addq	$256, %rsp
		.LVL24:
		.LBE47:
		.LBE46:
		.LBB48:
		.LBB49:
				movl	$0, %edi
				call	exit@PLT
		.LVL25:
		.LBE49:
		.LBE48:
		.LFE185:
				.section	.rodata.cst4,"aM",@progbits,4
				.align 4
		.LC0:
				.long	1082130432
				.section	.rodata.cst8,"aM",@progbits,8
				.align 8
		.LC1:
				.long	-1998362383
				.long	1055193269
		.Letext0:
   21 %endofprogram
   22 Statements compiled
