         Edinburgh IMP77 Compiler - Version 8.4
    1 %externalroutine printword(%string (64) word)
				.option nopic
		.Ltext0:
				.align	1
				.globl	PRINTWORD
		PRINTWORD:
		.LFB185:
				add	sp,sp,-2032
				sd	ra,2024(sp)
				sd	s0,2016(sp)
				add	sp,sp,-304
				mv	s0,a0
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				li	a3,4096
				add	a4,a3,-1784
				add	a4,a4,sp
				sd	a5,0(a4)
    2    !%string(3)word = "???"  *duplicate*
    3    %if word = "+" %or word = "-" %or word = "*" %or word = "/" %C
    4      %or word = "<" %or word = "<=" %or word = ">" %or word = ">=" %C
    5        %or word = "=" %then %start
				li	a1,-4096
				add	a1,a1,1784
				add	a5,a3,-1776
				add	a5,a5,sp
				add	a1,a5,a1
				call	_imp_strcmp
		.LVL0:
				bnez	a0,.L6
		.L2:
		.L3:
		.L1:
    6       %return
    7    %finish
    8 %end
    9
				li	a5,4096
				add	a5,a5,-1784
				add	a5,a5,sp
				ld	a4,0(a5)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L7
				add	sp,sp,304
				ld	ra,2024(sp)
				ld	s0,2016(sp)
				add	sp,sp,2032
				jr	ra
		.L6:
				call	__stack_chk_fail
		.LVL9:
		.LFE185:
		.Letext0:
   10 %endoffile
				li	a1,-4096
				add	a1,a1,2040
				li	a5,4096
				add	a5,a5,-1776
				add	a5,a5,sp
				add	a1,a5,a1
				mv	a0,s0
				call	_imp_strcmp
		.LVL1:
				beqz	a0,.L1
    6 Statements compiled
				add	a1,sp,520
				mv	a0,s0
				call	_imp_strcmp
		.LVL2:
				beqz	a0,.L1
				add	a1,sp,776
				mv	a0,s0
				call	_imp_strcmp
		.LVL3:
				beqz	a0,.L1
				add	a1,sp,1032
				mv	a0,s0
				call	_imp_strcmp
		.LVL4:
				beqz	a0,.L1
				add	a1,sp,1288
				mv	a0,s0
				call	_imp_strcmp
		.LVL5:
				beqz	a0,.L1
				add	a1,sp,1544
				mv	a0,s0
				call	_imp_strcmp
		.LVL6:
				beqz	a0,.L1
				add	a1,sp,1800
				mv	a0,s0
				call	_imp_strcmp
		.LVL7:
				beqz	a0,.L1
				li	a5,4096
				add	a5,a5,-2040
				add	a1,sp,a5
				mv	a0,s0
				call	_imp_strcmp
		.LVL8:
				j	.L1
		.L7:
