         Edinburgh IMP77 Compiler - Version 8.4
    1 %integerfnspec jim(%integer a,b)
				.option nopic
		.Ltext0:
				.align	1
				.globl	FRED
		FRED:
		.LFB185:
    2 %externalroutine fred %alias "s#go"
				add	sp,sp,-800
				sd	ra,792(sp)
				sd	s0,784(sp)
				lui	s0,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(s0)
				sd	a5,776(sp)
		.LBB14:
    3 %integer x
    4 printstring("fred
				li	a2,256
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a0,sp,520
				call	memcpy
		.LVL0:
				li	a2,256
				add	a1,sp,520
				add	a0,sp,264
				call	memcpy
		.LVL1:
				li	a2,256
				add	a1,sp,264
				add	a0,sp,520
				call	memcpy
		.LVL2:
		.LBE14:
		.LBB15:
		.LBB16:
				li	a2,256
				add	a1,sp,520
				mv	a0,sp
				call	memcpy
		.LVL3:
				mv	a0,sp
				call	_imp_printstring
		.LVL4:
		.LBE16:
		.LBE15:
    5 ")
    6 x=jim(4,5)
    7 write(x,5); newline
				li	a1,5
				li	a0,1
				call	_imp_writeint
		.LVL5:
		.LBB17:
		.LBB18:
				call	_imp_newline
		.LVL6:
		.LBE18:
		.LBE17:
    8
    9 %end
   10 %integerfn jim(%integer a,b)
				ld	a4,776(sp)
				ld	a5,%lo(__stack_chk_guard)(s0)
				bne	a4,a5,.L4
				ld	ra,792(sp)
				ld	s0,784(sp)
				add	sp,sp,800
				jr	ra
		.L4:
				call	__stack_chk_fail
		.LVL7:
		.LFE185:
				.section	.rodata
				.align	3
				.set	.LANCHOR0,. + 0
		.LC0:
				.byte	5
				.string	"fred\n"
				.zero	249
		.Letext0:
   11
   12 %if a<b %then %result=1
   13 %result=0
   14 %end
   15 %endoffile
   13 Statements compiled
