         Edinburgh IMP77 Compiler - Version 8.4
    1       %EXTERNALINTEGERFN IAND(%INTEGERNAME A,B)
		.Ltext0:
				.globl	IAND
		IAND:
		.LFB185:
		.LVL0:
    2       %RESULT=A&B
				movl	(%rdi), %eax
				andl	(%rsi), %eax
    3       %END
				ret
		.LFE185:
				.globl	IOR
		IOR:
		.LFB186:
    4       %EXTERNALINTEGERFN IOR(%INTEGERNAME A,B)
		.LVL1:
    5       %RESULT=A!B
				movl	(%rdi), %eax
				orl	(%rsi), %eax
    6       %END
				ret
		.LFE186:
				.globl	IEOR
		IEOR:
		.LFB187:
    7       %EXTERNALINTEGERFN IEOR(%INTEGERNAME A,B)
		.LVL2:
    8       %RESULT=A!!B
				movl	(%rdi), %eax
				xorl	(%rsi), %eax
    9       %END
				ret
		.LFE187:
				.globl	NOT
		NOT:
		.LFB188:
   10       %EXTERNALINTEGERFN NOT(%INTEGERNAME A)
		.LVL3:
   11       %RESULT=\A
				movl	(%rdi), %eax
				notl	%eax
   12       %END
				ret
		.LFE188:
				.globl	ISHFT
		ISHFT:
		.LFB189:
   13       %EXTERNALINTEGERFN ISHFT(%INTEGERNAME A,B)
		.LVL4:
   14       %IF B>0 %THEN %RESULT=A<<B %ELSE %RESULT=A>>(-B)
				movl	(%rsi), %ecx
				testl	%ecx, %ecx
				jle	.L6
   15       %END
				movl	(%rdi), %eax
				sall	%cl, %eax
				ret
		.L6:
				ret
		.LFE189:
				.globl	SUCESS
		SUCESS:
		.LFB190:
		.LVL5:
				subq	$8, %rsp
   16       %EXTERNALINTEGERFNSPEC RETURNCODE
   17       %EXTERNALINTEGERFN SUCESS(%INTEGERNAME DUMMY)
				negl	%ecx
				movl	(%rdi), %eax
				shrl	%cl, %eax
   18       %RESULT=RETURNCODE
				call	RETURNCODE@PLT
		.LVL6:
   19       %END
				addq	$8, %rsp
				ret
		.LFE190:
		.Letext0:
?DUMMY unused
   20       %ENDOFFILE
   20 Statements compiled
