         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.align	2
				.global	main
		main:
		.LFB185:
		.LVL0:
				sub	sp, sp, #2384
				stp	x29, x30, [sp]
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				str	x23, [sp, 48]
				adrp	x2, :got:__stack_chk_guard
				ldr	x2, [x2, #:got_lo12:__stack_chk_guard]
				ldr	x3, [x2]
				str	x3, [x29, 2376]
				mov	x3,0
    2
				bl	_imp_initialise
		.LVL1:
		.LBB58:
    3   %integerfn getchar
    4     %integer sym
    5     readsymbol(sym)
    6     printstring("Call returned "); printsymbol(sym); newline
				add	x21, x29, 1864
				mov	x2, x19
				add	x1, x23, x19
				mov	x0, x21
				bl	memcpy
		.LVL10:
				mov	x2, x19
				mov	x1, x21
				mov	x0, x22
				bl	memcpy
		.LVL11:
				mov	x2, x19
				mov	x1, x22
				mov	x0, x21
				bl	memcpy
		.LVL12:
		.LBE68:
		.LBB69:
		.LBB70:
				mov	x2, x19
				mov	x1, x21
				mov	x0, x20
				bl	memcpy
		.LVL13:
				mov	x0, x20
				bl	_imp_printstring
		.LVL14:
		.LBE70:
		.LBE69:
		.LBB71:
		.LBB72:
				ldrb	w0, [x29, 324]
				bl	_imp_printsymbol
		.LVL15:
		.LBE72:
		.LBE71:
		.LBB73:
		.LBB74:
				bl	_imp_newline
		.LVL16:
		.LBE74:
		.LBE73:
    7     %result = sym
				ldr	w0, [x29, 324]
		.LBE65:
		.LBE64:
    8   %end
    9
   10   printstring("Please enter the word BUG when I ask for data:"); newline
				adrp	x23, .LANCHOR0
				add	x23, x23, :lo12:.LANCHOR0
				add	x22, x29, 2120
				mov	x19, 256
				mov	x2, x19
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL2:
				add	x20, x29, 328
				mov	x2, x19
				mov	x1, x22
				mov	x0, x20
				bl	memcpy
		.LVL3:
				add	x21, x29, 1096
				mov	x2, x19
				mov	x1, x20
				mov	x0, x21
				bl	memcpy
		.LVL4:
		.LBE58:
		.LBB59:
		.LBB60:
				add	x20, x29, 64
				mov	x2, x19
				mov	x1, x21
				mov	x0, x20
				bl	memcpy
		.LVL5:
				mov	x0, x20
				bl	_imp_printstring
		.LVL6:
		.LBE60:
		.LBE59:
		.LBB61:
		.LBB62:
				bl	_imp_newline
		.LVL7:
		.LBE62:
		.LBE61:
		.LBB63:
		.LBB64:
		.LBB65:
		.LBB66:
		.LBB67:
				add	x0, x29, 324
		.LVL8:
				bl	_imp_readsymbol
		.LVL9:
		.LBE67:
		.LBE66:
		.LBB68:
   11
   12   %if 'A' <= getchar <= 'C' %start
   13     printstring("Test successful."); newline
				add	x20, x29, 1608
				mov	x21, x19
				mov	x2, x19
				add	x1, x23, 512
				mov	x0, x20
				bl	memcpy
		.LVL24:
				add	x19, x29, 584
				mov	x2, x21
				mov	x1, x20
				mov	x0, x19
				bl	memcpy
		.LVL25:
				add	x20, x29, 1352
				mov	x2, x21
				mov	x1, x19
				mov	x0, x20
				bl	memcpy
		.LVL26:
		.LBE82:
		.LBB83:
		.LBB84:
				add	x19, x29, 64
				mov	x2, x21
				mov	x1, x20
				mov	x0, x19
				bl	memcpy
		.LVL27:
				mov	x0, x19
				bl	_imp_printstring
		.LVL28:
		.LBE84:
		.LBE83:
		.LBB85:
		.LBB86:
				bl	_imp_newline
		.LVL29:
				b	.L3
		.LBE86:
		.LBE85:
		.LFE185:
				.section	.rodata
				.align	3
				.set	.LANCHOR0,. + 0
		.LC0:
				.byte	46
				.string	"Please enter the word BUG when I ask for data:"
				.zero	208
		.LC3:
				.byte	14
				.string	"Call returned "
				.zero	240
		.LC1:
				.byte	16
				.string	"Test successful."
				.zero	238
		.LC2:
				.byte	39
				.string	"Test failed - getchar was called twice."
				.zero	215
		.Letext0:
   14   %else
   15     printstring("Test failed - getchar was called twice."); newline
				add	x19, x29, 1608
				mov	x20, 256
				mov	x2, x20
				adrp	x1, .LANCHOR0
				add	x1, x1, :lo12:.LANCHOR0
				add	x1, x1, 768
				mov	x0, x19
				bl	memcpy
		.LVL17:
				add	x21, x29, 840
				mov	x2, x20
				mov	x1, x19
				mov	x0, x21
				bl	memcpy
		.LVL18:
				mov	x2, x20
				mov	x1, x21
				mov	x0, x19
				bl	memcpy
		.LVL19:
		.LBE75:
		.LBB76:
		.LBB77:
				add	x0, x29, 64
				mov	x2, x20
				mov	x1, x19
				mov	x19, x0
				bl	memcpy
		.LVL20:
				mov	x0, x19
				bl	_imp_printstring
		.LVL21:
		.LBE77:
		.LBE76:
		.LBB78:
		.LBB79:
				bl	_imp_newline
		.LVL22:
		.L3:
		.LBE79:
		.LBE78:
		.LBB80:
		.LBB81:
				mov	w0, 0
				bl	exit
		.LVL23:
		.L6:
		.LBE81:
		.LBE80:
		.LBB82:
   16   %finish
   17
				sub	w0, w0, #65
				cmp	w0, 2
				bls	.L6
		.L2:
		.LBE63:
		.LBB75:
   18 %endofprogram
   19 Statements compiled
