         Edinburgh IMP77 Compiler - Version 8.4
    1
		.Ltext0:
				.globl	main
		main:
		.LFB185:
    2 %BEGIN
		.LVL0:
				subq	$536, %rsp
				movq	%fs:40, %rax
				movq	%rax, 520(%rsp)
				xorl	%eax, %eax
    3 !***********************************************************************
				call	_imp_initialise@PLT
		.LVL1:
		.LBB9:
    4 !*    A TEST TO CHECK THE LINE NUMBER OF A FAILURE AT RUN TIME         *
    5 !***********************************************************************
    6 %recordformat rf(%integer i,j,k)
    7 %record(rf) %name fred
    8 %INTEGERARRAY A(0:4)
    9 %INTEGER I
   10 	fred==record(-1)
   11       printstring("This gives diagnostics showing i = 10
				movabsq	$8532464358103017556, %rax
				movabsq	$7955434372052579173, %rdx
				movq	%rax, 257(%rsp)
				movq	%rdx, 265(%rsp)
				movabsq	$8295757384424649583, %rax
				movabsq	$7575168297150672744, %rdx
				movq	%rax, 273(%rsp)
				movq	%rdx, 281(%rsp)
				movabsq	$11202098904352, %rax
				movl	$0, %edx
				movq	%rax, 289(%rsp)
				movq	%rdx, 297(%rsp)
				movb	$0, 305(%rsp)
				movw	$0, 306(%rsp)
				movl	$0, 308(%rsp)
				leaq	312(%rsp), %rdi
				movl	$25, %ecx
				movl	$0, %eax
				rep stosq
				movb	$38, 256(%rsp)
				movq	256(%rsp), %rax
				movq	264(%rsp), %rdx
				movq	%rax, (%rsp)
				movq	%rdx, 8(%rsp)
		.LVL2:
				movb	$38, (%rsp)
		.LBE9:
		.LBB10:
		.LBB11:
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	504(%rsp)
				pushq	248(%rsp)
				pushq	248(%rsp)
				call	_imp_printstring@PLT
		.LVL3:
		.LDL1:
		.LBE11:
		.LBE10:
		.LBB12:
		.LBB13:
				addq	$256, %rsp
				movl	$0, %edi
				call	exit@PLT
		.LVL4:
		.LBE13:
		.LBE12:
		.LFE185:
		.Letext0:
   12 ")
   13    I=10
   14 %IF 1<0 %THEN %START
   15       !
   16       !
   17       %STOP
   18 %FINISH %ELSE A(I)=A(I)+1
   19       !
   20 %ENDOFPROGRAM
   12 Statements compiled
