         Edinburgh IMP77 Compiler - Version 8.4
    1 %external %integer fred
		.Ltext0:
				.align	2
				.global	BERT
		BERT:
		.LFB185:
    2 %external %routine bert(%integer i)
		.LVL0:
    3   fred = i
				adrp	x1, :got:FRED
				ldr	x1, [x1, #:got_lo12:FRED]
				str	w0, [x1]
				mov	w0, 22
				adrp	x1, :got:FRED
				ldr	x1, [x1, #:got_lo12:FRED]
				str	w0, [x1]
		.LVL5:
		.LBE9:
		.LBE8:
    4 %end
    5
				ret
		.LFE185:
				.align	2
				.global	SHIELA
		SHIELA:
		.LFB186:
    6
    7 %external %routine shiela(%integer k)
		.LVL1:
    8 %own %integer local = 42
    9   k = local
   10   local = local + 1
				adrp	x1, .LANCHOR0
				ldr	w0, [x1, #:lo12:.LANCHOR0]
				add	w0, w0, 1
				str	w0, [x1, #:lo12:.LANCHOR0]
		.LVL2:
   11 %end
   12
				ret
		.LFE186:
				.align	2
				.global	main
		main:
		.LFB187:
   13 %begin
		.LVL3:
				stp	x29, x30, [sp, -16]!
				add	x29, sp, 0
   14   bert(22)
				bl	_imp_initialise
		.LVL4:
		.LBB8:
		.LBB9:
   15   shiela(fred)
				bl	SHIELA
		.LVL6:
		.LBB10:
		.LBB11:
				mov	w0, 0
				bl	exit
		.LVL7:
		.LBE11:
		.LBE10:
		.LFE187:
				.comm	FRED,4,4
				.data
				.align	2
				.set	.LANCHOR0,. + 0
		LOCAL.7692:
				.word	42
		.Letext0:
   16 %end %of %programm
   13 Statements compiled
