         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:
		.LBB18:
    4 !*    A TEST TO CHECK THE LINE NUMBER OF A FAILURE AT RUN TIME         *
    5 !***********************************************************************
    6 %INTEGERARRAY A(0:4)
    7 %INTEGER I
    8 %routinespec fred(%integername j)
    9       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)
		.LBE18:
		.LBB19:
		.LBB20:
				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:
		.LBE20:
		.LBE19:
		.LBB21:
		.LBB22:
				addq	$256, %rsp
				movl	$0, %edi
				call	exit@PLT
		.LVL4:
		.LBE22:
		.LBE21:
		.LFE185:
		.Letext0:
   10 ")
   11    I=10
   12 fred(i)
   13 %stop
   14 %routine fred(%integername j)
   15 %IF j<0 %THEN %START
   16       !
   17       !
   18       %STOP
   19 %FINISH %ELSE A(j)=A(j)+1
   20       !
   21 %end
   22 %ENDOFPROGRAM
   14 Statements compiled
