         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.option nopic
		.Ltext0:
				.align	1
				.globl	main
		main:
		.LFB185:
		.LVL0:
				add	sp,sp,-800
				sd	ra,792(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,776(sp)
    2 %recordformat rf(%short h0,%byte b2,b3)
				call	_imp_initialise
		.LVL1:
		.LBB14:
		.LBB15:
    3 %ownrecord(rf) x1,x2
    4 %integerfn fred
    5 %integer k
    6 %record(rf)r0,r1,r2
    7 k=13
    8 r0_h0=12
    9 x1_h0=17
				lui	a5,%hi(X1.6009)
				li	a4,17
				sh	a4,%lo(X1.6009)(a5)
   10 x2=x1
				lw	a4,%lo(X1.6009)(a5)
				lui	a5,%hi(X2.6010)
				sw	a4,%lo(X2.6010)(a5)
		.LVL2:
		.LBE15:
		.LBE14:
		.LBB16:
   11 r1=r0
   12 r2=r1
   13 %result=r2_h0
   14 %end
   15 %if fred=12 %and x2_H0=17 %then printstring("Test OK")
   16 %endofprogram
   16 Statements compiled
				li	a2,256
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a0,sp,520
				call	memcpy
		.LVL3:
				li	a2,256
				add	a1,sp,520
				add	a0,sp,264
				call	memcpy
		.LVL4:
				li	a2,256
				add	a1,sp,264
				add	a0,sp,520
				call	memcpy
		.LVL5:
		.LBE16:
		.LBB17:
		.LBB18:
				li	a2,256
				add	a1,sp,520
				mv	a0,sp
				call	memcpy
		.LVL6:
				mv	a0,sp
				call	_imp_printstring
		.LVL7:
		.LDL1:
		.LBE18:
		.LBE17:
		.LBB19:
		.LBB20:
				li	a0,0
				call	exit
		.LVL8:
		.LBE20:
		.LBE19:
		.LFE185:
				.section	.rodata
				.align	3
				.set	.LANCHOR0,. + 0
		.LC0:
				.byte	7
				.string	"Test OK"
				.zero	247
				.section	.sbss,"aw",@nobits
				.align	3
		X1.6009:
				.zero	4
				.zero	4
		X2.6010:
				.zero	4
		.Letext0:
