         Edinburgh IMP77 Compiler - Version 8.4
    1       %EXTERNALINTEGERFN IAND(%INTEGERNAME A,B)
		.Ltext0:
				.globl	next_free_bound_index
				.bss
				.align 4
		next_free_bound_index:
				.zero	4
				.comm	_lb,384,32
				.comm	_ub,384,32
				.globl	IAND
		IAND:
		.LFB189:
				pushl	%ebp
				movl	%esp, %ebp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
    2       %RESULT=A&B
				movl	8(%ebp), %eax
				movl	(%eax), %edx
				movl	12(%ebp), %eax
				movl	(%eax), %eax
				andl	%edx, %eax
    3       %END
				popl	%ebp
				ret
		.LFE189:
				.globl	IOR
		IOR:
		.LFB190:
    4       %EXTERNALINTEGERFN IOR(%INTEGERNAME A,B)
				pushl	%ebp
				movl	%esp, %ebp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
    5       %RESULT=A!B
				movl	8(%ebp), %eax
				movl	(%eax), %edx
				movl	12(%ebp), %eax
				movl	(%eax), %eax
				orl	%edx, %eax
    6       %END
				popl	%ebp
				ret
		.LFE190:
				.globl	IEOR
		IEOR:
		.LFB191:
    7       %EXTERNALINTEGERFN IEOR(%INTEGERNAME A,B)
				pushl	%ebp
				movl	%esp, %ebp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
    8       %RESULT=A!!B
				movl	8(%ebp), %eax
				movl	(%eax), %edx
				movl	12(%ebp), %eax
				movl	(%eax), %eax
				xorl	%edx, %eax
    9       %END
				popl	%ebp
				ret
		.LFE191:
				.globl	NOT
		NOT:
		.LFB192:
   10       %EXTERNALINTEGERFN NOT(%INTEGERNAME A)
				pushl	%ebp
				movl	%esp, %ebp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
   11       %RESULT=\A
				movl	8(%ebp), %eax
				movl	(%eax), %eax
				notl	%eax
   12       %END
				popl	%ebp
				ret
		.LFE192:
				.globl	ISHFT
		ISHFT:
		.LFB193:
   13       %EXTERNALINTEGERFN ISHFT(%INTEGERNAME A,B)
				pushl	%ebp
				movl	%esp, %ebp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
   14       %IF B>0 %THEN %RESULT=A<<B %ELSE %RESULT=A>>(-B)
				movl	12(%ebp), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				jle	.L14
				movl	8(%ebp), %eax
				movl	(%eax), %edx
				movl	12(%ebp), %eax
				movl	(%eax), %eax
				movl	%eax, %ecx
				sall	%cl, %edx
				movl	%edx, %eax
				jmp	.L12
		.L14:
				nop
		.L11:
				movl	8(%ebp), %eax
				movl	(%eax), %eax
				movl	%eax, %edx
				movl	12(%ebp), %eax
				movl	(%eax), %eax
				negl	%eax
				movl	%eax, %ecx
				shrl	%cl, %edx
				movl	%edx, %eax
		.L12:
   15       %END
				popl	%ebp
				ret
		.LFE193:
				.globl	SUCESS
		SUCESS:
		.LFB194:
   16       %EXTERNALINTEGERFNSPEC RETURNCODE
   17       %EXTERNALINTEGERFN SUCESS(%INTEGERNAME DUMMY)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$4, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
   18       %RESULT=RETURNCODE
				movl	%eax, %ebx
				call	RETURNCODE@PLT
   19       %END
				addl	$4, %esp
				popl	%ebx
				popl	%ebp
				ret
		.LFE194:
				.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:
		.LFB195:
				movl	(%esp), %eax
				ret
		.LFE195:
		.Letext0:
?DUMMY unused
   20       %ENDOFFILE
   20 Statements compiled
