         Edinburgh IMP77 Compiler - Version 8.4
    1 %externalroutine toplev
		.Ltext0:
				.globl	TOPLEV
		TOPLEV:
		.LFB189:
				pushl	%ebp
				movl	%esp, %ebp
				subl	$16, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
    2
    3 ! compiled with ./imps this gives a segfault but with ./bin/imps it compiles OK???!
    4 ! what in the prims.inc could cause that?
    5
    6   %longreal lr1
    7   %integer i, i1 = 1, i2 = 2, i3 = 3
				movl	$1, -16(%ebp)
				movl	$2, -12(%ebp)
				movl	$3, -8(%ebp)
    8
    9   %if i2 = i3 %start
				movl	-12(%ebp), %eax
				cmpl	-8(%ebp), %eax
				jne	.L15
				nop
		.L4:
   10       i = i1
				movl	-16(%ebp), %eax
				movl	%eax, -4(%ebp)
				jmp	.L4
		.L3:
		.L15:
   11   %finish
   12
   13   test3else:
   14
   15   %if i2 = i3 %then i = i1 %else i = i2
				movl	-12(%ebp), %eax
				cmpl	-8(%ebp), %eax
				jne	.L16
				movl	-16(%ebp), %eax
				movl	%eax, -4(%ebp)
				jmp	.L8
		.L16:
				nop
		.L6:
				movl	-12(%ebp), %eax
				movl	%eax, -4(%ebp)
		.L7:
		.L8:
   16
   17   test4else:
   18
   19   %if i2 = i3 %then %start
				movl	-12(%ebp), %eax
				cmpl	-8(%ebp), %eax
				jne	.L17
				nop
		.L10:
				movl	-12(%ebp), %eax
				movl	%eax, -4(%ebp)
		.L11:
   20       i = i1
				movl	-16(%ebp), %eax
				movl	%eax, -4(%ebp)
   21   %finish %else i = i2
				jmp	.L11
		.L17:
   22
   23 %end
				nop
				leave
				ret
		.LFE189:
				.section	.text.__x86.get_pc_thunk.ax,"axG",@progbits,__x86.get_pc_thunk.ax,comdat
				.globl	__x86.get_pc_thunk.ax
				.hidden	__x86.get_pc_thunk.ax
		__x86.get_pc_thunk.ax:
		.LFB190:
				movl	(%esp), %eax
				ret
		.LFE190:
		.Letext0:
?TEST4ELSE unused
?TEST3ELSE unused
?LR1 unused
   24 %endoffile
   12 Statements compiled
