         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin; ! LC (Low-level compiler) for 8086
		.Ltext0:
				.align	2
		NEXTATOM.7870:
		.LFB190:
		.LVL624:
				mov	x16, 17280
				sub	sp, sp, x16
				stp	x29, x30, [sp]
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				stp	x23, x24, [sp, 48]
				stp	x25, x26, [sp, 64]
				stp	x27, x28, [sp, 80]
				adrp	x2, :got:__stack_chk_guard
				ldr	x2, [x2, #:got_lo12:__stack_chk_guard]
				ldr	x3, [x2]
				str	x3, [x29, 17272]
				mov	x3,0
				add	x2, x29, 16384
				add	x2, x2, 896
				str	x2, [x29, 17264]
    2
				bl	_imp_initialise
		.LVL625:
    3 ! Statement -> CONST {tag = cexpr}+
    4 !              {WORD, BYTE} {tag { (cexpr:cexpr) }? {= {data}+ }? }*
    5 !              SPEC tag string
    6 !              PROC tag {string}? {tag}*
    7 !              END
    8 !              tag :
    9 !              {instruction, ELSE}? {IF expr comp expr}?
   10 !              CYCLE
   11 !              FINISH
   12 ! Instruction -> MOVE {string opd, cexpr opd opd}
   13 !                JUMP tag
   14 !                REPEAT
   15 !                RETURN {expr}?
   16 !                opd = expr
   17 !                tag {expr}*
   18 ! Data -> {string, cexpr { (cexpr) }? }
   19 ! Cexpr -> const {op const}*
   20 ! Expr -> {opd, const} {op {opd, const} }*
   21 ! Opd -> tag { ( {opd, const} ) }?
   22 ! Op -> + - & ! \ * / % << >>
   23 ! Comp -> = # < > <= >= [ ] [= ]=
   24 ! Comments are enclosed between { and } or | and NL.
   25
   26 ! Calling convention: Push parms, then XCALL or Push CS, CALL.
   27 !Entry: Push DS, Push BP, Mov BP,SP, {Sub SP,framesize}?,
   28 !        {Mov AX,Glaseg, Mov DS,AX}? Xor AX,AX, Push AX
   29 !Return: Mov SP,BP, Pop BP, Pop DS, Xret parmsize.
   30
   31 %constinteger source=1,diag=0,object=1,list=2;  !Streams
   32
   33 %constinteger linemax=80,atommax=50,tagmax=200,textmax=20
   34 %constinteger codemax=3499,glamax=499
   35 %byteintegerarray line(1:linemax)
   36 %byteintegerarray code(0:codemax)
   37 %byteintegerarray gla(0:glamax)
   38 %integerarray atomtype,atomval(1:atommax)
   39 %integerarray tag1,tag2,tagtype,tagval(1:tagmax)
   40 %integerarray texttype,textval(1:textmax)
   41 %integer type,val,t,v,atompos,ifpos,floc,parms
   42 %integer oldapos,oldcpos,oldtpos,access,textlevel
   43 %integer lineno=0,cloc=0,gloc=0,level=0,gpos=0,cpos=0,tagpos=1
   44 %string(31)program
				str	wzr, [x29, 12924]
   45
   46 !Atom types
				str	wzr, [x29, 12516]
   47 %constinteger unknown=0,constant=1,string=2,label=3
   48 %constinteger var=4, wordbit=1, glabit=2, varmask=16_fc
				str	wzr, [x29, 12512]
   49 %constinteger proc=8,xproc=9,spec=10
   50 %constinteger op=11,comp=12,colon=13,sep=14,bracket=15,bx=16!wordbit
				str	wzr, [x29, 9112]
   51
   52 ! Keyword types
				str	wzr, [x29, 9292]
   53 %constinteger kconst=17,kword=18,kbyte=19,kspec=20,kproc=21
   54 %constinteger kend=22,kmove=23,kjump=24,kreturn=25,kprogram=26
				str	wzr, [x29, 9288]
   55 %constinteger kelse=27,kfinish=28,kcycle=29,krepeat=30
   56
				mov	w1, 1
				str	w1, [x29, 12504]
   57 !Operator codes
   58 %constinteger load=1,add=2,sub=3,and=4,or=5,xor=6,cmp=7,
   59               mul=8,div=9,rem=10,left=11,right=12,store=13,lea=14
   60
   61 !Keyword tag codes (1:36 = A:Z,0:9) 1st {*37 + 2nd {*37 + 3rd}? }?
   62 %constinteger if=339
   63 %ownintegerarray n1(kconst:krepeat)=
   64   4676, 32060, 3683, 26608, 22585, 7367, 18374, 14480, 24847, 22585,
   65   7308,  8561, 5035, 24843
   66 %ownintegerarray n2(kconst:krepeat)=
   67    723,     4,    5,     3,     3,    0,     5,    16, 29429, 10250,
   68      5, 13032,  449,  6902
   69
   70 !Fault numbers
   71 %constinteger complex=1,atom=2,consterr=3,bfull=4,form=5,ambig=6,
   72      nested=7,declate=8,far=9,labund=10,level0=11,varund=12,dfull=13,
   73      repexp=14,finexp=15,context=16,maxfault=16
   74
   75 %routine fault(%integer n)
		.LVL93:
				sub	sp, sp, #2896
				stp	x29, x30, [sp]
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				str	x23, [sp, 48]
				mov	x22, x18
				adrp	x0, :got:__stack_chk_guard
		.LVL94:
				ldr	x0, [x0, #:got_lo12:__stack_chk_guard]
				ldr	x1, [x0]
				str	x1, [x29, 2888]
				mov	x1,0
		.LVL95:
		.LBB258:
		.LBB259:
				adrp	x0, :got:_imp_OutStream
				ldr	x0, [x0, #:got_lo12:_imp_OutStream]
				str	wzr, [x0]
				adrp	x0, :got:_imp_outfile
				ldr	x0, [x0, #:got_lo12:_imp_outfile]
				ldr	x1, [x0, 8]
				adrp	x0, :got:_imp_OutFile
				ldr	x0, [x0, #:got_lo12:_imp_OutFile]
				str	x1, [x0]
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				add	x0, x0, 256
				bl	check_outstream
		.LVL96:
		.LBE259:
		.LBE258:
   76 %ownstring(15)%array s(1:maxfault)=
   77 "Complex",
   78 "Atom",
   79 "Not constant",
   80 "Buffer full",
   81 "Form",
   82 "Ambiguous",
   83 "Nesting",
   84 "Too late",
   85 "Too far",
   86 "Label missing",
   87 "Code misplaced",
   88 "Name",
   89 "Dict full",
   90 "Repeat expected",
   91 "Finish expected",
   92 "Context"
   93 %integer i,sym
   94    selectoutput(diag); write(lineno,1); space
   95    i=1
				mov	w1, 1
				ldr	w0, [x22, 3828]
				bl	_imp_writeint
		.LVL97:
		.LBB260:
		.LBB261:
				bl	_imp_space
		.LVL98:
				add	x20, x22, 4096
				add	x20, x20, 3992
		.LVL99:
		.L79:
		.LBE261:
		.LBE260:
   96    %cycle
   97       sym=line(i); printsymbol(sym); i=i+1
				ldrb	w19, [x20], 1
		.LVL100:
		.LBB262:
		.LBB263:
				mov	w0, w19
				bl	_imp_printsymbol
		.LVL101:
		.LBE263:
		.LBE262:
   98    %repeatuntil sym=nl
				cmp	w19, 10
				bne	.L79
		.L80:
				add	x21, x29, 2632
				mov	x20, 256
		.LVL102:
				mov	x2, x20
				add	x1, x29, 584
				mov	x0, x21
				bl	memcpy
		.LVL103:
		.LBB264:
		.LBB265:
				add	x19, x29, 320
		.LVL104:
				mov	x2, x20
				mov	x1, x21
				mov	x0, x19
				bl	memcpy
		.LVL105:
				mov	x0, x19
				bl	_imp_printstring
		.LVL106:
		.LBE265:
		.LBE264:
   99    printstring(s(n)); write(atompos-1,1); newline
  100    selectoutput(list)
  101    printstring("** "); printstring(s(n))
				add	x21, x29, 2376
				mov	x2, x20
				add	x1, x23, 280
				mov	x0, x21
				bl	memcpy
		.LVL110:
				add	x23, x29, 840
				mov	x2, x20
				mov	x1, x21
				mov	x0, x23
				bl	memcpy
		.LVL111:
				mov	x2, x20
				mov	x1, x23
				mov	x0, x21
				bl	memcpy
		.LVL112:
		.LBE270:
		.LBB271:
		.LBB272:
				mov	x2, x20
				mov	x1, x21
				mov	x0, x19
				bl	memcpy
		.LVL113:
				mov	x0, x19
				bl	_imp_printstring
		.LVL114:
				add	x21, x29, 2120
				mov	x2, x20
				add	x1, x29, 1096
				mov	x0, x21
				bl	memcpy
		.LVL115:
		.LBE272:
		.LBE271:
		.LBB273:
		.LBB274:
				mov	x2, x20
				mov	x1, x21
				mov	x0, x19
				bl	memcpy
		.LVL116:
				mov	x0, x19
				bl	_imp_printstring
		.LVL117:
		.LBE274:
		.LBE273:
  102    write(atompos-1,1); newline
				ldr	w0, [x22, 3824]
				mov	w1, 1
				sub	w0, w0, #1
				bl	_imp_writeint
		.LVL118:
		.LBB275:
		.LBB276:
				bl	_imp_newline
		.LVL119:
		.LBE276:
		.LBE275:
  103    %signalevent 15
				adrp	x0, :got:_imp_current_file
				ldr	x0, [x0, #:got_lo12:_imp_current_file]
				ldr	x0, [x0]
				cbz	x0, .L81
				add	x8, x29, 1608
				bl	_imp_c2istr
		.LVL120:
		.L82:
				adrp	x0, :got:_imp_current_line
				ldr	x0, [x0, #:got_lo12:_imp_current_line]
				ldr	w20, [x0]
				cmp	w20, 0
				mov	w0, 103
				csel	w20, w20, w0, ne
				add	x22, x29, 1864
				mov	x8, x22
				adrp	x0, .LC14
				add	x0, x0, :lo12:.LC14
				bl	_imp_c2istr
		.LVL121:
				add	x19, x29, 320
				mov	x23, 256
				mov	x2, x23
				add	x1, x29, 1608
				mov	x0, x19
				bl	memcpy
		.LVL122:
				add	x21, x29, 64
				mov	x2, x23
				mov	x1, x22
				mov	x0, x21
				bl	memcpy
		.LVL123:
				mov	w5, 0
				mov	w4, 0
				mov	w3, 15
				mov	x2, x21
				mov	w1, w20
				mov	x0, x19
				bl	_signal_event
		.LVL124:
				add	x20, x29, 1864
				mov	x21, 256
				mov	x2, x21
				adrp	x1, .LANCHOR0
				add	x1, x1, :lo12:.LANCHOR0
				mov	x0, x20
				bl	memcpy
		.LVL125:
				add	x19, x29, 1352
				mov	x2, x21
				mov	x1, x20
				mov	x0, x19
				bl	memcpy
		.LVL126:
		.LBE277:
				mov	x2, x21
				mov	x1, x19
				add	x0, x29, 1608
				bl	memcpy
		.LVL127:
				b	.L82
		.L88:
  104 %end
				ldr	w0, [x22, 3824]
				mov	w1, 1
				sub	w0, w0, #1
				bl	_imp_writeint
		.LVL107:
		.LBB266:
		.LBB267:
				bl	_imp_newline
		.LVL108:
		.LBE267:
		.LBE266:
		.LBB268:
		.LBB269:
				adrp	x0, :got:_imp_OutStream
				ldr	x0, [x0, #:got_lo12:_imp_OutStream]
				mov	w1, 2
				str	w1, [x0]
				adrp	x0, :got:_imp_outfile
				ldr	x0, [x0, #:got_lo12:_imp_outfile]
				ldr	x1, [x0, 584]
				adrp	x0, :got:_imp_OutFile
				ldr	x0, [x0, #:got_lo12:_imp_OutFile]
				str	x1, [x0]
				adrp	x23, .LANCHOR0
				add	x23, x23, :lo12:.LANCHOR0
				add	x0, x23, x20
				bl	check_outstream
		.LVL109:
		.LBE269:
		.LBE268:
		.LBB270:
  105
				adrp	x0, :got:__stack_chk_guard
				ldr	x0, [x0, #:got_lo12:__stack_chk_guard]
				ldr	x1, [x29, 2888]
				ldr	x0, [x0]
				eor	x0, x1, x0
				cbnz	x0, .L88
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
				ldr	x23, [sp, 48]
				ldp	x29, x30, [sp]
				add	sp, sp, 2896
				ret
		.L81:
		.LBB277:
				bl	__stack_chk_fail
		.LVL128:
		.LFE186:
				.align	2
		PUTATOM.7761:
		.LFB189:
  106 %routine readline
				sub	sp, sp, #2704
				stp	x29, x30, [sp]
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				stp	x23, x24, [sp, 48]
				stp	x25, x26, [sp, 64]
				str	x27, [sp, 80]
				mov	x19, x18
				adrp	x0, :got:__stack_chk_guard
				ldr	x0, [x0, #:got_lo12:__stack_chk_guard]
				ldr	x1, [x0]
				str	x1, [x29, 2696]
				mov	x1,0
				add	x0, x29, 2704
				str	x0, [x29, 640]
				str	x18, [x29, 632]
		.LVL136:
		.LBB278:
		.LBB279:
				adrp	x0, :got:_imp_OutStream
				ldr	x0, [x0, #:got_lo12:_imp_OutStream]
				mov	w1, 2
				str	w1, [x0]
				adrp	x0, :got:_imp_outfile
				ldr	x0, [x0, #:got_lo12:_imp_outfile]
				ldr	x1, [x0, 584]
				adrp	x0, :got:_imp_OutFile
				ldr	x0, [x0, #:got_lo12:_imp_OutFile]
				str	x1, [x0]
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				add	x0, x0, 256
				bl	check_outstream
		.LVL137:
		.LBE279:
		.LBE278:
  107 %owninteger semi=0
  108 %OWNINTEGER QUOTE=0
  109 %integer sym,n1,n2,radix,i,quoted,lpos
  110
  111   %routine phex(%integer x)
		.LVL34:
				stp	x29, x30, [sp, -32]!
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				mov	w20, w0
		.LVL35:
  112   %integer k,i
  113     %for i=12,-4,0 %cycle
  114       k=x>>i&15; k=k+7 %if k>9
				mov	w19, 16
		.LVL36:
		.L42:
				lsr	w0, w20, w19
				and	w0, w0, 15
		.LVL38:
  115       printsymbol(k+'0')
				add	w0, w0, 48
		.LVL40:
		.LBB226:
		.LBB227:
				bl	_imp_printsymbol
		.LVL41:
		.LDL4:
		.LBE227:
		.LBE226:
  116     %repeat
				add	w1, w0, 7
				cmp	w0, 9
				csel	w0, w1, w0, gt
		.LVL39:
		.L41:
				cbnz	w19, .L42
  117   %end
				sub	w19, w19, #4
		.LVL37:
  118
				ldp	x19, x20, [sp, 16]
		.LVL42:
				ldp	x29, x30, [sp], 32
				ret
		.L43:
		.LFE188:
				.align	2
		GFLUSH.7938:
		.LFB198:
  119   %routine putatom(%integer t,v)
		.LVL129:
				stp	x29, x30, [sp, -48]!
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				str	x21, [sp, 32]
				mov	w21, w0
				mov	w20, w1
				mov	x19, x18
  120     fault(complex) %if atompos>atommax
				ldr	x18, [x18]
				ldr	w0, [x18, 3824]
		.LVL130:
				cmp	w0, 50
				bgt	.L92
		.LVL131:
		.L90:
  121     atomtype(atompos)=t; atomval(atompos)=v
				ldr	x1, [x19]
				ldr	w0, [x1, 3824]
				sub	w0, w0, #1
				add	x0, x1, x0, sxtw 2
				str	w21, [x0, 3624]
				mov	w0, 1
				bl	FAULT.7724
		.LVL135:
				b	.L90
		.LFE189:
				.align	2
		READLINE.7740:
		.LFB187:
  122     atompos=atompos+1
				ldr	x1, [x19]
				ldr	w0, [x1, 3824]
				sub	w0, w0, #1
				add	x0, x1, x0, sxtw 2
				str	w20, [x0, 3424]
				ldr	x1, [x19]
				ldr	w0, [x1, 3824]
				add	w0, w0, 1
				str	w0, [x1, 3824]
  123   %end
  124
				ldp	x19, x20, [sp, 16]
		.LVL132:
				ldr	x21, [sp, 32]
		.LVL133:
				ldp	x29, x30, [sp], 48
				ret
		.LVL134:
		.L92:
  125    selectoutput(list)
  126    %cycle
  127       %if semi=0 %start
				adrp	x22, .LANCHOR2
				add	x22, x22, :lo12:.LANCHOR2
		.LBB280:
				ldr	w0, [x22]
				cbz	w0, .L199
		.L95:
  128         write(lineno+1,4)
				ldr	w0, [x19, 3828]
				mov	w1, 4
				add	w0, w0, 1
				bl	_imp_writeint
		.LVL138:
		.LBB281:
  129         printstring(" C"); phex(cloc); printstring(" D"); phex(gloc)
				adrp	x26, .LANCHOR0
				add	x26, x26, :lo12:.LANCHOR0
				add	x27, x26, 536
				b	.L94
		.L199:
		.LBE280:
				add	x23, x29, 1928
				mov	x20, 256
				mov	x2, x20
				mov	x1, x27
				mov	x0, x23
				bl	memcpy
		.LVL139:
				add	x21, x29, 648
				mov	x2, x20
				mov	x1, x23
				mov	x0, x21
				bl	memcpy
		.LVL140:
				add	x24, x29, 2440
				mov	x2, x20
				mov	x1, x21
				mov	x0, x24
				bl	memcpy
		.LVL141:
		.LBE281:
		.LBB282:
		.LBB283:
				add	x21, x29, 368
				mov	x2, x20
				mov	x1, x24
				mov	x0, x21
				bl	memcpy
		.LVL142:
				mov	x0, x21
				bl	_imp_printstring
		.LVL143:
		.LBE283:
		.LBE282:
  130         space
				ldr	w0, [x19, 3420]
				bl	PHEX.7752
		.LVL144:
		.LBB284:
  131       %finish
				mov	x2, x20
				add	x1, x26, 792
				mov	x0, x23
				bl	memcpy
		.LVL145:
				add	x24, x29, 904
				mov	x2, x20
				mov	x1, x23
				mov	x0, x24
				bl	memcpy
		.LVL146:
				add	x23, x29, 2184
				mov	x2, x20
				mov	x1, x24
				mov	x0, x23
				bl	memcpy
		.LVL147:
		.LBE284:
		.LBB285:
		.LBB286:
				mov	x2, x20
				mov	x1, x23
				mov	x0, x21
				bl	memcpy
		.LVL148:
				mov	x0, x21
				bl	_imp_printstring
		.LVL149:
		.LBE286:
		.LBE285:
  132       lpos=1; quoted=0
				ldr	w0, [x19, 3416]
				bl	PHEX.7752
		.LVL150:
		.LBB287:
		.LBB288:
				bl	_imp_space
		.LVL151:
				b	.L95
		.LVL152:
		.L197:
		.LBE288:
		.LBE287:
  133       %cycle
  134 next:    %if lpos+quoted=linemax %start; ! line nearly too long: force end
  135             %if quoted=0 %then sym=nl %else sym=quote
				add	w0, w21, w20
				cmp	w0, 80
				bne	.L97
				cbnz	w21, .L98
  136          %else
				mov	w0, 10
				str	w0, [x29, 628]
		.LVL159:
		.LBB293:
		.LBB291:
				bl	_imp_printsymbol
		.LVL160:
		.L99:
		.LBE291:
		.LBE293:
  137             readsymbol(sym)
  138          %finish
  139          printsymbol(sym)
				ldr	w0, [x22, 4]
				str	w0, [x29, 628]
		.LVL154:
		.LBB289:
		.LBB290:
				bl	_imp_printsymbol
		.LVL155:
		.L100:
		.LBE290:
		.LBE289:
  140          %if quoted=0 %start
				cbnz	w21, .L100
				b	.L99
		.LVL165:
		.L101:
  141            quoted=1 %if sym='''' %or sym='"'
				ldr	w0, [x29, 628]
  142            quote=sym %if quoted#0
				cmp	w0, 34
				mov	w1, 39
				ccmp	w0, w1, 4, ne
				bne	.L101
		.L102:
		.LVL161:
  143          %else
				str	w0, [x22, 4]
				b	.L103
		.LVL162:
		.L97:
		.LBB294:
		.LBB295:
				mov	x0, x23
				bl	_imp_readsymbol
		.LVL163:
		.LDL5:
		.LDL6:
		.LBE295:
		.LBE294:
		.LBB296:
		.LBB292:
				ldrb	w0, [x29, 628]
				bl	_imp_printsymbol
		.LVL164:
		.LBE292:
		.LBE296:
  144            quoted=0 %if sym=quote
				ldr	w0, [x22, 4]
				ldr	w1, [x29, 628]
				cmp	w1, w0
				beq	.L101
		.LVL156:
		.L103:
  145          %finish
  146          %if quoted=0 %start
  147             %if sym='{' %start; ! Comment
				ldr	w0, [x29, 628]
				cmp	w0, 123
				beq	.L193
		.L104:
		.LVL166:
		.LBB297:
  148                %cycle
  149                   readsymbol(sym)
  150                   printsymbol(sym)
  151                   %if sym=nl %start
				ldr	w0, [x29, 628]
				cmp	w0, 10
				bne	.L106
  152                      lineno=lineno+1; spaces(18)
				ldr	w0, [x19, 3828]
				add	w0, w0, 1
				str	w0, [x19, 3828]
		.LVL174:
		.LBB306:
		.LBB300:
				mov	w0, w21
				bl	_imp_spaces
		.LVL175:
				b	.L106
		.LVL176:
		.L194:
		.LBE300:
		.LBE306:
  153                   %finish
  154                %repeatuntil sym='}'
				ldr	w0, [x29, 628]
				cmp	w0, 125
				beq	.L197
		.L105:
		.LVL171:
		.LBB301:
		.LBB302:
				mov	x0, x23
				bl	_imp_readsymbol
		.LVL172:
		.LBE302:
		.LBE301:
		.LBB304:
		.LBB305:
				ldrb	w0, [x29, 628]
				bl	_imp_printsymbol
		.LVL173:
		.LBE305:
		.LBE304:
  155                ->next
  156             %finish
				mov	w21, 0
				b	.L96
		.LVL153:
		.L98:
				mov	w21, w24
		.LVL157:
		.L111:
		.L114:
		.L115:
				mov	w20, 1
				mov	w21, 0
				mov	w24, w20
  157             sym=sym-32 %if 'a'<=sym<='z'; semi=0
  158             %if sym=';' %start
				ldr	w0, [x29, 628]
				cmp	w0, 59
				beq	.L195
		.L109:
  159               sym=nl; lineno=lineno-1; semi=1
				mov	w0, 10
				str	w0, [x29, 628]
  160             %finish
				ldr	w0, [x19, 3828]
				sub	w0, w0, #1
				str	w0, [x19, 3828]
  161             %if sym='|' %start
				cmp	w0, 124
				beq	.L196
				str	w24, [x22]
				mov	w21, 0
		.LVL179:
		.L110:
  162               readsymbol(sym) %and printsymbol(sym) %until sym=nl
				sub	w1, w0, #97
				cmp	w1, 25
				bls	.L194
		.LVL167:
		.L108:
		.LBE297:
  163             %finish
  164          %finish
				sub	w0, w0, #32
		.LVL177:
				str	w0, [x29, 628]
				b	.L108
		.LVL178:
		.L195:
  165          lineno=lineno+1 %if sym=nl
				ldr	w1, [x29, 628]
				cmp	w1, 10
				beq	.L110
				ldr	w0, [x29, 628]
				cmp	w0, 10
				bne	.L112
  166          line(lpos)=sym; lpos=lpos+1
				sub	w0, w20, #1
				add	x0, x19, x0, sxtw
				add	x0, x0, 4096
				strb	w1, [x0, 3992]
				str	wzr, [x22]
				ldr	w0, [x19, 3828]
				add	w0, w0, 1
				str	w0, [x19, 3828]
		.LDL7:
				sub	w0, w20, #1
				add	x0, x19, x0, sxtw
				add	x0, x0, 4096
				strb	w25, [x0, 3992]
				ldr	w0, [x19, 3828]
				add	w0, w0, 1
				str	w0, [x19, 3828]
				sub	w0, w20, #1
				add	x0, x19, x0, sxtw
				add	x0, x0, 4096
				mov	w1, 10
				strb	w1, [x0, 3992]
				mov	w25, 10
		.LBB311:
		.LBB303:
				add	x23, x29, 628
				b	.L96
		.LVL187:
		.L198:
		.L118:
		.LBE303:
		.LBE311:
  167       %repeatuntil sym=nl %and quoted=0
				add	w20, w20, 1
		.LVL158:
		.L96:
				mov	w21, 0
		.LVL168:
				b	.L111
		.LVL169:
		.L193:
		.LBB298:
		.LBB299:
				mov	w21, 18
		.LVL170:
				b	.L105
		.L106:
		.LBE299:
		.LBE298:
				add	w20, w20, 1
		.LVL180:
				add	w20, w20, 1
		.LVL185:
		.L117:
  168    %repeatuntil lpos>2; ! non-empty line
				cbnz	w21, .L96
				cmp	w20, 2
				bgt	.L198
		.LVL186:
		.L94:
  169
  170 ! Now decompose line into atoms
  171
				b	.L117
		.LVL181:
		.L196:
		.LBB307:
		.LBB308:
				add	x21, x29, 628
		.LVL182:
		.L112:
				mov	x0, x21
				bl	_imp_readsymbol
		.LVL183:
		.LBE308:
		.LBE307:
		.LBB309:
		.LBB310:
				ldrb	w0, [x29, 628]
				bl	_imp_printsymbol
		.LVL184:
		.LBE310:
		.LBE309:
  172    atompos=1; ifpos=0; lpos=1
				mov	w21, 1
				str	w21, [x19, 3824]
  173 nextatom:
				str	wzr, [x19, 3412]
		.LVL188:
  174    %cycle
  175       sym=line(lpos); lpos=lpos+1
				sub	w0, w21, #1
				add	x0, x19, x0, sxtw
				add	x0, x0, 4096
				ldrb	w1, [x0, 3992]
				mov	w0, w1
				str	w1, [x29, 628]
  176       ->tag %if 'A'<=sym<='Z'
				mov	w21, w22
				mov	w21, w22
				mov	w21, w22
				mov	w21, w22
				mov	w21, w22
				mov	w21, w22
				mov	w21, w22
				mov	w21, w22
				mov	w21, w22
				mov	w21, w22
				mov	w21, w22
				mov	w21, w22
				b	.L148
		.LVL247:
		.L205:
				mov	w21, w22
				add	w22, w21, 1
		.LVL265:
		.LBB318:
  177       ->num %if '0'<=sym<='9'
  178       %if sym=nl %start
				cmp	w1, 10
				beq	.L207
		.L124:
  179         putatom(sep,0); atompos=1; %return
				add	x18, x29, 632
				mov	w1, 0
				mov	w0, 14
		.LVL190:
				bl	PUTATOM.7761
		.LVL191:
  180       %finish
				mov	w0, 1
				str	w0, [x19, 3824]
  181       %if sym=':' %start
				sub	w2, w1, #65
				cmp	w2, 25
				bls	.L120
		.L121:
		.LVL266:
		.LBE318:
		.LBB319:
				cmp	w1, 58
				beq	.L208
		.L125:
  182          putatom(colon,0)
				mov	x18, x25
				mov	w1, 0
				mov	w0, 13
		.LVL195:
				bl	PUTATOM.7761
		.LVL196:
				sub	w2, w1, #48
				cmp	w2, 9
				bls	.L183
		.L123:
		.LBE319:
  183       %finishelseif sym='+' %start
				b	.L119
		.LVL197:
		.L209:
  184         putatom(op,add)
				mov	x18, x25
				mov	w1, 2
				mov	w0, 11
		.LVL198:
				bl	PUTATOM.7761
		.LVL199:
  185       %finishelseif sym='-' %start
				b	.L119
		.LVL200:
		.L210:
				cmp	w1, 43
				beq	.L209
		.L127:
  186         putatom(op,sub)
				mov	x18, x25
				mov	w1, 3
				mov	w0, 11
		.LVL201:
				bl	PUTATOM.7761
		.LVL202:
  187       %finishelseif sym='&' %start
				b	.L119
		.LVL203:
		.L211:
				cmp	w1, 45
				beq	.L210
		.L128:
  188         putatom(op,and)
				mov	x18, x25
				mov	w1, 4
				mov	w0, 11
		.LVL204:
				bl	PUTATOM.7761
		.LVL205:
  189       %finishelseif sym='!' %start
				b	.L119
		.LVL206:
		.L212:
				cmp	w1, 38
				beq	.L211
		.L129:
  190         putatom(op,or)
				mov	x18, x25
				mov	w1, 5
				mov	w0, 11
		.LVL207:
				bl	PUTATOM.7761
		.LVL208:
  191       %finishelseif sym='\' %start
				b	.L119
		.LVL209:
		.L213:
				cmp	w1, 33
				beq	.L212
		.L130:
  192         putatom(op,xor)
				mov	x18, x25
				mov	w1, 6
				mov	w0, 11
		.LVL210:
				bl	PUTATOM.7761
		.LVL211:
  193       %finishelseif sym='*' %start
				b	.L119
		.LVL212:
		.L214:
				cmp	w1, 92
				beq	.L213
		.L131:
  194         putatom(op,mul)
				mov	x18, x25
				mov	w1, 8
				mov	w0, 11
		.LVL213:
				bl	PUTATOM.7761
		.LVL214:
  195       %finishelseif sym='%' %start
				b	.L119
		.LVL215:
		.L215:
				cmp	w1, 42
				beq	.L214
		.L132:
  196         putatom(op,rem)
				mov	x18, x25
				mov	w1, 10
				mov	w0, 11
		.LVL216:
				bl	PUTATOM.7761
		.LVL217:
  197       %finishelseif sym='/' %start
				b	.L119
		.LVL218:
		.L216:
				cmp	w1, 37
				beq	.L215
		.L133:
  198         putatom(op,div)
				mov	x18, x25
				mov	w1, 9
				mov	w0, 11
		.LVL219:
				bl	PUTATOM.7761
		.LVL220:
  199       %finishelseif sym='<' %or sym='>' %start
				b	.L119
		.LVL221:
		.L217:
				cmp	w1, 47
				beq	.L216
		.L134:
  200          %if line(lpos)=sym %start; ! '<<', '>>'
				add	x0, x19, x21, sxtw
				add	x0, x0, 4096
				ldrb	w0, [x0, 3992]
				cmp	w1, w0
				beq	.L217
		.L137:
		.L139:
		.L140:
  201             lpos=lpos+1
				add	w21, w21, 2
		.LVL222:
				and	w0, w1, -3
		.LVL267:
  202             %if sym='<' %then putatom(op,left) %else putatom(op,right)
				cmp	w1, 60
				beq	.L201
		.L138:
				and	w0, w0, 255
				cmp	w0, 60
				bne	.L135
		.L136:
  203          %else; ! '<', '>', '<=', '>='
				mov	x18, x25
				mov	w1, 11
		.LVL226:
				mov	w0, w1
				bl	PUTATOM.7761
		.LVL227:
  204 square:         !+'[', ']', '[=', ']='
				b	.L119
		.LVL228:
		.L218:
  205             %if line(lpos)='=' %start
				add	x0, x19, x21, sxtw
				add	x0, x0, 4096
				ldrb	w0, [x0, 3992]
				cmp	w0, 61
				beq	.L218
		.LVL268:
		.L141:
  206                lpos=lpos+1; sym=sym+128
				mov	x18, x25
				mov	w1, 12
		.LVL223:
				mov	w0, 11
				bl	PUTATOM.7761
		.LVL224:
				b	.L119
		.LVL225:
		.L201:
				add	w22, w21, 2
		.LVL229:
  207             %finish
				add	w1, w1, 128
		.LVL230:
				str	w1, [x29, 628]
		.LVL231:
				b	.L141
		.LVL232:
		.L135:
  208             putatom(comp,sym)
				mov	x18, x25
				ldr	w1, [x29, 628]
				mov	w0, 12
				bl	PUTATOM.7761
		.LVL269:
				mov	w21, w22
				b	.L119
		.LVL270:
		.L186:
				mov	w2, w1
		.LVL271:
  209          %finish
  210       %finishelseif sym='(' %or sym=')' %start
  211         putatom(bracket,sym)
				mov	x18, x25
				mov	w0, 15
				bl	PUTATOM.7761
		.LVL238:
  212       %finishelseif sym='[' %or sym=']' %start
				b	.L119
		.LVL239:
		.L203:
		.L146:
  213          ->square
				sub	w0, w1, #40
				cmp	w0, 1
				bls	.L202
		.L142:
  214       %finishelseif sym='=' %or sym='#' %start
				sub	w0, w1, #91
				and	w0, w0, -3
  215          putatom(comp,sym)
				tst	w0, 255
				beq	.L140
		.L144:
				mov	x18, x25
				mov	w0, 12
				bl	PUTATOM.7761
		.LVL240:
  216       %finishelseif sym='"' %start
				cmp	w1, 35
				mov	w0, 61
				ccmp	w1, w0, 4, ne
				beq	.L203
		.L145:
				b	.L119
		.LVL241:
		.L204:
  217          putatom(string,lpos)
				mov	x18, x25
				mov	w1, w22
		.LVL242:
				mov	w0, 2
				bl	PUTATOM.7761
		.LVL243:
  218          lpos=lpos+1 %while line(lpos)#'"'; ! we know it's there
				cmp	w1, 34
				beq	.L204
		.L147:
  219          lpos=lpos+1
				add	x0, x19, x21, sxtw
				add	x0, x0, 4096
				ldrb	w0, [x0, 3992]
				cmp	w0, 34
				beq	.L184
		.L149:
				add	x0, x19, x22, sxtw
				add	x0, x0, 4096
				ldrb	w0, [x0, 3992]
				cmp	w0, 34
				bne	.L149
		.L148:
				add	w21, w21, 1
		.LVL245:
  220       %finishelseif sym='''' %start
				add	w21, w22, 1
		.LDL8:
		.LVL244:
				mov	w22, w21
				b	.L119
		.LVL246:
		.L184:
  221          sym=line(lpos); lpos=lpos+1 %if sym=''''
				add	x0, x19, x21, sxtw
				add	x0, x0, 4096
				ldrb	w0, [x0, 3992]
				str	w0, [x29, 628]
  222          fault(atom) %if line(lpos+1)#''''
				cmp	w1, 39
				bne	.L150
				add	x0, x19, x22, sxtw
				add	x0, x0, 4096
				ldrb	w0, [x0, 3992]
				cmp	w0, 39
				bne	.L205
		.LVL234:
		.L152:
  223          putatom(constant,sym); lpos=lpos+2
				add	w21, w21, 2
				cmp	w0, 39
				csel	w22, w21, w22, eq
		.LVL233:
		.L151:
				mov	x18, x25
				ldr	w1, [x29, 628]
				mov	w0, 1
				bl	PUTATOM.7761
		.LVL235:
				mov	x18, x19
				mov	w0, 2
				bl	FAULT.7724
		.LVL248:
				b	.L152
		.LVL249:
		.L150:
  224       %else
				add	w21, w22, 2
		.LVL236:
				b	.L119
		.LVL237:
		.L202:
		.L143:
  225          fault(atom) %unless sym=' '
				cmp	w1, 32
				beq	.L119
		.LVL250:
  226       %finish
				mov	x18, x19
				mov	w0, 2
				bl	FAULT.7724
		.LVL251:
				b	.L119
		.LVL252:
		.L183:
		.LBB315:
				mov	w4, 0
		.LBE315:
  227    %repeat
  228 num: i=0; radix=10; ! I accumulates number, default radix is ten
  229    %cycle
				mov	w1, 0
  230       %if sym='_' %start; ! change radix
				mov	w2, 10
				cmp	w0, 95
				beq	.L186
		.L155:
		.LVL259:
		.LBB316:
  231          radix=i; i=0
  232       %finishelseif '9'<sym<'A' %start
				mov	w6, 0
				mov	w5, 1
				b	.L122
		.LVL253:
		.L206:
				cbz	w4, .L158
				str	w0, [x29, 628]
		.LVL254:
				b	.L158
		.LVL255:
		.L160:
				mov	w1, w6
		.LVL272:
				b	.L154
		.LVL273:
		.L120:
  233 endconst: putatom(constant,i); lpos=lpos-1; ->nextatom
  234       %else
				mov	x18, x25
				mov	w0, 1
				bl	PUTATOM.7761
		.LVL263:
  235          sym=sym-7 %if sym>'9'; sym=sym-'0'
				sub	w21, w22, #1
		.LVL264:
		.L119:
  236          ->endconst %unless 0<=sym<radix
				sub	w3, w0, #7
				cmp	w0, 57
				csel	w0, w3, w0, gt
		.LVL260:
		.L159:
		.LBB317:
  237          i=i*radix+sym
				madd	w1, w2, w1, w0
		.LVL256:
		.L154:
  238       %finish
  239       sym=line(lpos); lpos=lpos+1
				sub	w0, w22, #1
				add	x0, x19, x0, sxtw
				add	x0, x0, 4096
				ldrb	w0, [x0, 3992]
				sub	w3, w0, #58
				cmp	w3, 6
				bls	.L206
		.L156:
		.LBE316:
  240    %repeat
				add	w22, w22, 1
		.LVL257:
				mov	w4, w5
		.LVL258:
		.L122:
		.L153:
  241 tag: n1=sym-'A'+1; n2=0; i=1; ! I counts name length
				subs	w0, w0, #48
		.LVL261:
				ccmp	w0, w2, 0, pl
				blt	.L160
				str	w0, [x29, 628]
		.LVL262:
		.L157:
		.L158:
		.LBE317:
  242    %cycle
				sub	w20, w1, #64
		.LVL274:
  243       sym=line(lpos)
				mov	w22, 0
		.LVL275:
				sub	w3, w21, #1
				b	.L161
		.LVL276:
		.L221:
				add	w0, w3, w1
				add	x0, x19, x0, sxtw
				add	x0, x0, 4096
				ldrb	w0, [x0, 3992]
		.LVL319:
		.LBB322:
  244       %if 'A'<=sym<='Z' %start
				mov	w1, 1
  245          sym=sym-'A'+1
				sub	w0, w0, #64
		.LVL277:
  246       %finishelseif '0'<=sym<='9' %start
				b	.L163
		.LVL278:
		.L164:
		.LDL9:
				str	w0, [x29, 628]
		.LVL279:
  247          sym=sym-'0'+27
				sub	w0, w0, #21
		.LVL321:
		.L163:
  248       %else
  249          %if n1=if %start
				cmp	w20, 339
				bne	.L165
				sub	w2, w0, #65
				cmp	w2, 25
				bls	.L221
		.L162:
		.LVL320:
		.LBE322:
		.LBB323:
  250             fault(form) %unless ifpos=0
				ldr	w0, [x19, 3412]
		.LVL280:
				cbnz	w0, .L219
		.LVL281:
		.L166:
  251             ifpos=atompos; putatom(sep,0)
				ldr	w0, [x19, 3824]
				str	w0, [x19, 3412]
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL284:
				b	.L166
		.LVL285:
		.L165:
		.LBB320:
  252          %else; ! Look up in dictionary
				mov	x18, x25
				mov	w1, 0
				mov	w0, 14
				bl	PUTATOM.7761
		.LVL282:
				mov	w21, w23
				b	.L119
		.LVL283:
		.L219:
  253             %for i=tagpos-1,-1,1 %cycle
				sub	w2, w0, #48
				cmp	w2, 9
				bhi	.L164
		.LBE323:
  254                %if tag1(i)=n1 %and tag2(i)=n2 %start
				ldr	w21, [x19, 3408]
		.LVL286:
		.LBB313:
				ldr	w0, [x1, 2608]
				cmp	w20, w0
				bne	.L188
  255                   n1=tagtype(i); n2=tagval(i)
				adrp	x26, :got:_imp_current_file
				ldr	x26, [x26, #:got_lo12:_imp_current_file]
				b	.L119
		.LVL189:
		.L207:
		.LBE312:
				mov	w0, 2
		.LVL287:
				sub	w0, w0, w21
		.LVL288:
		.LBE313:
				tbnz	w0, #31, .L167
				str	x28, [x29, 88]
		.LVL289:
				ldr	x0, [x26]
		.LVL290:
				cbz	x0, .L168
				add	x8, x29, 1672
				bl	_imp_c2istr
		.LVL291:
		.L169:
				adrp	x0, :got:_imp_current_line
				ldr	x0, [x0, #:got_lo12:_imp_current_line]
				ldr	w27, [x0]
				cmp	w27, 0
				mov	w0, 255
				csel	w27, w27, w0, ne
				add	x0, x29, 1928
				str	x0, [x29, 104]
				mov	x8, x0
				adrp	x0, .LC15
				add	x0, x0, :lo12:.LC15
				bl	_imp_c2istr
		.LVL292:
				add	x0, x29, 368
				mov	x28, 256
				mov	x2, x28
				add	x1, x29, 1672
				str	x0, [x29, 96]
				bl	memcpy
		.LVL293:
				add	x0, x29, 112
				mov	x2, x28
				ldr	x1, [x29, 104]
				mov	x28, x0
				bl	memcpy
		.LVL294:
				mov	w5, 0
				mov	w4, 1
				mov	w3, 5
				mov	x2, x28
				mov	w1, w27
				ldr	x0, [x29, 96]
				bl	_signal_event
		.LVL295:
				ldr	x28, [x29, 88]
		.L167:
		.LVL296:
				add	x27, x29, 1160
				mov	x28, 256
				mov	x2, x28
				adrp	x1, .LANCHOR0
		.LVL301:
				add	x1, x1, :lo12:.LANCHOR0
				mov	x0, x27
				bl	memcpy
		.LVL302:
				add	x0, x29, 1416
				mov	x2, x28
				mov	x1, x27
				mov	x27, x0
				bl	memcpy
		.LVL303:
		.LBE314:
				mov	x2, x28
				mov	x1, x27
				add	x0, x29, 1672
				bl	memcpy
		.LVL304:
				b	.L169
		.L173:
		.LVL305:
		.L188:
		.L174:
				ldr	w0, [x1, 1808]
				cmp	w0, w22
				bne	.L188
				ldr	w0, [x1, 1008]
		.LVL307:
  256                   n2=i %if n1=unknown
				ldr	w1, [x1, 208]
		.LVL308:
  257                   putatom(n1,n2)
				mov	x18, x25
				csel	w1, w1, w21, ne
		.LVL310:
				bl	PUTATOM.7761
		.LVL311:
  258                   ->nextatom
				cmp	w21, 1
				bne	.L172
		.LVL297:
		.L171:
		.LBE320:
				cmp	w21, 1
				beq	.L171
		.L172:
				mov	w21, w23
		.LVL312:
				b	.L119
		.LVL313:
		.L220:
		.LBE321:
  259                %finish
				sub	w21, w21, #1
		.LVL306:
				sub	w1, w21, #1
				add	x1, x19, x1, sxtw 2
				cmp	w0, 0
		.L175:
		.LVL309:
  260             %repeat
  261 ! Not found: enter name and details
  262             tag1(tagpos)=n1; tag2(tagpos)=n2
				ldr	w1, [x19, 3408]
				add	x0, x19, x1, sxtw 2
				str	w20, [x0, 2604]
  263             tagtype(tagpos)=unknown; tagval(tagpos)=0
				str	w22, [x0, 1804]
				str	wzr, [x0, 1004]
  264             putatom(unknown,tagpos)
				add	x25, x29, 632
		.LBB312:
				str	wzr, [x0, 204]
				mov	x18, x25
				mov	w0, 0
				bl	PUTATOM.7761
		.LVL298:
  265             %if tagpos>tagmax %then fault(dfull) %else tagpos=tagpos+1
				ldr	w0, [x19, 3408]
				cmp	w0, 200
				bgt	.L220
		.L176:
  266          %finish
				mov	x18, x19
				mov	w0, 13
				bl	FAULT.7724
		.LVL314:
				b	.L176
		.LVL315:
		.L177:
  267          ->nextatom
  268       %finish
				ldr	w0, [x19, 3408]
				add	w0, w0, 1
				str	w0, [x19, 3408]
				mov	w21, w23
		.LVL299:
				b	.L119
		.LVL300:
		.L168:
		.LBB321:
		.LBB314:
  269       %if i<3 %start
				cmp	w1, 2
				bgt	.L177
  270          n1=n1*37+sym
				madd	w20, w20, w24, w0
		.LVL322:
  271       %finishelseif i<6 %start
				b	.L179
		.LFE187:
				.align	2
		CEXPR.7891:
		.LFB194:
  272          n2=n2*37+sym
				mov	w24, 37
				madd	w0, w22, w24, w0
				cmp	w1, 6
				csel	w22, w0, w22, lt
		.LVL316:
		.L178:
		.L179:
  273       %finish
  274       i=i+1; lpos=lpos+1
				add	w1, w1, 1
		.LVL317:
		.L161:
				add	w23, w21, w1
		.LVL318:
  275    %repeat
  276 %end
				adrp	x0, :got:__stack_chk_guard
				ldr	x0, [x0, #:got_lo12:__stack_chk_guard]
				ldr	x1, [x29, 2696]
				ldr	x0, [x0]
				eor	x0, x1, x0
				cbnz	x0, .L200
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
		.LVL192:
				ldp	x23, x24, [sp, 48]
				ldp	x25, x26, [sp, 64]
				ldr	x27, [sp, 80]
				ldp	x29, x30, [sp]
				add	sp, sp, 2704
				ret
		.LVL193:
		.L200:
				str	x28, [x29, 88]
				bl	__stack_chk_fail
		.LVL194:
		.L208:
  277
  278 %routine nextatom
  279    type=atomtype(atompos); val=atomval(atompos)
				ldr	w0, [x18, 3824]
				add	x2, x18, x0, sxtw 2
				ldr	w1, [x2, 3620]
				str	w1, [x18, 204]
  280    atompos=atompos+1 %unless type=sep
				ldr	w2, [x2, 3420]
				str	w2, [x18, 200]
				cmp	w1, 14
				beq	.L1
  281 %end
				add	w0, w0, 1
				str	w0, [x18, 3824]
		.L2:
		.L1:
  282
				ret
		.LFE190:
				.align	2
		OPENBRACKET.7874:
		.LFB191:
  283 %predicate open bracket
  284   %falseunless atomtype(atompos)=bracket %and atomval(atompos)='('
				ldr	w1, [x18, 3824]
				add	x2, x18, x1, sxtw 2
				ldr	w3, [x2, 3620]
				cmp	w3, 15
				beq	.L8
		.L3:
  285   atompos=atompos+1; %true
				ldr	w2, [x2, 3420]
		.L4:
				cmp	w2, 40
				bne	.L3
		.L5:
				add	w1, w1, 1
				str	w1, [x18, 3824]
  286 %end
				ret
		.L8:
				mov	w0, 1
				b	.L3
		.LFE191:
				.align	2
		EQUALSIGN.7884:
		.LFB193:
  287
				mov	w0, 0
  288 %routine close bracket
				stp	x29, x30, [sp, -32]!
				add	x29, sp, 0
				str	x19, [sp, 16]
				mov	x19, x18
				ldrsw	x0, [x18, 3824]
				add	x0, x18, x0, lsl 2
  289   fault(form) %unless atomtype(atompos)=bracket %and atomval(atompos)=')'
				ldr	w1, [x0, 3620]
				cmp	w1, 15
				bne	.L258
  290   atompos=atompos+1
				ldr	w0, [x0, 3420]
				cmp	w0, 41
				beq	.L259
		.L258:
				ldr	w0, [x19, 3824]
				add	w0, w0, 1
				str	w0, [x19, 3824]
  291 %end
  292
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL354:
		.L259:
				ldr	x19, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.LFE192:
				.align	2
		GBYTE.7931:
		.LFB196:
  293 %predicate equal sign
  294   %falseunless atomtype(atompos)=comp %and atomval(atompos)='='
				ldr	w1, [x18, 3824]
				add	x2, x18, x1, sxtw 2
				ldr	w3, [x2, 3620]
				cmp	w3, 12
				beq	.L14
		.L9:
  295   atompos=atompos+1; %true
				ldr	w2, [x2, 3420]
		.L10:
				cmp	w2, 61
				bne	.L9
		.L11:
				add	w1, w1, 1
				str	w1, [x18, 3824]
  296 %end
				ret
		.L14:
				mov	w0, 1
				b	.L9
		.LFE193:
				.align	2
		SATREFS.7975:
		.LFB202:
  297
				mov	w0, 0
  298 %routinespec unary
  299
  300 %integerfn cexpr(%integer must)
		.LVL323:
				sub	sp, sp, #1360
				stp	x29, x30, [sp, 16]
				add	x29, sp, 16
				stp	x19, x20, [sp, 32]
				str	x21, [sp, 48]
				mov	w21, w0
				mov	x19, x18
				adrp	x0, :got:__stack_chk_guard
		.LVL324:
				ldr	x0, [x0, #:got_lo12:__stack_chk_guard]
				ldr	x1, [x0]
				str	x1, [x29, 1336]
				mov	x1,0
  301 %integer value,oper
  302 %switch s(add:right)
  303    nextatom; unary
				bl	NEXTATOM.7870
		.LVL325:
  304    value=val; fault(consterr) %unless type=constant
				mov	x18, x19
				bl	UNARY.7889
		.LVL326:
				ldr	w20, [x19, 200]
		.LVL327:
  305    %cycle
				ldr	w0, [x19, 204]
				cmp	w0, 1
				bne	.L242
		.L223:
		.L224:
  306       %result=value %unless atomtype(atompos)=op
				ldr	w0, [x19, 3824]
				add	x1, x19, x0, sxtw 2
				ldr	w2, [x1, 3620]
				cmp	w2, 11
				beq	.L243
		.LVL328:
		.L222:
				mov	x18, x19
				mov	w0, 3
				bl	FAULT.7724
		.LVL330:
				b	.L224
		.L243:
		.L226:
  307       %if must=0 %start
				cbnz	w21, .L228
  308          %result=value %unless atomtype(atompos+1)=constant
				ldr	w2, [x1, 3624]
				cmp	w2, 1
				bne	.L222
		.L227:
		.L228:
  309       %finish
  310       oper=atomval(atompos); atompos=atompos+1
				ldr	w21, [x1, 3420]
		.LVL331:
  311       nextatom; fault(consterr) %unless type=constant
				add	w0, w0, 1
				str	w0, [x19, 3824]
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL332:
  312       ->s(oper)
				ldr	w0, [x19, 204]
				cmp	w0, 1
				bne	.L245
		.L229:
		.LVL333:
		.LDL10:
  313 s(add):  value=value+val; %continue
				mov	x18, x19
				mov	w0, 3
				bl	FAULT.7724
		.LVL341:
				b	.L229
		.LVL342:
		.L231:
				str	x22, [x29, 40]
		.LBB324:
  314 s(sub):  value=value-val; %continue
  315 s(and):  value=value&val; %continue
  316 s(or):   value=value!val; %continue
  317 s(xor):  value=value!!val; %continue
  318 s(rem):  value=value-value//val*val; %continue
  319 s(div):  value=value//val; %continue
  320 s(mul):  value=value*val; %continue
  321 s(left): value=value<<val; %continue
  322 s(right):value=value>>val
  323    %repeat
  324 %end
  325
  326 %routine unary
				sub	w0, w21, #2
				cmp	w0, 10
				bls	.L230
				adrp	x0, :got:_imp_current_file
				ldr	x0, [x0, #:got_lo12:_imp_current_file]
				ldr	x0, [x0]
				cbz	x0, .L231
				add	x8, x29, 824
				bl	_imp_c2istr
		.LVL334:
		.L232:
				adrp	x0, :got:_imp_current_line
				ldr	x0, [x0, #:got_lo12:_imp_current_line]
				ldr	w20, [x0]
				cmp	w20, 0
				mov	w0, 326
				csel	w20, w20, w0, ne
				add	x19, x29, 48
				mov	x2, 256
				add	x1, x29, 824
				mov	x0, x19
				bl	memcpy
		.LVL335:
				mov	w0, 312
				str	w0, [sp]
				adrp	x7, .LC9
				add	x7, x7, :lo12:.LC9
				mov	w6, w21
				adrp	x5, .LC10
				add	x5, x5, :lo12:.LC10
				mov	w4, w21
				mov	w3, 3
				mov	w2, 6
				mov	w1, w20
				mov	x0, x19
				bl	_signal_eventf
		.LVL336:
		.L230:
		.L234:
				add	x20, x29, 1080
		.LVL343:
				mov	x22, 256
				mov	x2, x22
				adrp	x1, .LANCHOR0
				add	x1, x1, :lo12:.LANCHOR0
				mov	x0, x20
				bl	memcpy
		.LVL344:
				add	x19, x29, 312
				mov	x2, x22
				mov	x1, x20
				mov	x0, x19
				bl	memcpy
		.LVL345:
		.LBE324:
				mov	x2, x22
				mov	x1, x19
				add	x0, x29, 824
				bl	memcpy
		.LVL346:
				ldr	x22, [x29, 40]
				b	.L232
		.L235:
				str	x22, [x29, 40]
		.LBB325:
				stp	x29, x30, [sp, -32]!
				add	x29, sp, 0
				str	x19, [sp, 16]
				mov	x19, x18
		.L249:
		.LVL352:
  327 %integername v
  328   %returnunless type=op %and atomtype(atompos)=constant
				ldr	w0, [x18, 204]
				cmp	w0, 11
				beq	.L256
		.L253:
				ret
		.L256:
				ldrsw	x0, [x18, 3824]
				add	x0, x18, x0, lsl 2
  329   %returnunless val=sub %or val=xor
				adrp	x0, :got:_imp_current_file
				ldr	x0, [x0, #:got_lo12:_imp_current_file]
				ldr	x0, [x0]
				cbz	x0, .L235
				add	x8, x29, 1080
				bl	_imp_c2istr
		.LVL337:
		.L236:
				adrp	x0, :got:_imp_current_line
				ldr	x0, [x0, #:got_lo12:_imp_current_line]
				ldr	w20, [x0]
				cmp	w20, 0
				mov	w0, 329
				csel	w20, w20, w0, ne
				add	x19, x29, 48
				mov	x2, 256
				add	x1, x29, 1080
				mov	x0, x19
				bl	memcpy
		.LVL338:
				mov	w0, 312
				str	w0, [sp]
				adrp	x7, .LC9
				add	x7, x7, :lo12:.LC9
				mov	w6, w21
				adrp	x5, .LC11
				add	x5, x5, :lo12:.LC11
				mov	w4, w21
				mov	w3, 2
				mov	w2, 8
				mov	w1, w20
				mov	x0, x19
				bl	_signal_eventf
		.LVL339:
				add	x19, x29, 1080
				mov	x22, 256
				mov	x2, x22
				adrp	x1, .LANCHOR0
				add	x1, x1, :lo12:.LANCHOR0
				mov	x0, x19
				bl	memcpy
		.LVL347:
				add	x20, x29, 568
				mov	x2, x22
				mov	x1, x19
				mov	x0, x20
				bl	memcpy
		.LVL348:
		.LBE325:
				mov	x2, x22
				mov	x1, x20
				mov	x0, x19
				bl	memcpy
		.LVL349:
				ldr	x22, [x29, 40]
				b	.L236
		.LVL350:
		.L244:
				str	x22, [x29, 40]
				ldr	w1, [x0, 3620]
				cmp	w1, 1
				bne	.L253
		.L248:
				ldr	w1, [x18, 200]
  330   v==atomval(atompos)
				mov	w0, w20
				adrp	x1, :got:__stack_chk_guard
				ldr	x1, [x1, #:got_lo12:__stack_chk_guard]
				ldr	x2, [x29, 1336]
				ldr	x1, [x1]
				eor	x1, x2, x1
				cbnz	x1, .L244
				ldp	x19, x20, [sp, 32]
				ldr	x21, [sp, 48]
				ldp	x29, x30, [sp, 16]
				add	sp, sp, 1360
				ret
		.LVL329:
		.L242:
				b	.L222
		.LVL340:
		.L245:
				bl	__stack_chk_fail
		.LVL351:
		.LFE194:
				.align	2
		UNARY.7889:
		.LFB195:
				cmp	w1, 6
				ccmp	w1, 3, 4, ne
				bne	.L253
  331   v=\v; v=v+1 %if val=sub
				ldr	w2, [x0, 3420]
				mvn	w3, w2
				cmp	w1, 3
				csneg	w2, w3, w2, ne
				str	w2, [x0, 3420]
		.L251:
  332   val=cexpr(0); type=constant
				mov	w0, 0
				bl	CEXPR.7891
		.LVL353:
				str	w0, [x19, 200]
  333 %end
				mov	w0, 1
				str	w0, [x19, 204]
		.L247:
  334
				ldr	x19, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.LFE195:
				.align	2
		CLOSEBRACKET.7879:
		.LFB192:
  335 %routine gbyte(%integer b)
		.LVL355:
				stp	x29, x30, [sp, -32]!
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				mov	w20, w0
				mov	x19, x18
  336   fault(bfull) %if gpos>glamax
				ldr	w0, [x18, 196]
		.LVL356:
				cmp	w0, 499
				bgt	.L264
		.L262:
  337   gla(gpos)=b&255; gpos=gpos+1; gloc=gloc+1
				ldr	w0, [x19, 196]
				add	x1, x19, x0, sxtw
				add	x1, x1, 4096
				strb	w20, [x1, 3492]
				mov	w0, 4
				bl	FAULT.7724
		.LVL359:
				b	.L262
		.LFE196:
				.align	2
		DUMPSTRING.7950:
		.LFB199:
  338 %end
				add	w0, w0, 1
				str	w0, [x19, 196]
  339
				ldr	w0, [x19, 3416]
				add	w0, w0, 1
				str	w0, [x19, 3416]
				ldp	x19, x20, [sp, 16]
		.LVL357:
				ldp	x29, x30, [sp], 32
				ret
		.LVL358:
		.L264:
  340 %routine gword(%integer x)
  341   gbyte(x); gbyte(x>>8)
				mov	x18, x19
				mov	w0, w22
				bl	GBYTE.7931
		.LVL720:
  342 %end
				lsr	w24, w22, 8
				b	.L463
		.LVL715:
		.L546:
		.LBE490:
		.LBE489:
				mov	x18, x19
				mov	w0, w24
				bl	GBYTE.7931
		.LVL721:
		.L465:
		.LBE491:
		.LBE492:
  343
  344 %routine gflush
				sub	sp, sp, #1376
				stp	x29, x30, [sp]
				add	x29, sp, 0
				adrp	x0, :got:__stack_chk_guard
				ldr	x0, [x0, #:got_lo12:__stack_chk_guard]
				ldr	x1, [x0]
				str	x1, [x29, 1368]
				mov	x1,0
  345 %integer i
  346   %returnif gpos=0
				ldr	w0, [x18, 196]
				cbnz	w0, .L59
		.L46:
  347   selectoutput(object); printsymbol(2); printsymbol(4)
  348   printsymbol(gpos&255); printsymbol(gpos>>8&255)
  349   printsymbol(gla(i)) %for i=0,1,gpos-1
  350   gpos=0
				ldr	w22, [x20, 196]
		.LVL49:
				str	wzr, [x20, 196]
				ldp	x19, x20, [x29, 16]
				ldp	x21, x22, [x29, 32]
  351 %end
				subs	w19, w22, #1
		.LVL50:
				bmi	.L61
		.L49:
		.LVL51:
				b	.L46
		.LVL57:
		.L61:
				stp	x23, x24, [x29, 48]
				stp	x25, x26, [x29, 64]
		.LBB242:
				adrp	x0, :got:_imp_current_file
				ldr	x0, [x0, #:got_lo12:_imp_current_file]
				ldr	x0, [x0]
				cbz	x0, .L50
				add	x8, x29, 856
				bl	_imp_c2istr
		.LVL58:
		.L51:
				adrp	x0, :got:_imp_current_line
				ldr	x0, [x0, #:got_lo12:_imp_current_line]
				ldr	w23, [x0]
				cmp	w23, 0
				mov	w0, 351
				csel	w23, w23, w0, ne
				add	x25, x29, 1112
				mov	x8, x25
				adrp	x0, .LC12
				add	x0, x0, :lo12:.LC12
				bl	_imp_c2istr
		.LVL59:
				add	x21, x29, 336
				mov	x26, 256
				mov	x2, x26
				add	x1, x29, 856
				mov	x0, x21
				bl	memcpy
		.LVL60:
				add	x24, x29, 80
				mov	x2, x26
				mov	x1, x25
				mov	x0, x24
				bl	memcpy
		.LVL61:
				mov	w5, 0
				mov	w4, 1
				mov	w3, 5
				mov	x2, x24
				mov	w1, w23
				mov	x0, x21
				bl	_signal_event
		.LVL62:
				ldp	x23, x24, [x29, 48]
				ldp	x25, x26, [x29, 64]
				b	.L49
		.L50:
		.LBB241:
				add	x23, x29, 1112
				mov	x24, 256
				mov	x2, x24
				adrp	x1, .LANCHOR0
				add	x1, x1, :lo12:.LANCHOR0
				mov	x0, x23
				bl	memcpy
		.LVL63:
				add	x21, x29, 600
				mov	x2, x24
				mov	x1, x23
				mov	x0, x21
				bl	memcpy
		.LVL64:
		.LBE241:
				mov	x2, x24
				mov	x1, x21
				add	x0, x29, 856
				bl	memcpy
		.LVL65:
				b	.L51
		.LVL66:
		.L60:
				stp	x19, x20, [x29, 16]
				stp	x21, x22, [x29, 32]
				stp	x23, x24, [x29, 48]
				stp	x25, x26, [x29, 64]
		.LBE242:
  352
				adrp	x0, :got:__stack_chk_guard
				ldr	x0, [x0, #:got_lo12:__stack_chk_guard]
				ldr	x1, [x29, 1368]
				ldr	x0, [x0]
				eor	x0, x1, x0
				cbnz	x0, .L60
				ldp	x29, x30, [sp]
				add	sp, sp, 1376
				ret
		.L59:
				stp	x19, x20, [x29, 16]
				stp	x21, x22, [x29, 32]
				mov	x20, x18
		.L48:
		.LVL43:
		.LBB228:
		.LBB229:
				adrp	x0, :got:_imp_OutStream
				ldr	x0, [x0, #:got_lo12:_imp_OutStream]
				mov	w1, 1
				str	w1, [x0]
				adrp	x0, :got:_imp_outfile
				ldr	x0, [x0, #:got_lo12:_imp_outfile]
				ldr	x1, [x0, 296]
				adrp	x0, :got:_imp_OutFile
				ldr	x0, [x0, #:got_lo12:_imp_OutFile]
				str	x1, [x0]
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				add	x0, x0, 256
				bl	check_outstream
		.LVL44:
		.LBE229:
		.LBE228:
		.LBB230:
		.LBB231:
				mov	w0, 2
				bl	_imp_printsymbol
		.LVL45:
		.LBE231:
		.LBE230:
		.LBB232:
		.LBB233:
				mov	w0, 4
				bl	_imp_printsymbol
		.LVL46:
		.LBE233:
		.LBE232:
		.LBB234:
		.LBB235:
				ldrb	w0, [x20, 196]
				bl	_imp_printsymbol
		.LVL47:
		.LBE235:
		.LBE234:
		.LBB236:
		.LBB237:
				ldrb	w0, [x20, 197]
				bl	_imp_printsymbol
		.LVL48:
		.LBE237:
		.LBE236:
		.LBB238:
				bl	__stack_chk_fail
		.LVL67:
		.LFE198:
				.align	2
		FLUSH.7962:
		.LFB201:
  353 %routine dumpstring(%integer p)
		.LVL360:
				stp	x29, x30, [sp, -48]!
				add	x29, sp, 0
				str	x21, [sp, 32]
				mov	x21, x18
		.LVL361:
  354 %integer l
				cmn	w19, #1
				beq	.L53
				add	x19, x20, 4096
				add	x19, x19, 3492
		.LVL52:
				add	x21, x20, 4096
				add	x21, x21, 3493
				sub	w22, w22, #1
		.LVL53:
				add	x21, x21, x22
		.LVL54:
		.L54:
		.LBB239:
		.LBB240:
				ldrb	w0, [x19], 1
		.LVL55:
				bl	_imp_printsymbol
		.LVL56:
		.LBE240:
		.LBE239:
				cmp	x19, x21
				bne	.L54
		.L53:
		.LBE238:
  355   l=0
				mov	w19, 0
		.LVL362:
		.L267:
  356   l=l+1 %and p=p+1 %while line(p)#'"'
  357   gbyte(l); p=p-l
				sub	w1, w0, #1
				add	x1, x18, x1, sxtw
				add	x1, x1, 4096
				ldrb	w1, [x1, 3992]
				cmp	w1, 34
				beq	.L266
				stp	x19, x20, [x29, 16]
				add	x0, x21, x0, sxtw
				add	x0, x0, 4096
				ldrb	w1, [x0, 3992]
				cmp	w1, 34
				bne	.L267
		.L268:
				mov	x18, x21
				mov	w0, w19
				bl	GBYTE.7931
		.LVL365:
				mov	w0, 0
		.LVL374:
				bl	GBYTE.7931
		.LVL375:
				b	.L265
		.LVL376:
		.L274:
				ldp	x19, x20, [x29, 16]
		.LVL377:
				b	.L265
		.LFE199:
				.align	2
		POPTEXT.7996:
		.LFB205:
  358   gbyte(line(p)) %and p=p+1 %and l=l-1 %while l>0
				add	w19, w19, 1
		.LVL363:
				sub	w0, w20, w19
		.LVL366:
  359 %end
				add	w20, w0, 1
		.LDL11:
		.LVL364:
				mov	w0, w20
				cmp	w19, 0
				ble	.L274
				sub	w20, w0, #1
		.LVL367:
				sub	w19, w19, #1
		.LVL368:
				add	w19, w19, w0
		.LVL369:
		.L270:
				cmp	w19, w20
				bne	.L270
  360
				add	x0, x21, x20, sxtw
				add	x0, x0, 4096
				mov	x18, x21
				ldrb	w0, [x0, 3992]
				bl	GBYTE.7931
		.LVL370:
		.LDL12:
				add	w20, w20, 1
		.LVL371:
				ldr	x21, [sp, 32]
				ldp	x29, x30, [sp], 48
				ret
		.L269:
		.LVL373:
		.L266:
  361 %routine dump(%integer byte)
		.LVL384:
				stp	x29, x30, [sp, -32]!
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				mov	w20, w0
				mov	x19, x18
  362    fault(bfull) %if cpos>codemax
				ldr	w0, [x18, 192]
		.LVL385:
				cmp	w0, 3499
				bgt	.L284
		.L282:
  363    code(cpos)=byte&255; cpos=cpos+1; cloc=cloc+1
				ldr	w0, [x19, 192]
				add	x1, x19, x0, sxtw
				strb	w20, [x1, 4088]
				mov	w0, 4
				bl	FAULT.7724
		.LVL388:
				b	.L282
		.LFE200:
				.align	2
		RETURN.8110:
		.LFB211:
  364 %end
				ldp	x19, x20, [x29, 16]
		.LVL372:
		.L265:
				add	w0, w0, 1
				str	w0, [x19, 192]
  365
				ldr	w0, [x19, 3420]
				add	w0, w0, 1
				str	w0, [x19, 3420]
				ldp	x19, x20, [sp, 16]
		.LVL386:
				ldp	x29, x30, [sp], 32
				ret
		.LVL387:
		.L284:
  366 %routine flush
				sub	sp, sp, #1376
				stp	x29, x30, [sp]
				add	x29, sp, 0
				adrp	x0, :got:__stack_chk_guard
				ldr	x0, [x0, #:got_lo12:__stack_chk_guard]
				ldr	x1, [x0]
				str	x1, [x29, 1368]
				mov	x1,0
  367 %integer i
  368    %returnif cpos=0
				ldr	w0, [x18, 192]
				cbnz	w0, .L75
		.L62:
  369    selectoutput(object); printsymbol(1); printsymbol(4)
  370    printsymbol(cpos&255); printsymbol(cpos>>8&255)
  371    printsymbol(code(i)) %for i=0,1,cpos-1
  372    cpos=0
				ldr	w22, [x20, 192]
		.LVL74:
				str	wzr, [x20, 192]
				ldp	x19, x20, [x29, 16]
				ldp	x21, x22, [x29, 32]
  373 %end
				subs	w19, w22, #1
		.LVL75:
				bmi	.L77
		.L65:
		.LVL76:
				b	.L62
		.LVL82:
		.L77:
				stp	x23, x24, [x29, 48]
				stp	x25, x26, [x29, 64]
		.LBB257:
				adrp	x0, :got:_imp_current_file
				ldr	x0, [x0, #:got_lo12:_imp_current_file]
				ldr	x0, [x0]
				cbz	x0, .L66
				add	x8, x29, 856
				bl	_imp_c2istr
		.LVL83:
		.L67:
				adrp	x0, :got:_imp_current_line
				ldr	x0, [x0, #:got_lo12:_imp_current_line]
				ldr	w23, [x0]
				cmp	w23, 0
				mov	w0, 373
				csel	w23, w23, w0, ne
				add	x25, x29, 1112
				mov	x8, x25
				adrp	x0, .LC13
				add	x0, x0, :lo12:.LC13
				bl	_imp_c2istr
		.LVL84:
				add	x21, x29, 336
				mov	x26, 256
				mov	x2, x26
				add	x1, x29, 856
				mov	x0, x21
				bl	memcpy
		.LVL85:
				add	x24, x29, 80
				mov	x2, x26
				mov	x1, x25
				mov	x0, x24
				bl	memcpy
		.LVL86:
				mov	w5, 0
				mov	w4, 1
				mov	w3, 5
				mov	x2, x24
				mov	w1, w23
				mov	x0, x21
				bl	_signal_event
		.LVL87:
				ldp	x23, x24, [x29, 48]
				ldp	x25, x26, [x29, 64]
				b	.L65
		.L66:
		.LBB256:
				add	x23, x29, 1112
				mov	x24, 256
				mov	x2, x24
				adrp	x1, .LANCHOR0
				add	x1, x1, :lo12:.LANCHOR0
				mov	x0, x23
				bl	memcpy
		.LVL88:
				add	x21, x29, 600
				mov	x2, x24
				mov	x1, x23
				mov	x0, x21
				bl	memcpy
		.LVL89:
		.LBE256:
				mov	x2, x24
				mov	x1, x21
				add	x0, x29, 856
				bl	memcpy
		.LVL90:
				b	.L67
		.LVL91:
		.L76:
				stp	x19, x20, [x29, 16]
				stp	x21, x22, [x29, 32]
				stp	x23, x24, [x29, 48]
				stp	x25, x26, [x29, 64]
		.LBE257:
  374
				adrp	x0, :got:__stack_chk_guard
				ldr	x0, [x0, #:got_lo12:__stack_chk_guard]
				ldr	x1, [x29, 1368]
				ldr	x0, [x0]
				eor	x0, x1, x0
				cbnz	x0, .L76
				ldp	x29, x30, [sp]
				add	sp, sp, 1376
				ret
		.L75:
				stp	x19, x20, [x29, 16]
				stp	x21, x22, [x29, 32]
				mov	x20, x18
		.L64:
		.LVL68:
		.LBB243:
		.LBB244:
				mov	w19, 1
				adrp	x0, :got:_imp_OutStream
				ldr	x0, [x0, #:got_lo12:_imp_OutStream]
				str	w19, [x0]
				adrp	x0, :got:_imp_outfile
				ldr	x0, [x0, #:got_lo12:_imp_outfile]
				ldr	x1, [x0, 296]
				adrp	x0, :got:_imp_OutFile
				ldr	x0, [x0, #:got_lo12:_imp_OutFile]
				str	x1, [x0]
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				add	x0, x0, 256
				bl	check_outstream
		.LVL69:
		.LBE244:
		.LBE243:
		.LBB245:
		.LBB246:
				mov	w0, w19
				bl	_imp_printsymbol
		.LVL70:
		.LBE246:
		.LBE245:
		.LBB247:
		.LBB248:
				mov	w0, 4
				bl	_imp_printsymbol
		.LVL71:
		.LBE248:
		.LBE247:
		.LBB249:
		.LBB250:
				ldrb	w0, [x20, 192]
				bl	_imp_printsymbol
		.LVL72:
		.LBE250:
		.LBE249:
		.LBB251:
		.LBB252:
				ldrb	w0, [x20, 193]
				bl	_imp_printsymbol
		.LVL73:
		.LBE252:
		.LBE251:
		.LBB253:
				bl	__stack_chk_fail
		.LVL92:
		.LFE201:
				.align	2
		FAULT.7724:
		.LFB186:
  375 %routine satrefs(%integer ref,val)
		.LVL0:
  376 %integer abs,rel,disp
				cmn	w19, #1
				beq	.L69
				add	x19, x20, 4088
		.LVL77:
				add	x21, x20, 4089
				sub	w22, w22, #1
		.LVL78:
				add	x21, x21, x22
		.LVL79:
		.L70:
		.LBB254:
		.LBB255:
				ldrb	w0, [x19], 1
		.LVL80:
				bl	_imp_printsymbol
		.LVL81:
		.LBE255:
		.LBE254:
				cmp	x19, x21
				bne	.L70
		.L69:
		.LBE253:
  377    %while ref#0 %cycle
  378      rel=ref; abs=rel-cloc+cpos; disp=val-rel-2
				cbz	w0, .L15
				adds	w0, w0, w5, lsl 8
		.LVL8:
				bne	.L17
		.L16:
		.LVL9:
		.L15:
  379      ref=code(abs+1)<<8+code(abs)
				ldr	w7, [x18, 3420]
				ldr	w6, [x18, 192]
		.LVL1:
		.L17:
				sub	w3, w0, w7
				add	w3, w3, w6
		.LVL2:
				add	w4, w3, 1
				add	x4, x18, x4, sxtw
				ldrb	w5, [x4, 4088]
				add	x3, x18, x3, sxtw
		.LVL5:
				ldrb	w0, [x3, 4088]
		.LVL6:
				strb	w2, [x3, 4088]
  380      code(abs)=disp&255; code(abs+1)=disp>>8&255
				sub	w0, w1, w0
		.LVL3:
				sub	w2, w0, #2
		.LVL4:
  381    %repeat
				lsr	w2, w2, 8
		.LVL7:
				strb	w2, [x4, 4088]
		.LDL1:
  382 %end
  383
				ret
		.LFE202:
				.align	2
		GETSTRING.8171:
		.LFB216:
  384 %routine labelref(%integer type,val)
		.LVL401:
				stp	x29, x30, [sp, -48]!
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				mov	w20, w1
				mov	x19, x18
  385 %integer tvv
  386    %if type=label %start
				cmp	w0, 3
				beq	.L303
		.L299:
				str	x21, [x29, 32]
  387       val=val-(cloc+2)
				ldr	w0, [x18, 3420]
		.LVL409:
				add	w0, w0, 2
				sub	w20, w1, w0
		.LVL410:
  388       dump(val); dump(val>>8)
				mov	w0, w20
				bl	DUMP.7958
		.LVL411:
  389    %else
				mov	x18, x19
				lsr	w0, w20, 8
				bl	DUMP.7958
		.LVL412:
				b	.L298
		.LVL413:
		.L304:
  390       fault(form) %unless type=unknown
				cbnz	w0, .L304
		.LVL402:
		.L301:
				add	x20, x19, x20, sxtw 2
		.LVL403:
  391       tvv=tagval(val)
				ldr	w21, [x20, 204]
		.LVL404:
				mov	w0, 5
		.LVL414:
				bl	FAULT.7724
		.LVL415:
				b	.L301
		.LFE203:
				.align	2
		DIRECT.8051:
		.LFB208:
  392       dump(tvv); dump(tvv>>8)
				mov	x18, x19
				mov	w0, w21
				bl	DUMP.7958
		.LVL405:
  393       tagval(val)=cloc-2
				mov	x18, x19
				lsr	w0, w21, 8
				bl	DUMP.7958
		.LVL406:
				ldr	w0, [x19, 3420]
				sub	w0, w0, #2
				str	w0, [x20, 204]
				ldr	x21, [x29, 32]
		.LVL407:
		.L300:
		.L298:
  394    %finish
  395 %end
  396
				ldp	x19, x20, [sp, 16]
				ldp	x29, x30, [sp], 48
				ret
		.LVL408:
		.L303:
  397 %routine pushtext(%integer t,v)
		.LVL379:
				stp	x29, x30, [sp, -48]!
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				str	x21, [sp, 32]
				mov	w21, w0
				mov	w20, w1
				mov	x19, x18
  398   textlevel=textlevel+1
				ldr	w0, [x18, 188]
		.LVL380:
				add	w0, w0, 1
				str	w0, [x18, 188]
  399   fault(complex) %if textlevel>textmax
				cmp	w0, 20
				ble	.L279
  400   texttype(textlevel)=t; textval(textlevel)=v
				mov	w0, 1
				bl	FAULT.7724
		.LVL381:
		.L279:
				ldrsw	x0, [x19, 188]
				add	x19, x19, x0, lsl 2
				str	w21, [x19, 104]
  401 %end
				str	w20, [x19, 24]
  402
				ldp	x19, x20, [sp, 16]
		.LVL382:
				ldr	x21, [sp, 32]
		.LVL383:
				ldp	x29, x30, [sp], 48
				ret
		.LFE204:
				.align	2
		DUMP.7958:
		.LFB200:
  403 %routine poptext
				stp	x29, x30, [sp, -32]!
				add	x29, sp, 0
				str	x19, [sp, 16]
				mov	x19, x18
  404   fault(context) %if textlevel=0
				ldr	w0, [x18, 188]
				cbnz	w0, .L276
  405   type=texttype(textlevel); val=textval(textlevel)
				mov	w0, 16
				bl	FAULT.7724
		.LVL378:
		.L276:
				ldr	w0, [x19, 188]
				add	x1, x19, x0, sxtw 2
				ldr	w2, [x1, 104]
				str	w2, [x19, 204]
				sub	w0, w0, #1
  406   textlevel=textlevel-1
				ldr	w1, [x1, 24]
				str	w1, [x19, 200]
				str	w0, [x19, 188]
  407 %end
  408
				ldr	x19, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.LFE205:
				.align	2
		PUSHTEXT.7992:
		.LFB204:
  409 %routinespec expr
  410
  411 %constinteger pushax=16_50,popax=16_58
  412
  413 %routine call(%integer t,v)
		.LVL514:
				stp	x29, x30, [sp, -48]!
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				str	x21, [sp, 32]
				mov	w21, w0
				mov	w20, w1
				mov	x19, x18
  414   type=atomtype(atompos)
				ldr	w0, [x18, 3824]
		.LVL515:
				sub	w0, w0, #1
				add	x0, x18, x0, sxtw 2
				ldr	w0, [x0, 3624]
				str	w0, [x18, 204]
  415   %if type#op %start
				sub	w1, w0, #11
		.LVL516:
				cmp	w1, 1
				bls	.L367
  416     %cycle
  417       %exitif type=sep %or type=comp
  418       expr; dump(pushax); type=atomtype(atompos)
				cmp	w0, 14
				beq	.L367
				str	x22, [x29, 40]
				mov	x18, x19
				bl	EXPR.8000
		.LVL517:
				and	w0, w0, -3
				cmp	w0, 12
				bne	.L365
		.L364:
		.L366:
				ldr	x22, [x29, 40]
		.L367:
  419     %repeat
				mov	w22, 80
		.L365:
				mov	x18, x19
				mov	w0, w22
				bl	DUMP.7958
		.LVL518:
  420   %finish
				ldr	w0, [x19, 3824]
				sub	w0, w0, #1
				add	x0, x19, x0, sxtw 2
				ldr	w0, [x0, 3624]
				str	w0, [x19, 204]
		.LDL17:
  421   %if t=spec %start
				cmp	w21, 10
				beq	.L372
		.L368:
  422     dump(16_FF); dump(16_1e); dump(v); dump(v>>8);  !Xcall
				mov	x18, x19
				mov	w0, 255
				bl	DUMP.7958
		.LVL525:
  423   %else
				mov	x18, x19
				mov	w0, 30
				bl	DUMP.7958
		.LVL526:
				b	.L363
		.LFE206:
				.align	2
		COND.8245:
		.LFB218:
  424     dump(16_0e); dump(16_e8); labelref(label,v);    !PushCs, Call
				mov	x18, x19
				mov	w0, 14
				bl	DUMP.7958
		.LVL519:
				mov	x18, x19
				mov	w0, w20
				bl	DUMP.7958
		.LVL527:
  425   %finish
				mov	x18, x19
				mov	w0, 232
				bl	DUMP.7958
		.LVL520:
				mov	x18, x19
				lsr	w0, w20, 8
				bl	DUMP.7958
		.LVL528:
  426 %end
				mov	x18, x19
				mov	w1, w20
				mov	w0, 3
				bl	LABELREF.7984
		.LVL521:
		.L369:
		.L363:
  427
				ldp	x19, x20, [sp, 16]
		.LVL522:
				ldr	x21, [sp, 32]
		.LVL523:
				ldp	x29, x30, [sp], 48
				ret
		.LVL524:
		.L372:
  428 %routine immediate(%integer op,val)
		.LVL16:
				sub	sp, sp, #1360
				stp	x29, x30, [sp, 16]
				add	x29, sp, 16
				stp	x19, x20, [sp, 32]
				str	x21, [sp, 48]
				mov	w21, w0
				adrp	x0, :got:__stack_chk_guard
		.LVL17:
				ldr	x0, [x0, #:got_lo12:__stack_chk_guard]
				ldr	x1, [x0]
				str	x1, [x29, 1336]
				mov	x1,0
		.LVL18:
		.LDL3:
  429 %switch s(load:right)
  430   ->s(op)
  431 s(load): dump(16_b8); ->imm
  432 s(add):  dump(16_05); ->imm
  433 s(sub):  dump(16_2d); ->imm
  434 s(and):  dump(16_25); ->imm
  435 s(or):   dump(16_0d); ->imm
  436 s(xor):  dump(16_35); ->imm
  437 s(cmp):  dump(16_3d)
  438 imm: dump(val); dump(val>>8); %return
  439 s(left):
  440 s(right):
  441   %if val=1 %start
  442     val=16_d1
  443   %else
  444     dump(16_b1); dump(val&15);  !Mov CL,nn
  445     val=16_d3
  446   %finish
  447   dump(val)
  448   %if op=left %then dump(16_e0) %else dump(16_e8)
  449   %return
  450 s(mul):s(div):s(rem):
  451   dump(16_b9); dump(val); dump(val>>8);  !Mov CX,nn
  452   dump(16_99) %unless op=mul;            !Cwd
  453   dump(16_f7)
  454   %if op=mul %then dump(16_e9) %else dump(16_f9)
  455   %returnunless op=rem
  456   dump(16_8b); dump(16_c2);  !Mov ax,dx
  457 %end
  458
  459 %routine direct(%integer op,type,val,index)
		.LVL416:
				stp	x29, x30, [sp, -64]!
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				str	x22, [sp, 40]
				mov	w20, w0
				mov	w22, w2
				mov	x19, x18
  460 %ownintegerarray code(load:lea)=
				sub	w0, w21, #1
				cmp	w0, 11
				bls	.L27
				adrp	x0, :got:_imp_current_file
				ldr	x0, [x0, #:got_lo12:_imp_current_file]
				ldr	x0, [x0]
				cbz	x0, .L28
				add	x8, x29, 824
				bl	_imp_c2istr
		.LVL19:
		.L29:
				adrp	x0, :got:_imp_current_line
				ldr	x0, [x0, #:got_lo12:_imp_current_line]
				ldr	w20, [x0]
				cmp	w20, 0
				mov	w0, 460
				csel	w20, w20, w0, ne
				add	x19, x29, 48
				mov	x2, 256
				add	x1, x29, 824
				mov	x0, x19
				bl	memcpy
		.LVL20:
				mov	w0, 430
				str	w0, [sp]
				adrp	x7, .LC9
				add	x7, x7, :lo12:.LC9
				mov	w6, w21
				adrp	x5, .LC10
				add	x5, x5, :lo12:.LC10
				mov	w4, w21
				mov	w3, 3
				mov	w2, 6
				mov	w1, w20
				mov	x0, x19
				bl	_signal_eventf
		.LVL21:
		.L27:
		.L31:
				add	x20, x29, 1080
				mov	x22, 256
				mov	x2, x22
				adrp	x1, .LANCHOR0
				add	x1, x1, :lo12:.LANCHOR0
				mov	x0, x20
				bl	memcpy
		.LVL27:
				add	x19, x29, 312
				mov	x2, x22
				mov	x1, x20
				mov	x0, x19
				bl	memcpy
		.LVL28:
		.LBE224:
				mov	x2, x22
				mov	x1, x19
				add	x0, x29, 824
				bl	memcpy
		.LVL29:
				ldr	x22, [x29, 40]
				b	.L29
		.L32:
				str	x22, [x29, 40]
		.LBB225:
  461   16_8a, 16_02, 16_2a, 16_22, 16_0a,
  462   16_32, 16_3a, 16_28, 16_38, 16_30,
  463   16_e0, 16_e8, 16_88, 16_8d
				adrp	x0, :got:_imp_current_file
				ldr	x0, [x0, #:got_lo12:_imp_current_file]
				ldr	x0, [x0]
				cbz	x0, .L32
				add	x8, x29, 1080
				bl	_imp_c2istr
		.LVL22:
		.L33:
				adrp	x0, :got:_imp_current_line
				ldr	x0, [x0, #:got_lo12:_imp_current_line]
				ldr	w20, [x0]
				cmp	w20, 0
				mov	w0, 463
				csel	w20, w20, w0, ne
				add	x19, x29, 48
				mov	x2, 256
				add	x1, x29, 1080
				mov	x0, x19
				bl	memcpy
		.LVL23:
				mov	w0, 430
				str	w0, [sp]
				adrp	x7, .LC9
				add	x7, x7, :lo12:.LC9
				mov	w6, w21
				adrp	x5, .LC11
				add	x5, x5, :lo12:.LC11
				mov	w4, w21
				mov	w3, 2
				mov	w2, 8
				mov	w1, w20
				mov	x0, x19
				bl	_signal_eventf
		.LVL24:
				add	x19, x29, 1080
				mov	x22, 256
				mov	x2, x22
				adrp	x1, .LANCHOR0
				add	x1, x1, :lo12:.LANCHOR0
				mov	x0, x19
				bl	memcpy
		.LVL30:
				add	x20, x29, 568
				mov	x2, x22
				mov	x1, x19
				mov	x0, x20
				bl	memcpy
		.LVL31:
		.LBE225:
				mov	x2, x22
				mov	x1, x20
				mov	x0, x19
				bl	memcpy
		.LVL32:
				ldr	x22, [x29, 40]
				b	.L33
		.L39:
				str	x22, [x29, 40]
  464 %integer oper,extra
				adrp	x0, :got:__stack_chk_guard
				ldr	x0, [x0, #:got_lo12:__stack_chk_guard]
				ldr	x1, [x29, 1336]
				ldr	x0, [x0]
				eor	x0, x1, x0
				cbnz	x0, .L39
				ldp	x19, x20, [sp, 32]
				ldr	x21, [sp, 48]
		.LVL25:
				ldp	x29, x30, [sp, 16]
				add	sp, sp, 1360
				ret
		.LVL26:
		.L28:
				str	x22, [x29, 40]
		.LBB224:
				bl	__stack_chk_fail
		.LVL33:
		.LFE207:
				.align	2
		PHEX.7752:
		.LFB188:
  465   immediate(op,val) %andreturnif type=constant
				cmp	w1, 1
				beq	.L336
		.L306:
				str	x21, [x29, 32]
				stp	x23, x24, [x29, 48]
				mov	w21, w1
				mov	w24, w3
  466   oper=code(op)
				adrp	x0, .LANCHOR0
		.LVL417:
				add	x0, x0, :lo12:.LANCHOR0
				add	x0, x0, 1048
				sub	w1, w20, #1
		.LVL418:
				ldr	w23, [x0, w1, sxtw 2]
		.LVL419:
				mov	w1, w2
		.LVL437:
				bl	IMMEDIATE.8014
		.LVL438:
				mov	w0, w23
  467   ->shift %if op=left %or op=right
				b	.L305
		.LVL439:
		.L330:
  468   extra=0; extra=oper %and oper=16_f6 %if op=mul
				sub	w0, w20, #11
				cmp	w0, 1
				bls	.L325
		.L309:
		.LVL420:
				mov	w23, 0
		.LVL440:
				b	.L310
		.LVL441:
		.L337:
  469   %if op=div %or op=rem %start
				cmp	w20, 8
				beq	.L310
		.L311:
  470     %if type&wordbit#0 %then dump(16_99) %else dump(16_98)
				sub	w0, w20, #9
				cmp	w0, 1
				bhi	.L330
		.L312:
  471     extra=oper; oper=16_f6
				mov	w0, 246
				mov	w0, 153
				bl	DUMP.7958
		.LVL421:
		.LDL13:
  472   %finish
				mov	w0, 246
		.LVL422:
		.L310:
		.LDL14:
  473   oper=oper+1 %if type&wordbit#0
  474   dump(oper)
				mov	x18, x19
				add	w0, w0, 1
		.LVL423:
				bl	DUMP.7958
		.LVL424:
  475   %if type=bx %then dump(16_c3+extra) %andreturn
				cmp	w21, 17
				beq	.L337
		.L313:
  476   %if type=unknown %start
				cbz	w21, .L338
		.L314:
				mov	x18, x19
				add	w0, w23, 195
				bl	DUMP.7958
		.LVL442:
  477     tagtype(val)=var+wordbit
				ldr	x21, [x29, 32]
		.LVL443:
				ldp	x23, x24, [x29, 48]
		.LVL444:
				b	.L305
		.LVL445:
		.L338:
				add	x0, x19, x22, sxtw 2
				mov	w21, 5
		.LVL446:
				str	w21, [x0, 1004]
  478     tagval(val)=-2
				mov	w1, -2
				str	w1, [x0, 204]
  479     fault(varund)
				mov	x18, x19
				mov	w0, 12
				bl	FAULT.7724
		.LVL447:
  480   %finish
  481   fault(form) %unless type&varmask=var
  482   %if type&glabit=0 %start
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL425:
		.LDL15:
				tbz	x21, 0, .L315
		.L319:
		.L322:
		.L317:
		.L316:
				mov	x18, x19
				mov	w0, w21
				bl	FAULT.7724
		.LVL448:
		.L315:
		.LBB327:
  483     %if -128<=val<=127 %then oper=16_42 %else oper=16_82
  484     oper=oper+4 %if index=0
  485   %else
				add	w1, w0, 4
				cmp	w24, 0
				csel	w0, w1, w0, eq
		.LVL450:
		.L323:
  486     %if index=0 %start
				cbz	w24, .L320
		.L321:
		.LVL426:
		.LBB326:
  487       oper=6
				mov	w0, 6
  488     %finishelseif -128<=val<=127 %start
				add	w0, w22, 128
		.LBE327:
  489       oper=16_44
  490     %else
  491       oper=16_84
				cmp	w0, 256
				mov	w0, 68
				mov	w1, 132
				csel	w0, w0, w1, cc
		.LVL427:
		.L320:
  492     %finish
  493   %finish
				cmp	w0, 256
				mov	w0, 66
				mov	w1, 130
				csel	w0, w0, w1, cc
		.L318:
		.LVL449:
  494   dump(oper+extra); dump(val)
				mov	x18, x19
				add	w0, w23, w0
		.LVL428:
				bl	DUMP.7958
		.LVL429:
				mov	x18, x19
				add	w0, w0, w23
		.LVL451:
				bl	DUMP.7958
		.LVL452:
  495   dump(val>>8) %if oper&16_40=0
				add	w0, w22, 128
		.LBE326:
				mov	x18, x19
				mov	w0, w22
				bl	DUMP.7958
		.LVL430:
				mov	x18, x19
				mov	w0, w22
				bl	DUMP.7958
		.LVL453:
  496   dump(16_8B) %and dump(16_C2) %if op=rem
				mov	x18, x19
				lsr	w0, w22, 8
				bl	DUMP.7958
		.LVL431:
				cmp	w20, 10
				beq	.L328
				ldr	x21, [x29, 32]
		.LVL432:
				ldp	x23, x24, [x29, 48]
		.LVL433:
		.L305:
				mov	x18, x19
				lsr	w0, w22, 8
				bl	DUMP.7958
		.LVL454:
		.LDL16:
				cmp	w20, 10
				beq	.L328
		.L324:
  497   %if type&wordbit=0 %and op=load %then dump(16_32) %and dump(16_e4)
				mov	x18, x19
				mov	w0, 139
				bl	DUMP.7958
		.LVL457:
  498   %return
				cmp	w20, 1
				beq	.L339
				ldr	x21, [x29, 32]
				ldp	x23, x24, [x29, 48]
		.LVL455:
				b	.L305
		.LVL456:
		.L328:
				mov	x18, x19
				mov	w0, 194
				bl	DUMP.7958
		.LVL458:
				ldr	x21, [x29, 32]
				ldp	x23, x24, [x29, 48]
		.LVL459:
				b	.L305
		.LVL460:
		.L339:
  499 shift: dump(pushax)
				mov	x18, x19
				mov	w0, 50
				bl	DUMP.7958
		.LVL461:
  500   direct(load,type,val,index); dump(16_89); dump(16_c1); !Mov Cx,Ax
				mov	x18, x19
				mov	w0, 228
				bl	DUMP.7958
		.LVL462:
				ldr	x21, [x29, 32]
				ldp	x23, x24, [x29, 48]
		.LVL463:
				b	.L305
		.L308:
		.LVL464:
		.L325:
				mov	w0, 80
				bl	DUMP.7958
		.LVL465:
				mov	x18, x19
				mov	w3, w24
				mov	w2, w22
				mov	w1, w21
				mov	w0, 1
				bl	DIRECT.8051
		.LVL466:
  501   dump(popax)
				mov	x18, x19
				mov	w0, 137
				bl	DUMP.7958
		.LVL467:
				mov	x18, x19
				mov	w0, 88
				bl	DUMP.7958
		.LVL469:
  502   %if type&wordbit=0 %then dump(16_d2) %else dump(16_d3)
				mov	x18, x19
				mov	w0, 193
				bl	DUMP.7958
		.LVL468:
				tbnz	x21, 0, .L326
  503   dump(oper)
				mov	x18, x19
				mov	w0, 210
				bl	DUMP.7958
		.LVL470:
		.L327:
				mov	x18, x19
				mov	w0, w23
				bl	DUMP.7958
		.LVL471:
		.L307:
  504 %end
				ldr	x21, [x29, 32]
		.LVL472:
				ldp	x23, x24, [x29, 48]
		.LVL473:
				b	.L305
		.LVL474:
		.L326:
  505
				ldp	x19, x20, [sp, 16]
		.LVL434:
				ldr	x22, [sp, 40]
		.LVL435:
				ldp	x29, x30, [sp], 64
				ret
		.LVL436:
		.L336:
  506 %routine double(%integer t); ! index for word arrays
		.LVL397:
				stp	x29, x30, [sp, -32]!
				add	x29, sp, 0
				str	x19, [sp, 16]
				mov	x19, x18
		.L292:
				mov	x18, x19
				mov	w0, 211
				bl	DUMP.7958
		.LVL475:
				b	.L327
		.LFE208:
				.align	2
		EXPR.8000:
		.LFB210:
  507   %returnif t&wordbit=0
				tst	w0, 1
				bne	.L297
				ret
		.L297:
  508   dump(16_03); dump(16_c0); !Add ax,ax
				mov	w0, 3
		.LVL398:
				bl	DUMP.7958
		.LVL399:
  509 %end
				mov	x18, x19
				mov	w0, 192
				bl	DUMP.7958
		.LVL400:
  510
				ldr	x19, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.LFE209:
				.align	2
		LABELREF.7984:
		.LFB203:
  511 %routine expr
				stp	x29, x30, [sp, -96]!
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				stp	x23, x24, [sp, 48]
				stp	x25, x26, [sp, 64]
				mov	x19, x18
		.LVL476:
  512 %integer oper,t,v,index
  513   oper=load
				mov	w26, 1
  514   %cycle
  515     nextatom; unary
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL481:
  516     %if type=constant %start
				mov	x18, x19
				bl	UNARY.7889
		.LVL482:
				ldr	w20, [x19, 204]
				cmp	w20, 1
				beq	.L358
		.L342:
  517       atompos=atompos-1 %and val=cexpr(0) %if oper=load
				cmp	w26, 1
				beq	.L357
		.L343:
  518       immediate(oper,val)
				mov	x18, x19
				ldr	w1, [x19, 200]
				mov	w0, w26
				bl	IMMEDIATE.8014
		.LVL478:
		.L344:
		.L353:
				ldr	w0, [x19, 3824]
				sub	w0, w0, #1
				str	w0, [x19, 3824]
  519     %finishelseif type&varmask=var %start
				mov	x18, x19
				mov	w0, 0
				bl	CEXPR.7891
		.LVL489:
				str	w0, [x19, 200]
				b	.L343
		.L359:
				str	x27, [x29, 80]
		.LVL490:
  520       t=type; v=val
  521       %if open bracket %start
				tbz	x20, 0, .L359
		.L345:
				ldr	w27, [x19, 200]
		.LVL491:
				mov	x18, x19
				bl	OPENBRACKET.7874
		.LVL492:
				cbnz	w0, .L361
		.L346:
		.L349:
		.LVL493:
  522         dump(pushax) %unless oper=load
				cmp	w26, 1
				bne	.L362
  523         expr; double(t)
				mov	x18, x19
				bl	EXPR.8000
		.LVL498:
				mov	x18, x19
				mov	w0, w23
				bl	DUMP.7958
		.LVL504:
				mov	x18, x19
				bl	EXPR.8000
		.LVL505:
  524         dump(16_8b); dump(16_f0);  !Mov si,ax
				mov	x18, x19
				mov	w0, w20
				bl	DOUBLE.8085
		.LVL499:
				mov	x18, x19
				mov	w0, w21
				bl	DUMP.7958
		.LVL500:
				mov	x18, x19
				mov	w0, w20
				bl	DOUBLE.8085
		.LVL506:
				mov	x18, x19
				mov	w0, w21
				bl	DUMP.7958
		.LVL507:
  525         dump(popax) %unless oper=load
				mov	x18, x19
				mov	w0, 240
				bl	DUMP.7958
		.LVL501:
		.L348:
				mov	x18, x19
				mov	w0, 240
				bl	DUMP.7958
		.LVL508:
  526         close bracket
				mov	x18, x19
				bl	CLOSEBRACKET.7879
		.LVL502:
				mov	x18, x19
				mov	w0, w22
				bl	DUMP.7958
		.LVL509:
				b	.L348
		.LVL510:
		.L360:
  527         index=1
				mov	w0, 1
  528       %finishelse index=0
				b	.L349
		.LVL503:
		.L362:
  529       direct(oper,t,v,index)
				mov	x18, x19
				mov	w3, w0
				mov	w2, w27
				mov	w1, w20
				mov	w0, w26
		.LVL494:
				bl	DIRECT.8051
		.LVL495:
  530     %finishelseif type=proc %or type=xproc %or type=spec %start
				ldr	x27, [x29, 80]
		.LVL496:
				b	.L353
		.LVL497:
		.L361:
  531       %if oper=load %start
				cmp	w26, 1
				beq	.L360
		.L352:
  532         call(type,val)
				mov	x18, x19
				ldr	w1, [x19, 200]
				mov	w0, w20
				bl	CALL.8003
		.LVL511:
  533       %else
				sub	w0, w20, #8
				b	.L353
		.L350:
  534         dump(pushax); call(type,val); dump(16_8b); dump(16_d8);!mov bx,ax
				mov	w23, 80
				cmp	w0, 2
				bhi	.L350
		.L351:
				mov	x18, x19
				mov	w0, w23
				bl	DUMP.7958
		.LVL483:
  535         dump(popax); direct(oper,bx,0,0)
				mov	w22, 88
				b	.L341
		.LVL477:
		.L358:
				mov	x18, x19
				ldr	w1, [x19, 200]
				ldr	w0, [x19, 204]
				bl	CALL.8003
		.LVL484:
				mov	x18, x19
				mov	w0, w22
				bl	DUMP.7958
		.LVL487:
  536       %finish
				mov	w21, 139
				mov	x18, x19
				mov	w0, w21
				bl	DUMP.7958
		.LVL485:
				mov	x18, x19
				mov	w3, 0
				mov	w2, 0
				mov	w1, 17
				mov	w0, w26
				bl	DIRECT.8051
		.LVL488:
				b	.L353
		.L357:
  537     %else
				mov	w24, 216
				mov	x18, x19
				mov	w0, w24
				bl	DUMP.7958
		.LVL486:
  538       fault(form)
				mov	w25, 5
				mov	x18, x19
				mov	w0, w25
				bl	FAULT.7724
		.LVL512:
				b	.L353
		.L340:
  539     %finish
  540     %returnunless atomtype(atompos)=op
				ldr	w0, [x19, 3824]
				sub	w0, w0, #1
				add	x0, x19, x0, sxtw 2
				ldr	w0, [x0, 3624]
				cmp	w0, 11
				bne	.L340
		.L355:
  541     nextatom
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL479:
  542     oper=val
				ldr	w26, [x19, 200]
		.LVL480:
		.L341:
  543   %repeat
  544 %end
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
				ldp	x23, x24, [sp, 48]
				ldp	x25, x26, [sp, 64]
		.LVL513:
				ldp	x29, x30, [sp], 96
				ret
		.LFE210:
				.align	2
		CALL.8003:
		.LFB206:
  545
  546 %routine return
				stp	x29, x30, [sp, -32]!
				add	x29, sp, 0
				str	x19, [sp, 16]
				mov	x19, x18
  547   dump(16_8b); dump(16_e5); !Mov sp,bp
				mov	w0, 139
				bl	DUMP.7958
		.LVL389:
  548   dump(16_5d); dump(16_1f); !Pop bp, pop ds
				mov	x18, x19
				mov	w0, 229
				bl	DUMP.7958
		.LVL390:
				mov	x18, x19
				mov	w0, 93
				bl	DUMP.7958
		.LVL391:
  549   %if parms=0 %then dump(16_cb) %elsestart
				mov	x18, x19
				mov	w0, 31
				bl	DUMP.7958
		.LVL392:
				ldr	w0, [x19, 24]
				cbz	w0, .L289
		.L286:
  550     dump(16_ca)
				mov	x18, x19
				mov	w0, 202
				bl	DUMP.7958
		.LVL393:
				mov	x18, x19
				mov	w0, 203
				bl	DUMP.7958
		.LVL396:
  551     dump(parms); dump(parms>>8)
				mov	x18, x19
				ldr	w0, [x19, 24]
				bl	DUMP.7958
		.LVL394:
				b	.L287
		.LFE211:
				.align	2
		DOUBLE.8085:
		.LFB209:
  552   %finish
				ldr	w0, [x19, 24]
				mov	x18, x19
				lsr	w0, w0, 8
				bl	DUMP.7958
		.LVL395:
		.L287:
  553   access=0
				str	wzr, [x19, 20]
  554 %end
  555
				ldr	x19, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.L289:
  556 %routine terminate declarations
  557 %integer i
  558   fault(level0) %if level=0
				ldr	w0, [x29, 9112]
				cbz	w0, .L536
		.L509:
  559   %if level=1 %start
				ldr	w0, [x29, 9112]
				cmp	w0, 1
				beq	.L537
		.L510:
		.LBE473:
		.LBE472:
				mov	x18, x19
				mov	w0, 11
				bl	FAULT.7724
		.LVL837:
				b	.L509
		.L537:
  560     level=2; i=-floc
				mov	w0, 2
				str	w0, [x29, 9112]
  561     %if i>127 %start
				ldr	w20, [x29, 9108]
				neg	w20, w20
		.LVL838:
				cmp	w20, 127
				ble	.L511
  562       dump(16_81); dump(16_ec); dump(i); dump(i>>8); !Sub sp,nn
				mov	x18, x19
				mov	w0, 129
				bl	DUMP.7958
		.LVL839:
  563     %finishelseunless i=0 %start
				mov	x18, x19
				mov	w0, 236
				bl	DUMP.7958
		.LVL840:
  564       dump(16_83); dump(16_ec); dump(i); !sub sp,n
				mov	x18, x19
				mov	w0, w20
				bl	DUMP.7958
		.LVL841:
				mov	x18, x19
				mov	w0, 131
				bl	DUMP.7958
		.LVL843:
  565     %finish
				mov	x18, x19
				lsr	w0, w20, 8
				bl	DUMP.7958
		.LVL842:
		.L512:
		.L513:
				cbz	w20, .L513
				mov	x18, x19
				mov	w0, 236
				bl	DUMP.7958
		.LVL844:
  566     floc=floc-2
				ldr	w0, [x29, 9108]
				sub	w0, w0, #2
				str	w0, [x29, 9108]
				b	.L510
		.L511:
				mov	x18, x19
				mov	w0, w20
				bl	DUMP.7958
		.LVL845:
				b	.L513
		.LVL846:
		.L538:
		.LBE474:
		.LBE540:
  567   %finish
  568 %end
  569
  570 %routine constdef
  571 %integer c
  572   %cycle
  573     nextatom; %returnif type=sep
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL672:
  574     fault(ambig) %unless type=unknown; c=val
				ldr	w0, [x29, 9300]
				cmp	w0, 14
				beq	.L519
		.L440:
				cbnz	w0, .L539
		.L441:
  575     fault(form) %unless equal sign
				mov	w23, 6
				mov	x18, x19
				mov	w0, w23
				bl	FAULT.7724
		.LVL667:
				b	.L441
		.LVL668:
		.L442:
				mov	x18, x19
				bl	EQUALSIGN.7884
		.LVL674:
				cbnz	w0, .L442
  576     tagtype(c)=constant; tagval(c)=cexpr(1)
				mov	w22, 5
				mov	w21, 1
				b	.L438
		.L539:
				sub	w20, w20, #1
		.LVL669:
				add	x0, x19, x20, sxtw 2
				str	w21, [x0, 1008]
				mov	x18, x19
				mov	w0, w22
				bl	FAULT.7724
		.LVL675:
				b	.L442
		.LVL676:
		.L432:
		.LBE476:
		.LBE475:
  577   %repeat
				mov	x18, x19
				mov	w0, w21
				bl	CEXPR.7891
		.LVL670:
				add	x20, x19, x20, sxtw 2
		.LVL671:
				str	w0, [x20, 208]
		.L438:
				ldr	w20, [x29, 9296]
		.LVL673:
  578 %end
  579
  580 %routine vardef(%integer key)
  581 %integer t,lb,ub,c,r
  582 %integername v
  583   %cycle
  584     nextatom
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL677:
  585 next: %returnif type=sep
  586     fault(ambig) %unless type=unknown
				ldr	w0, [x29, 9300]
				cmp	w0, 14
				beq	.L519
		.L446:
				cbnz	w0, .L541
		.L447:
		.LDL22:
		.LVL693:
  587     t=var
				mov	x18, x19
				mov	w0, 6
				bl	FAULT.7724
		.LVL678:
				b	.L447
		.LVL679:
		.L542:
  588     t=t+wordbit %if key=kword
  589     t=t+glabit %if level=0
				ldr	w0, [x29, 9112]
  590     tagtype(val)=t; v==tagval(val)
				add	w27, w26, 2
		.L444:
				cmp	w0, 0
				csel	w1, w26, w27, ne
		.L448:
		.LVL694:
				ldr	w20, [x29, 9296]
				sub	w20, w20, #1
				add	x0, x19, x20, sxtw 2
				str	w1, [x0, 1008]
		.LVL695:
  591     %if open bracket %start
				mov	x18, x19
				bl	OPENBRACKET.7874
		.LVL696:
				mov	w22, w0
				cbnz	w0, .L542
  592       lb=cexpr(1); nextatom; fault(form) %unless type=colon
				mov	w25, 1
				b	.L445
		.L541:
				mov	x18, x19
				mov	w0, w25
				bl	CEXPR.7891
		.LVL680:
				mov	w22, w0
		.LVL681:
  593       ub=cexpr(1)+1; close bracket
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL682:
				mov	x18, x19
				mov	w0, w25
				bl	CEXPR.7891
		.LVL683:
				add	w23, w0, 1
		.LVL684:
  594     %finishelse lb=0 %and ub=1
				ldr	w0, [x29, 9300]
				cmp	w0, 13
				bne	.L540
		.L450:
				mov	x18, x19
				bl	CLOSEBRACKET.7879
		.LVL685:
				b	.L451
		.LVL686:
		.L540:
  595     lb=lb+lb %and ub=ub+ub %if key=kword
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL687:
				b	.L450
		.LVL688:
		.L543:
				cmp	w21, 18
				beq	.L543
		.L452:
  596     %if level=0 %start
				lsl	w22, w22, 1
		.LVL689:
				ldr	w0, [x29, 9112]
				cbnz	w0, .L453
  597       v=gloc-lb; t=v+ub
				lsl	w23, w23, 1
		.LVL690:
				b	.L452
		.LVL691:
		.L544:
				mov	w23, 1
		.L449:
		.L451:
		.LVL697:
				ldr	w0, [x29, 12512]
				sub	w22, w0, w22
		.LVL698:
				add	x20, x19, x20, sxtw 2
		.LVL699:
				str	w22, [x20, 208]
  598       %if equal sign %start
				add	w23, w22, w23
		.LVL700:
				mov	x18, x19
				bl	EQUALSIGN.7884
		.LVL701:
				cbnz	w0, .L455
		.L454:
		.LVL702:
		.LBB479:
		.LBB480:
				adrp	x0, :got:_imp_OutStream
				ldr	x0, [x0, #:got_lo12:_imp_OutStream]
				mov	w1, 1
				str	w1, [x0]
				adrp	x0, :got:_imp_outfile
				ldr	x0, [x0, #:got_lo12:_imp_outfile]
				ldr	x1, [x0, 296]
				adrp	x0, :got:_imp_OutFile
				ldr	x0, [x0, #:got_lo12:_imp_OutFile]
				str	x1, [x0]
				ldr	x0, [x29, 104]
				bl	check_outstream
		.LVL703:
		.LBE480:
		.LBE479:
		.LBB481:
		.LBB482:
				mov	w0, 2
				bl	_imp_printsymbol
		.LVL704:
		.LBE482:
		.LBE481:
		.LBB483:
		.LBB484:
				mov	w0, 3
				bl	_imp_printsymbol
		.LVL705:
		.LBE484:
		.LBE483:
		.LBB485:
		.LBB486:
				mov	w0, w23
				bl	_imp_printsymbol
		.LVL706:
		.LBE486:
		.LBE485:
		.LBB487:
		.LBB488:
				ubfx	x0, x23, 8, 8
				bl	_imp_printsymbol
		.LVL707:
		.LBE488:
		.LBE487:
  599         %cycle
  600           nextatom
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL709:
  601           %if gloc>=t %start
				ldr	w0, [x29, 12512]
				cmp	w23, w0
				ble	.L544
		.L456:
  602             gflush; ->next
				mov	x18, x19
				bl	GFLUSH.7938
		.LVL692:
		.L445:
  603           %finish
  604           %if type=string %start
				ldr	w0, [x29, 9300]
				cmp	w0, 2
				beq	.L545
		.L457:
  605             dumpstring(val)
				mov	x18, x19
				ldr	w0, [x29, 9296]
				bl	DUMPSTRING.7950
		.LVL708:
		.L455:
  606           %finishelseif type=sep %start
  607             readline
				mov	x18, x19
				bl	READLINE.7740
		.LVL710:
				b	.L455
		.L459:
  608           %finishelsestart
				cmp	w0, 14
				bne	.L459
  609             atompos=atompos-1; c=Cexpr(1); r=1
				ldr	w0, [x29, 12920]
				sub	w0, w0, #1
				str	w0, [x29, 12920]
  610             %if open bracket %start
				mov	x18, x19
				mov	w0, w25
				bl	CEXPR.7891
		.LVL711:
				mov	w22, w0
		.LVL712:
				mov	x18, x19
				bl	OPENBRACKET.7874
		.LVL713:
				cbnz	w0, .L546
  611               r=cexpr(1); close bracket
				mov	w20, 1
		.LVL714:
		.L460:
		.LBB489:
		.LBB490:
				mov	x18, x19
				mov	w0, w25
				bl	CEXPR.7891
		.LVL716:
				mov	w20, w0
		.LVL717:
  612             %finish
				mov	x18, x19
				bl	CLOSEBRACKET.7879
		.LVL718:
  613             %while r>0 %cycle
  614               r=r-1; %if key=kword %then gword(c) %else gbyte(c)
				cmp	w20, 0
				bgt	.L460
				b	.L455
		.L547:
		.LVL719:
		.LBB492:
		.LBB491:
				cmp	w20, 0
				ble	.L455
		.LVL722:
		.L463:
				sub	w20, w20, #1
		.LVL723:
  615             %repeat
				cmp	w21, 18
				beq	.L547
		.L464:
  616           %finish
  617         %repeat
  618       %else
  619         selectoutput(object); printsymbol(2); printsymbol(3)
				mov	x18, x19
				mov	w0, w22
				bl	GBYTE.7931
		.LVL724:
				b	.L465
		.LVL725:
		.L453:
  620         printsymbol(t&255); printsymbol(t>>8&255); gloc=t
  621       %finish
  622     %else
				str	w23, [x29, 12512]
				b	.L444
		.L545:
  623       fault(declate) %if level=2
				cmp	w0, 2
				beq	.L548
		.L467:
  624       floc=floc-ub+lb; v=floc-lb
				ldr	w0, [x29, 9108]
				sub	w23, w0, w23
		.LVL726:
				add	w22, w22, w23
		.LVL727:
				str	w22, [x29, 9108]
				mov	x18, x19
				mov	w0, 8
				bl	FAULT.7724
		.LVL730:
				b	.L467
		.LVL731:
		.L530:
		.L469:
		.LBE478:
		.LBE477:
		.LBB493:
		.LBB494:
  625     %finish
				add	x20, x19, x20, sxtw 2
		.LVL728:
				str	w23, [x20, 208]
				b	.L444
		.LVL729:
		.L548:
  626   %repeat
  627 %end
  628
  629 %routine procdef(%integer key)
				add	x0, x29, 16384
				add	x0, x0, 896
				str	x0, [x29, 9088]
				str	x19, [x29, 8816]
  630 %integer p,sym
  631 %string(31)s
  632
  633   %routine getstring
				sub	sp, sp, #1104
				stp	x29, x30, [sp]
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				mov	x19, x18
				adrp	x0, :got:__stack_chk_guard
				ldr	x0, [x0, #:got_lo12:__stack_chk_guard]
				ldr	x1, [x0]
				str	x1, [x29, 1096]
				mov	x1,0
  634     s=""
  635     %cycle
  636       sym=line(val); %returnif sym='"'; val=val+1; s=s.tostring(sym)
				add	x20, x18, 12
		.LVL10:
				mov	x2, 31
				add	x1, x29, 72
				mov	x0, x20
				bl	_imp_strncpy
		.LVL11:
				ldr	x1, [x19]
				ldr	w0, [x1, 200]
				sub	w0, w0, #1
				add	x0, x1, x0, sxtw
				add	x0, x0, 4096
				ldrb	w0, [x0, 3992]
				str	w0, [x19, 8]
				ldr	x1, [x19]
				ldr	w0, [x1, 200]
				sub	w0, w0, #1
				add	x0, x1, x0, sxtw
				add	x0, x0, 4096
				ldrb	w0, [x0, 3992]
				str	w0, [x19, 8]
  637     %repeat
				cmp	w0, 34
				beq	.L19
				stp	x21, x22, [x29, 32]
				stp	x23, x24, [x29, 48]
		.LBB220:
		.LBB221:
				cmp	w0, 34
				bne	.L21
				ldp	x21, x22, [x29, 32]
				ldp	x23, x24, [x29, 48]
		.L19:
  638   %end
				adrp	x0, :got:__stack_chk_guard
				ldr	x0, [x0, #:got_lo12:__stack_chk_guard]
				ldr	x1, [x29, 1096]
				ldr	x0, [x0]
				eor	x0, x1, x0
				cbnz	x0, .L25
				ldp	x19, x20, [sp, 16]
				ldp	x29, x30, [sp]
				add	sp, sp, 1104
				ret
		.L25:
				stp	x21, x22, [x29, 32]
				stp	x23, x24, [x29, 48]
				bl	__stack_chk_fail
		.LVL15:
		.LFE216:
				.align	2
		IMMEDIATE.8014:
		.LFB207:
  639
  640   nextatom; fault(ambig) %unless type=unknown
				ldr	w0, [x1, 200]
				add	w0, w0, 1
				str	w0, [x1, 200]
		.LVL12:
		.LBB223:
		.LBB222:
				mov	x8, x23
				mov	x1, x24
				mov	x0, x20
				bl	_imp_join
		.LVL13:
		.LBE222:
		.LBE223:
				mov	x2, x21
				mov	x1, x22
				mov	x0, x20
				bl	_imp_strncpy
		.LVL14:
		.LDL2:
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL732:
  641   %if key=kspec %start
				ldr	w0, [x29, 9300]
				cbnz	w0, .L549
		.L470:
				cmp	w21, 20
				beq	.L550
		.L471:
  642     tagtype(val)=spec; tagval(val)=gloc
				mov	x18, x19
				mov	w0, 6
				bl	FAULT.7724
		.LVL743:
				b	.L470
		.L550:
				ldr	w0, [x29, 9296]
				sub	w0, w0, #1
				sxtw	x0, w0
				add	x1, x0, 252
				mov	w2, 10
				str	w2, [x19, x1, lsl 2]
  643     nextatom; fault(form) %unless type=string
				add	x24, x29, 840
				add	x23, x29, 584
		.LBE221:
		.LBE220:
				add	x22, x29, 328
				mov	x21, 31
		.L21:
				add	x0, x0, 52
				ldr	w1, [x29, 12512]
				str	w1, [x19, x0, lsl 2]
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL744:
  644     getstring; p=length(s)
				ldr	w0, [x29, 9300]
				cmp	w0, 2
				beq	.L472
				add	x18, x29, 8192
				add	x18, x18, 624
				bl	GETSTRING.8171
		.LVL746:
  645     selectoutput(object); printsymbol(2)
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL745:
		.L472:
				add	x0, x29, 8192
				add	x0, x0, 16
				ldrb	w20, [x0, 620]
		.LVL747:
		.LBB495:
		.LBB496:
				adrp	x0, :got:_imp_OutStream
				ldr	x0, [x0, #:got_lo12:_imp_OutStream]
				mov	w1, 1
				str	w1, [x0]
				adrp	x0, :got:_imp_outfile
				ldr	x0, [x0, #:got_lo12:_imp_outfile]
				ldr	x1, [x0, 296]
				adrp	x0, :got:_imp_OutFile
				ldr	x0, [x0, #:got_lo12:_imp_OutFile]
				str	x1, [x0]
				ldr	x0, [x29, 104]
				bl	check_outstream
		.LVL748:
		.LBE496:
		.LBE495:
		.LBB497:
		.LBB498:
				mov	w0, 2
				bl	_imp_printsymbol
		.LVL749:
		.LBE498:
		.LBE497:
		.LBB499:
		.LBB500:
				mov	w0, 8
				bl	_imp_printsymbol
		.LVL750:
		.LBE500:
		.LBE499:
		.LBB501:
		.LBB502:
				mov	w0, w20
				bl	_imp_printsymbol
		.LVL751:
				add	x21, x29, 4096
				add	x21, x21, 3440
		.LVL752:
				mov	x22, 256
				mov	x2, x22
				add	x1, x29, 4096
				add	x1, x1, 3696
				mov	x0, x21
				bl	memcpy
		.LVL753:
		.LBE502:
		.LBE501:
		.LBB503:
		.LBB504:
				add	x20, x29, 112
		.LVL754:
				mov	x2, x22
				mov	x1, x21
				mov	x0, x20
				bl	memcpy
		.LVL755:
				mov	x0, x20
				bl	_imp_printstring
		.LVL756:
		.LBE504:
		.LBE503:
		.LBB505:
		.LBB506:
				mov	w0, 7
				bl	_imp_printsymbol
		.LVL757:
		.LBE506:
		.LBE505:
		.LBB507:
		.LBB508:
				mov	w0, 0
				bl	_imp_printsymbol
		.LVL758:
		.LBE508:
		.LBE507:
  646     printsymbol(8); printsymbol(p); printstring(s)
  647     printsymbol(7); printsymbol(0)
  648     gloc=gloc+4; %return
				ldr	w0, [x29, 12512]
				add	w0, w0, 4
				str	w0, [x29, 12512]
				b	.L519
		.LVL759:
		.L551:
  649   %finish
  650   fault(nested) %unless level=0; level=1; access=1; textlevel=0
				ldr	w0, [x29, 9112]
				cbnz	w0, .L551
		.L473:
  651   v=val; t=proc; nextatom
				ldr	w0, [x29, 9296]
				str	w0, [x29, 9104]
				mov	x18, x19
				mov	w0, 7
				bl	FAULT.7724
		.LVL760:
				b	.L473
		.L552:
  652   %if type=string %start
				mov	w0, 8
				str	w0, [x29, 9100]
				ldr	w0, [x29, 9300]
				cmp	w0, 2
				beq	.L552
		.LVL734:
		.L474:
  653     getstring
				mov	w0, 1
				str	w0, [x29, 9112]
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL733:
				add	x18, x29, 8192
				add	x18, x18, 624
				bl	GETSTRING.8171
		.LVL761:
		.LBB509:
		.LBB510:
				mov	w20, 1
				adrp	x0, :got:_imp_OutStream
				ldr	x0, [x0, #:got_lo12:_imp_OutStream]
				str	w20, [x0]
				adrp	x0, :got:_imp_outfile
				ldr	x0, [x0, #:got_lo12:_imp_outfile]
				ldr	x1, [x0, 296]
				adrp	x0, :got:_imp_OutFile
				ldr	x0, [x0, #:got_lo12:_imp_OutFile]
				str	x1, [x0]
				ldr	x0, [x29, 104]
				bl	check_outstream
		.LVL762:
		.LBE510:
		.LBE509:
		.LBB511:
		.LBB512:
				mov	w0, w20
				bl	_imp_printsymbol
		.LVL763:
		.LBE512:
		.LBE511:
		.LBB513:
		.LBB514:
				mov	w0, 6
				bl	_imp_printsymbol
		.LVL764:
		.LBE514:
		.LBE513:
		.LBB515:
		.LBB516:
				add	x0, x29, 8192
				add	x0, x0, 16
				ldrb	w0, [x0, 620]
				bl	_imp_printsymbol
		.LVL765:
				add	x21, x29, 4096
				add	x21, x21, 3184
		.LVL766:
				mov	x22, 256
				mov	x2, x22
				add	x1, x29, 4096
				add	x1, x1, 3952
				mov	x0, x21
				bl	memcpy
		.LVL767:
		.LBE516:
		.LBE515:
		.LBB517:
		.LBB518:
				add	x20, x29, 112
				mov	x2, x22
				mov	x1, x21
				mov	x0, x20
				bl	memcpy
		.LVL768:
				mov	x0, x20
				bl	_imp_printstring
		.LVL769:
		.LBE518:
		.LBE517:
  654     selectoutput(object); printsymbol(1); printsymbol(6)
				str	w0, [x29, 9116]
  655     printsymbol(length(s)); printstring(s)
				str	wzr, [x29, 9284]
  656     t=xproc; nextatom
				mov	w0, 9
				str	w0, [x29, 9100]
  657   %finish
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL770:
				b	.L474
		.L553:
  658   tagtype(v)=t; tagval(v)=cloc
				ldr	w0, [x29, 9104]
				sub	w0, w0, #1
				sxtw	x0, w0
				add	x1, x0, 252
				ldr	w2, [x29, 9100]
				str	w2, [x19, x1, lsl 2]
  659   dump(16_1e); dump(16_55); !Push ds, push bp
				add	x0, x0, 52
				ldr	w1, [x29, 12516]
				str	w1, [x19, x0, lsl 2]
				mov	x18, x19
				mov	w0, 30
				bl	DUMP.7958
		.LVL735:
  660   dump(16_8b); dump(16_ec); !Mov BP,SP
				mov	x18, x19
				mov	w0, 85
				bl	DUMP.7958
		.LVL736:
				mov	x18, x19
				mov	w0, 139
				bl	DUMP.7958
		.LVL737:
  661   dump(16_33); dump(16_C0); !Xor AX,AX
				mov	x18, x19
				mov	w0, 236
				bl	DUMP.7958
		.LVL738:
				mov	x18, x19
				mov	w0, 51
				bl	DUMP.7958
		.LVL739:
  662   dump(pushax);             !For event mechanism
				mov	x18, x19
				mov	w0, 192
				bl	DUMP.7958
		.LVL740:
				mov	x18, x19
				mov	w0, 80
				bl	DUMP.7958
		.LVL741:
  663   %if t=xproc %start
				ldr	w0, [x29, 9100]
				cmp	w0, 9
				beq	.L553
		.L475:
  664     fault(labund) %if program=""
  665     dump(16_b8); flush; !Mov ax,nn=dseg
				mov	x18, x19
				mov	w0, 184
				bl	DUMP.7958
		.LVL772:
  666     printsymbol(7); printsymbol(length(program)); printstring(program)
				add	x1, x29, 8192
				add	x1, x1, 112
				mov	x0, x28
				bl	_imp_strcmp
		.LVL771:
				cbz	w0, .L554
		.L476:
				mov	x18, x19
				bl	FLUSH.7962
		.LVL773:
		.LBB519:
		.LBB520:
				mov	w0, 7
				bl	_imp_printsymbol
		.LVL774:
		.LBE520:
		.LBE519:
		.LBB521:
		.LBB522:
				add	x0, x29, 12288
				add	x0, x0, 16
				ldrb	w0, [x0, 624]
				bl	_imp_printsymbol
		.LVL775:
				add	x21, x29, 4096
				add	x21, x21, 2928
				mov	x22, 256
				mov	x2, x22
				add	x1, x29, 8192
				add	x1, x1, 368
				mov	x0, x21
				bl	memcpy
		.LVL776:
		.LBE522:
		.LBE521:
		.LBB523:
		.LBB524:
				add	x20, x29, 112
				mov	x2, x22
				mov	x1, x21
				mov	x0, x20
				bl	memcpy
		.LVL777:
				mov	x0, x20
				bl	_imp_printstring
		.LVL778:
		.LBE524:
		.LBE523:
  667     cloc=cloc+2; dump(16_8E); dump(16_D8); !Mov ds,ax
				ldr	w0, [x29, 12516]
				add	w0, w0, 2
				str	w0, [x29, 12516]
  668   %finish
				mov	x18, x19
				mov	w0, 142
				bl	DUMP.7958
		.LVL779:
  669   parms=0; oldtpos=v+1
				str	wzr, [x29, 9120]
				mov	x18, x19
				mov	w0, 216
				bl	DUMP.7958
		.LVL780:
				b	.L475
		.L554:
				mov	x18, x19
				mov	w0, 10
				bl	FAULT.7724
		.LVL781:
				b	.L476
		.L479:
  670   %while type#sep %cycle
				ldr	w0, [x29, 9104]
				add	w0, w0, 1
				str	w0, [x29, 9096]
  671     fault(ambig) %unless type=unknown
				ldr	w0, [x29, 9300]
				cmp	w0, 14
				beq	.L478
				cbz	w0, .L479
  672     tagtype(val)=var+wordbit
				mov	w21, 6
				mov	w20, 5
				b	.L477
		.LVL742:
		.L549:
				ldr	w0, [x29, 9296]
				sub	w0, w0, #1
				add	x0, x19, x0, sxtw 2
				str	w20, [x0, 1008]
				mov	x18, x19
				mov	w0, w21
				bl	FAULT.7724
		.LVL783:
				b	.L479
		.L478:
  673     parms=parms+1; nextatom
				ldr	w0, [x29, 9120]
				add	w0, w0, 1
				str	w0, [x29, 9120]
  674   %repeat
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL782:
		.L477:
  675   p=tagpos-parms; parms=parms+parms; sym=parms+6
				ldr	w4, [x29, 12504]
				ldr	w0, [x29, 9120]
				sub	w1, w4, w0
		.LVL784:
  676   %while p<tagpos %cycle
				lsl	w0, w0, 1
				str	w0, [x29, 9120]
  677     tagval(p)=sym; sym=sym-2; p=p+1
				add	w0, w0, 6
				str	w0, [x29, 8824]
				mov	w2, 0
				mov	w5, 1
		.L480:
				mov	w3, w0
				sub	w0, w0, #2
				cmp	w4, w1
				ble	.L481
				sub	w2, w1, #1
				add	x2, x19, x2, sxtw 2
				str	w3, [x2, 208]
  678   %repeat
  679   floc=0
				add	w1, w1, 1
		.LVL785:
				mov	w2, w5
				b	.L480
		.L481:
				cbnz	w2, .L555
		.L482:
				str	wzr, [x29, 9108]
		.L439:
		.LVL786:
		.L519:
		.LBE494:
		.LBE493:
  680 %end
  681
  682 %routine instruction
				stp	x29, x30, [sp, -80]!
				add	x29, sp, 0
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				stp	x23, x24, [sp, 48]
				str	x25, [sp, 64]
				mov	x19, x18
  683 %integer t,v,i,oper,st,sv,si,dt,dv
  684   nextatom
				bl	NEXTATOM.7870
		.LVL540:
  685   %if type=kmove %start
				ldr	w20, [x19, 204]
				cmp	w20, 23
				bne	.L397
  686     nextatom; oper=16_a4; !Movb
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL541:
  687     %if type=string %start
				ldr	w0, [x19, 204]
				cmp	w0, 2
				bne	.L398
		.LVL542:
				mov	w21, 164
				b	.L399
		.LVL581:
		.L398:
  688       st=var+glabit; sv=gloc; si=0
				mov	w20, 6
		.L400:
		.LVL550:
		.L401:
  689       dumpstring(val); val=gloc-sv; gflush
				ldr	w24, [x19, 3416]
		.LVL543:
				mov	x18, x19
				ldr	w0, [x19, 200]
				bl	DUMPSTRING.7950
		.LVL544:
  690       %if val&1=0 %start
				ldr	w0, [x19, 3416]
				sub	w0, w0, w24
				str	w0, [x19, 200]
				ldr	w0, [x19, 200]
				tbnz	x0, 0, .L421
				mov	w23, 0
  691         val=val>>1; oper=16_a5; !Movw
				mov	x18, x19
				bl	GFLUSH.7938
		.LVL545:
				lsr	w0, w0, 1
				str	w0, [x19, 200]
		.LVL546:
  692       %finish
				mov	w21, 165
		.LVL547:
		.L399:
  693       immediate(load,val); dump(pushax)
				mov	x18, x19
				ldr	w1, [x19, 200]
				mov	w0, 1
				bl	IMMEDIATE.8014
		.LVL548:
  694     %else
				mov	x18, x19
				mov	w0, 80
				bl	DUMP.7958
		.LVL549:
  695       expr; dump(pushax)
				mov	x18, x19
				bl	EXPR.8000
		.LVL582:
  696       nextatom; st=type; sv=val; si=0
				mov	x18, x19
				mov	w0, 80
				bl	DUMP.7958
		.LVL583:
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL584:
  697       fault(form) %unless st&varmask=var
				ldr	w20, [x19, 204]
		.LVL585:
  698       %if openbracket %start
				ldr	w24, [x19, 200]
		.LVL586:
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL587:
		.LDL19:
				mov	x18, x19
				bl	OPENBRACKET.7874
		.LVL588:
				mov	w23, w0
				cbz	w0, .L422
  699         expr; double(st); si=1; dump(pushax)
				mov	x18, x19
				bl	EXPR.8000
		.LVL589:
  700         closebracket
				mov	x18, x19
				mov	w0, w20
				bl	DOUBLE.8085
		.LVL590:
				mov	x18, x19
				bl	CLOSEBRACKET.7879
		.LVL592:
  701       %finish
				mov	w23, 1
  702       oper=16_a5 %if st&wordbit#0; !Movw
				mov	x18, x19
				mov	w0, 80
				bl	DUMP.7958
		.LVL591:
  703     %finish
				mov	w21, 165
				b	.L401
		.LVL593:
		.L422:
				mov	w21, 165
				b	.L401
		.LVL594:
		.L402:
  704     nextatom; dt=type; dv=val
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL551:
  705     fault(form) %unless dt&varmask=var
				ldr	w22, [x19, 204]
		.LVL552:
  706     %if openbracket %start
				ldr	w25, [x19, 200]
		.LVL553:
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL554:
		.LDL18:
				mov	x18, x19
				bl	OPENBRACKET.7874
		.LVL555:
				cbz	w0, .L402
  707       expr; double(dt); dump(16_8b); dump(16_f8); !Mov di,ax
				mov	x18, x19
				bl	EXPR.8000
		.LVL556:
  708       direct(lea,dt,dv,0); dump(16_03); dump(16_f8); !add di,ax
				mov	x18, x19
				mov	w0, w22
				bl	DOUBLE.8085
		.LVL557:
				mov	x18, x19
				mov	w3, 0
				mov	w2, w25
				mov	w1, w22
				mov	w0, 14
				bl	DIRECT.8051
		.LVL560:
  709       closebracket
				mov	x18, x19
				mov	w0, 139
				bl	DUMP.7958
		.LVL558:
				mov	x18, x19
				mov	w0, 3
				bl	DUMP.7958
		.LVL561:
				mov	x18, x19
				bl	CLOSEBRACKET.7879
		.LVL563:
		.L403:
  710     %else
				mov	x18, x19
				mov	w0, 248
				bl	DUMP.7958
		.LVL559:
				mov	x18, x19
				mov	w0, 248
				bl	DUMP.7958
		.LVL562:
  711       direct(lea,dt,dv,0); dump(16_8b); dump(16_f8); !Mov di,ax
				mov	x18, x19
				mov	w3, 0
				mov	w2, w25
				mov	w1, w22
				mov	w0, 14
				bl	DIRECT.8051
		.LVL595:
  712     %finish
				mov	x18, x19
				mov	w0, 139
				bl	DUMP.7958
		.LVL596:
  713     direct(lea,st,sv,0); dump(16_8b); dump(16_f0); !Mov si,ax
				mov	x18, x19
				mov	w3, 0
				mov	w2, w24
				mov	w1, w20
				mov	w0, 14
				bl	DIRECT.8051
		.LVL564:
				mov	x18, x19
				mov	w0, 248
				bl	DUMP.7958
		.LVL597:
				b	.L403
		.L405:
  714     %if si#0 %Start
				mov	x18, x19
				mov	w0, 139
				bl	DUMP.7958
		.LVL565:
				cbz	w23, .L404
  715       dump(popax); dump(16_03); dump(16_f0); !add,si,ax
				mov	x18, x19
				mov	w0, 240
				bl	DUMP.7958
		.LVL566:
				mov	x18, x19
				mov	w0, 88
				bl	DUMP.7958
		.LVL567:
  716     %finish
				mov	x18, x19
				mov	w0, 3
				bl	DUMP.7958
		.LVL568:
  717     %if dt&glabit=0 %then dump(16_16) %else dump(16_1e); !Push SS/DS
				mov	x18, x19
				mov	w0, 240
				bl	DUMP.7958
		.LVL569:
		.L404:
				tbnz	x22, 0, .L405
  718     dump(16_07);  !Pop ES
				mov	x18, x19
				mov	w0, 22
				bl	DUMP.7958
		.LVL570:
		.L406:
				mov	x18, x19
				mov	w0, 7
				bl	DUMP.7958
		.LVL571:
  719     %if st&glabit=0 %start
				and	w22, w20, 1
		.LVL572:
				tbnz	x20, 0, .L407
  720       dump(16_1e); dump(16_16); dump(16_1f); !Push DS,SS, Pop DS
				mov	x18, x19
				mov	w0, 30
				bl	DUMP.7958
		.LVL573:
  721     %finish
				mov	x18, x19
				mov	w0, 22
				bl	DUMP.7958
		.LVL574:
				mov	x18, x19
				mov	w0, 30
				bl	DUMP.7958
		.LVL598:
				b	.L406
		.LVL599:
		.L397:
  722     dump(16_59); dump(16_F2); dump(oper); !Pop cx, rep
				mov	x18, x19
				mov	w0, 31
				bl	DUMP.7958
		.LVL575:
		.L407:
				mov	x18, x19
				mov	w0, 89
				bl	DUMP.7958
		.LVL576:
  723     dump(16_1f) %if st&glabit=0; !Pop DS
				mov	x18, x19
				mov	w0, 242
				bl	DUMP.7958
		.LVL577:
				cbnz	w22, .L396
  724   %finishelseif type=krepeat %start
				mov	x18, x19
				mov	w0, w21
				bl	DUMP.7958
		.LVL578:
				mov	x18, x19
				mov	w0, 31
				bl	DUMP.7958
		.LVL579:
		.L408:
		.L420:
		.L396:
  725     poptext; fault(type) %unless type=repexp
				mov	x18, x19
				bl	POPTEXT.7996
		.LVL600:
  726     dump(16_E9); labelref(label,val)
				cmp	w20, 30
				bne	.L409
				ldr	w0, [x19, 204]
				cmp	w0, 14
				beq	.L410
				mov	x18, x19
				mov	w0, 233
				bl	DUMP.7958
		.LVL602:
  727   %finishelseif type=kjump %start
				mov	x18, x19
				bl	FAULT.7724
		.LVL601:
		.L410:
				mov	x18, x19
				ldr	w1, [x19, 200]
				mov	w0, 3
				bl	LABELREF.7984
		.LVL603:
				b	.L396
		.L409:
  728     nextatom; dump(16_e9); labelref(type,val)
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL604:
  729   %finishelseif type=kreturn %start
				cmp	w20, 24
				bne	.L411
				mov	x18, x19
				mov	w0, 233
				bl	DUMP.7958
		.LVL605:
				b	.L396
		.L411:
  730     expr %unless atomtype(atompos)=sep
				mov	x18, x19
				ldr	w1, [x19, 200]
				ldr	w0, [x19, 204]
				bl	LABELREF.7984
		.LVL606:
				ldr	w0, [x19, 3824]
				sub	w0, w0, #1
				add	x0, x19, x0, sxtw 2
				ldr	w0, [x0, 3624]
				cmp	w0, 14
				beq	.L413
  731     return
				cmp	w20, 25
				bne	.L412
				mov	x18, x19
				bl	EXPR.8000
		.LVL607:
		.L413:
				mov	x18, x19
				bl	RETURN.8110
		.LVL608:
  732   %finishelseif type&varmask=var %start
				b	.L396
		.L412:
  733     t=type; v=val; i=0
  734     %if open bracket %start
				tbnz	x20, 0, .L414
		.LVL609:
				ldr	w22, [x19, 200]
		.LVL610:
				mov	x18, x19
				bl	OPENBRACKET.7874
		.LVL611:
				mov	w21, w0
				cbz	w0, .L415
  735       expr; double(t); dump(pushax)
				mov	x18, x19
				bl	EXPR.8000
		.LVL612:
  736       close bracket
				mov	x18, x19
				mov	w0, w20
				bl	DOUBLE.8085
		.LVL613:
				mov	x18, x19
				bl	CLOSEBRACKET.7879
		.LVL615:
  737       i=1
				mov	x18, x19
				mov	w0, 80
				bl	DUMP.7958
		.LVL614:
				mov	w21, 1
		.LVL616:
		.L415:
  738     %finish
  739     fault(form) %unless equal sign
				mov	x18, x19
				bl	EQUALSIGN.7884
		.LVL617:
				cbnz	w0, .L416
  740     expr; dump(16_5e) %unless i=0; !pop si
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL618:
		.L416:
				mov	x18, x19
				bl	EXPR.8000
		.LVL619:
  741     direct(store,t,v,i)
				cbz	w21, .L417
				mov	x18, x19
				mov	w3, w21
				mov	w2, w22
				mov	w1, w20
				mov	w0, 13
				bl	DIRECT.8051
		.LVL621:
  742   %finishelseif type=proc %or type=xproc %or type=spec %start
				mov	x18, x19
				mov	w0, 94
				bl	DUMP.7958
		.LVL620:
		.L417:
				b	.L396
		.LVL622:
		.L414:
  743     call(type,val)
				mov	x18, x19
				ldr	w1, [x19, 200]
				mov	w0, w20
				bl	CALL.8003
		.LVL623:
  744   %else
				sub	w0, w20, #8
				cmp	w0, 2
				bhi	.L418
		.L419:
				b	.L396
		.L418:
  745     atompos=atompos-1
				ldr	w0, [x19, 3824]
				sub	w0, w0, #1
				str	w0, [x19, 3824]
  746   %finish
  747 %end
				b	.L396
		.LFE217:
				.align	2
				.global	main
		main:
		.LFB185:
  748
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
				ldp	x23, x24, [sp, 48]
				ldr	x25, [sp, 64]
				ldp	x29, x30, [sp], 80
				ret
		.LVL580:
		.L421:
  749 %integerfn cond; !Evaluate condition, return value of jump opcode
				stp	x29, x30, [sp, -32]!
				add	x29, sp, 0
				str	x19, [sp, 16]
				mov	x19, x18
  750   expr; nextatom; fault(form) %unless type=comp
				bl	EXPR.8000
		.LVL529:
  751   v=val; nextatom; unary
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL530:
				ldr	w0, [x19, 200]
				str	w0, [x19, 8]
  752   %if atomtype(atompos)#sep %or (type#constant %and type&varmask#var) %start
				ldr	w0, [x19, 204]
				cmp	w0, 12
				beq	.L374
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL532:
				mov	x18, x19
				bl	UNARY.7889
		.LVL533:
				ldr	w0, [x19, 3824]
				sub	w0, w0, #1
				add	x0, x19, x0, sxtw 2
				ldr	w0, [x0, 3624]
				cmp	w0, 14
				bne	.L375
				ldr	w0, [x19, 204]
				cmp	w0, 1
				beq	.L376
		.L375:
				mov	x18, x19
				mov	w0, 80
				bl	DUMP.7958
		.LVL534:
  753     dump(pushax); atompos=atompos-1; expr
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL531:
		.L374:
  754     dump(16_8B); dump(16_D8); dump(popax); !Mov bx,ax
				ldr	w0, [x19, 3824]
				sub	w0, w0, #1
				str	w0, [x19, 3824]
				mov	x18, x19
				mov	w0, 139
				bl	DUMP.7958
		.LVL536:
				mov	x18, x19
				mov	w0, 216
				bl	DUMP.7958
		.LVL537:
  755     type=bx
				mov	x18, x19
				bl	EXPR.8000
		.LVL535:
				mov	w0, 17
				str	w0, [x19, 204]
		.L376:
  756   %finish
				mov	x18, x19
				mov	w0, 88
				bl	DUMP.7958
		.LVL538:
  757   direct(cmp,type,val,0)
				mov	x18, x19
				mov	w3, 0
				ldr	w2, [x19, 200]
				ldr	w1, [x19, 204]
				mov	w0, 7
				bl	DIRECT.8051
		.LVL539:
  758   %result=16_72 %if v=']'+128
				ldr	w0, [x19, 8]
				cmp	w0, 221
				beq	.L386
		.L378:
  759   %result=16_73 %if v='['
				cmp	w0, 91
				beq	.L387
		.L379:
				mov	w0, 114
				b	.L373
		.L387:
  760   %result=16_74 %if v='#'
				cmp	w0, 35
				beq	.L388
		.L380:
				mov	w0, 115
				b	.L373
		.L388:
  761   %result=16_75 %if v='='
				cmp	w0, 61
				beq	.L389
		.L381:
				mov	w0, 116
				b	.L373
		.L389:
  762   %result=16_76 %if v=']'
				cmp	w0, 93
				beq	.L390
		.L382:
				mov	w0, 117
				b	.L373
		.L390:
  763   %result=16_77 %if v='['+128
				cmp	w0, 219
				beq	.L391
		.L383:
				mov	w0, 118
				b	.L373
		.L391:
  764   %result=16_7c %if v='>'+128
				cmp	w0, 190
				beq	.L392
		.L384:
				mov	w0, 119
				b	.L373
		.L392:
  765   %result=16_7d %if v='<'
				cmp	w0, 60
				beq	.L393
		.L385:
				mov	w0, 124
				b	.L373
		.L393:
  766   %result=16_7e %if v='>'
				mov	w0, 125
				b	.L373
		.LFE218:
				.align	2
		INSTRUCTION.8206:
		.LFB217:
  767   %result=16_7f; ! %if v='<'+128
				cmp	w0, 62
				cset	w0, ne
				add	w0, w0, 126
		.L377:
		.L373:
  768 %end
				ldr	x19, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.L386:
  769
  770 ! Main Program
  771
  772 %onevent 15 %start
				adrp	x0, :got:_imp_event
				ldr	x0, [x0, #:got_lo12:_imp_event]
				add	x0, x0, 536
				bl	__sigsetjmp
		.LVL626:
				cbnz	w0, .L426
		.LVL627:
				mov	w1, 32768
				adrp	x0, :got:_imp_event
				ldr	x0, [x0, #:got_lo12:_imp_event]
				bl	_imp_on_event_enter
		.LVL628:
		.L426:
  773 %finish
  774
  775 %if tagpos=1 %start; ! (not via event: first time)
				ldr	w0, [x29, 12504]
				cmp	w0, 1
				beq	.L529
		.L427:
  776 program = cliparam
  777 openinput(source,program.".lc")
  778 openoutput(object,program.".iob")
				add	x21, x29, 12288
				add	x21, x21, 640
				mov	x2, 31
				add	x1, x29, 368
				mov	x0, x21
				bl	_imp_strncpy
		.LVL633:
		.LBB449:
		.LBB450:
  779 openoutput(list,program.".lis")
				add	x8, x29, 880
				add	x1, x29, 1136
				mov	x0, x21
				bl	_imp_join
		.LVL634:
				add	x22, x29, 4096
				add	x22, x22, 1648
				mov	x20, 256
				mov	x2, x20
				add	x1, x29, 624
				mov	x0, x22
				bl	memcpy
		.LVL635:
		.LBE450:
		.LBE449:
		.LBB451:
		.LBB452:
				add	x19, x29, 112
				mov	x2, x20
				mov	x1, x22
				mov	x0, x19
				bl	memcpy
		.LVL636:
				mov	x1, x19
				mov	w0, 1
				bl	_imp_openinput
		.LVL637:
		.LBE452:
		.LBE451:
		.LBB453:
		.LBB454:
  780 selectoutput(list)
				add	x8, x29, 1648
				add	x1, x29, 1904
				mov	x0, x21
				bl	_imp_join
		.LVL638:
				add	x22, x29, 4096
				add	x22, x22, 1904
				mov	x2, x20
				add	x1, x29, 1392
				mov	x0, x22
				bl	memcpy
		.LVL639:
		.LBE454:
		.LBE453:
		.LBB455:
		.LBB456:
				mov	x2, x20
				mov	x1, x22
				mov	x0, x19
				bl	memcpy
		.LVL640:
				mov	x1, x19
				mov	w0, 1
				bl	_imp_openoutput
		.LVL641:
		.LBE456:
		.LBE455:
		.LBB457:
		.LBB458:
  781 printstring("                  LC Cross-compiler  06/01/81"); newline; newline
				add	x23, x29, 2672
				mov	x8, x23
				add	x1, x29, 2416
				mov	x0, x21
				bl	_imp_join
		.LVL642:
				add	x21, x29, 4096
				add	x21, x21, 2160
				mov	x2, x20
				add	x1, x29, 2160
				mov	x0, x21
				bl	memcpy
		.LVL643:
		.LBE458:
		.LBE457:
		.LBB459:
		.LBB460:
				mov	x2, x20
				mov	x1, x21
				mov	x0, x19
				bl	memcpy
		.LVL644:
				mov	x1, x19
				mov	w0, 2
				bl	_imp_openoutput
		.LVL645:
		.LBE460:
		.LBE459:
		.LBB461:
		.LBB462:
				adrp	x0, :got:_imp_OutStream
				ldr	x0, [x0, #:got_lo12:_imp_OutStream]
				mov	w1, 2
				str	w1, [x0]
				adrp	x0, :got:_imp_outfile
				ldr	x0, [x0, #:got_lo12:_imp_outfile]
				ldr	x1, [x0, 584]
				adrp	x0, :got:_imp_OutFile
				ldr	x0, [x0, #:got_lo12:_imp_OutFile]
				str	x1, [x0]
				adrp	x21, .LANCHOR0
				add	x21, x21, :lo12:.LANCHOR0
				add	x0, x21, x20
				bl	check_outstream
		.LVL646:
		.LBE462:
		.LBE461:
		.LBB463:
				mov	x2, x20
				add	x1, x21, 1104
				mov	x0, x23
				bl	memcpy
		.LVL647:
				add	x22, x29, 2928
				mov	x2, x20
				mov	x1, x23
				mov	x0, x22
				bl	memcpy
		.LVL648:
				add	x21, x29, 4096
				add	x21, x21, 2416
				mov	x2, x20
				mov	x1, x22
				mov	x0, x21
				bl	memcpy
		.LVL649:
		.LBE463:
		.LBB464:
		.LBB465:
				mov	x2, x20
				mov	x1, x21
				mov	x0, x19
				bl	memcpy
		.LVL650:
				mov	x0, x19
				bl	_imp_printstring
		.LVL651:
		.LBE465:
		.LBE464:
		.LBB466:
		.LBB467:
				bl	_imp_newline
		.LVL652:
		.LBE467:
		.LBE466:
		.LBB468:
		.LBB469:
				bl	_imp_newline
		.LVL653:
				ldr	w0, [x29, 12504]
				mov	w3, 17
				mov	w5, w0
				sub	w1, w0, #2
		.LBE469:
		.LBE468:
  782   %for type=kconst,1,krepeat %cycle
  783     tag1(tagpos)=n1(type); tag2(tagpos)=n2(type)
				add	x4, x29, 8192
				add	x4, x4, 904
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				add	x8, x0, 1360
				sxtw	x2, w2
				add	x9, x2, 652
				sxtw	x6, w6
				ldr	w10, [x8, x6, lsl 2]
				str	w10, [x4, x9, lsl 2]
  784     tagtype(tagpos)=type; tagval(tagpos)=-1
				add	x0, x0, 1416
				add	x9, x2, 452
				ldr	w6, [x0, x6, lsl 2]
				str	w6, [x4, x9, lsl 2]
				add	x6, x2, 252
				str	w3, [x4, x6, lsl 2]
  785     tagpos=tagpos+1
				mov	w7, -1
		.L428:
				sub	w6, w3, #17
				sub	w2, w3, #16
				add	w2, w2, w1
				add	x2, x2, 52
				str	w7, [x4, x2, lsl 2]
		.LDL20:
				add	w3, w3, 1
				cmp	w3, 31
				bne	.L428
		.LDL21:
				add	w5, w5, 14
				str	w5, [x29, 12504]
				mov	w0, 30
				str	w0, [x29, 9300]
		.LVL654:
		.LBB470:
		.LBB471:
				adrp	x0, :got:_imp_InStream
				ldr	x0, [x0, #:got_lo12:_imp_InStream]
				mov	w1, 1
				str	w1, [x0]
				adrp	x0, :got:_imp_infile
				ldr	x0, [x0, #:got_lo12:_imp_infile]
				ldr	x1, [x0, 296]
				adrp	x0, :got:_imp_InFile
				ldr	x0, [x0, #:got_lo12:_imp_InFile]
				str	x1, [x0]
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				add	x0, x0, 1472
				bl	check_instream
		.LVL655:
		.LBE471:
		.LBE470:
  786   %repeat
  787   selectinput(source); program=""
  788 %finish
  789
  790 %cycle
				mov	x2, 31
				add	x1, x29, 3184
				add	x0, x29, 12288
				add	x0, x0, 640
				bl	_imp_strncpy
		.LVL656:
				b	.L427
		.L431:
		.L434:
  791    readline
				add	x19, x29, 8192
				add	x19, x19, 904
				mov	x18, x19
				bl	READLINE.7740
		.LVL629:
  792    %cycle;  !Deal with labels
  793       nextatom
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL630:
  794       %exitunless type=unknown %and atomtype(atompos)=colon
				ldr	w21, [x29, 9300]
				cbnz	w21, .L434
  795       tagtype(val)=label; satrefs(tagval(val),cloc)
				add	x20, x29, 8192
				add	x20, x20, 912
				mov	w23, 3
				ldr	w0, [x29, 12920]
				sub	w0, w0, #1
				add	x0, x20, x0, sxtw 2
				ldr	w0, [x0, 3616]
				cmp	w0, 13
				bne	.L432
		.L433:
				ldr	w0, [x29, 9296]
				sub	w0, w0, #1
				sxtw	x0, w0
				add	x1, x0, 252
				str	w23, [x19, x1, lsl 2]
  796       tagval(val)=cloc; atompos=atompos+1
				add	x0, x0, 52
				mov	x18, x19
				ldr	w1, [x29, 12516]
				ldr	w0, [x19, x0, lsl 2]
				bl	SATREFS.7975
		.LVL631:
				ldr	w0, [x29, 9296]
				sub	w0, w0, #1
				add	x0, x19, x0, sxtw 2
				ldr	w1, [x29, 12516]
				str	w1, [x0, 208]
  797       access=1
				mov	w22, 1
		.L430:
				ldr	w0, [x29, 12920]
				add	w0, w0, 1
				str	w0, [x29, 12920]
				str	w22, [x29, 9116]
  798    %repeat
				b	.L430
		.L529:
		.LBB446:
		.LBB447:
		.LBB448:
				add	x8, x29, 4096
				add	x8, x8, 1392
				bl	_imp_cliparam
		.LVL632:
		.LBE448:
		.LBE447:
		.LBE446:
  799    %continueif type=sep %and ifpos=0
				cmp	w21, 14
				bne	.L435
  800    %if type=kconst %start
				ldr	w0, [x29, 12508]
				cbz	w0, .L429
				cmp	w21, 17
				bne	.L432
		.LBB475:
		.LBB476:
  801       constdef
  802    %finishelseif type=kbyte %or type=kword %start
  803       vardef(type)
  804    %finishelseif type=kspec %or type=kproc %start
  805       procdef(type)
				mov	w0, w21
		.L443:
				mov	w0, w21
				sub	w1, w21, #18
				cmp	w1, 1
				bhi	.L443
				cmp	w21, 18
				mov	w26, 4
				mov	w0, 5
				csel	w26, w26, w0, ne
		.LBB477:
		.LBB478:
  806    %finishelseif type=kend %start
  807       %exitif level=0; level=0
				sub	w0, w0, #20
				cmp	w0, 1
				bls	.L530
		.L468:
				ldr	w0, [x29, 9112]
				cbz	w0, .L484
		.L485:
  808       return %unless access=0; flush
				cmp	w21, 22
				beq	.L531
		.L483:
				ldr	w0, [x29, 9116]
				cbz	w0, .L486
  809       val=oldtpos; oldtpos=tagpos; tagpos=val; ! Reset tagpos before moaning
				mov	x18, x19
				bl	RETURN.8110
		.LVL791:
		.L486:
				ldr	w0, [x29, 9096]
				str	w0, [x29, 9296]
  810       %while oldtpos>tagpos %cycle
				str	wzr, [x29, 9112]
				ldr	w1, [x29, 12504]
				str	w1, [x29, 9096]
  811          oldtpos=oldtpos-1; fault(labund) %if tagtype(oldtpos)=unknown
				mov	x18, x19
				bl	FLUSH.7962
		.LVL792:
				str	w0, [x29, 12504]
				mov	w23, 0
				ldr	w3, [x29, 12504]
				mov	w2, w23
		.L490:
				cmp	w3, w0
				bge	.L489
				sub	w0, w0, #1
  812       %repeat
				mov	x22, x19
				mov	w20, 1
				sub	w1, w0, #1
				add	x1, x19, x1, sxtw 2
				ldr	w1, [x1, 1008]
				mov	w2, w20
				cbnz	w1, .L490
				str	w0, [x29, 9096]
  813       %unless textlevel=0 %start
				mov	w21, 10
		.L487:
		.L488:
				ldr	w0, [x29, 9096]
				mov	x18, x22
				mov	w0, w21
				bl	FAULT.7724
		.LVL793:
				b	.L487
		.L489:
				cbnz	w2, .L556
		.L491:
				ldr	w0, [x29, 9284]
				cbz	w0, .L519
  814          poptext; textlevel=0; fault(type)
				mov	x18, x19
				bl	POPTEXT.7996
		.LVL794:
  815       %finish
				str	wzr, [x29, 9284]
  816    %finishelseif type=kprogram %start
				mov	x18, x19
				ldr	w0, [x29, 9300]
				bl	FAULT.7724
		.LVL795:
				b	.L519
		.L556:
				str	w0, [x29, 9096]
				b	.L491
		.L532:
  817       fault(ambig) %unless program=""
  818       nextatom; fault(form) %unless type=string
				cmp	w21, 26
				beq	.L532
		.L492:
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL798:
  819       fault(form) %if val='"'; !Null name not allowed
				add	x28, x19, 3832
		.LBB443:
		.LBB444:
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				add	x0, x0, 256
				str	x0, [x29, 104]
		.L429:
		.LBE444:
		.LBE443:
				add	x1, x29, 3440
				mov	x0, x28
				bl	_imp_strcmp
		.LVL796:
				cbz	w0, .L493
				ldr	w0, [x29, 9300]
				cmp	w0, 2
				bne	.L557
		.L494:
				ldr	w0, [x29, 9296]
				cmp	w0, 34
				beq	.L558
		.L495:
  820       v=line(val)
				ldr	w0, [x29, 9296]
				sub	w0, w0, #1
				add	x1, x29, 16384
				add	x1, x1, 800
				ldrb	w0, [x1, w0, sxtw]
				str	w0, [x29, 9104]
		.LBB525:
		.LBB526:
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL811:
				b	.L494
		.L558:
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL812:
				b	.L495
		.L533:
  821       %cycle
  822          val=val+1; program=program.tostring(v); v=line(val)
				mov	x18, x19
				mov	w0, 6
				bl	FAULT.7724
		.LVL797:
		.L493:
				ldr	w0, [x29, 9296]
				add	w0, w0, 1
				str	w0, [x29, 9296]
		.LVL799:
		.LBB528:
		.LBB527:
  823       %repeatuntil v='"'
				cmp	w0, 34
				bne	.L496
		.L497:
  824       program=program."_" %unless charno(program,length(program))='_'
				add	x0, x29, 12288
				add	x0, x0, 16
				ldrb	w0, [x0, 624]
				add	x1, x29, 12288
				add	x1, x1, 640
				ldrb	w0, [x1, x0]
				cmp	w0, 95
				beq	.L498
		.LBB529:
		.LBB530:
  825       selectoutput(object); printsymbol(2); printsymbol(6)
				add	x23, x29, 4096
				add	x23, x23, 112
				add	x22, x29, 3952
		.LBE526:
		.LBE525:
				add	x21, x29, 3696
				mov	x8, x22
				mov	x1, x23
				mov	x0, x28
				bl	_imp_join
		.LVL800:
		.LBE527:
		.LBE528:
				mov	x2, 31
				mov	x1, x21
				mov	x0, x28
				bl	_imp_strncpy
		.LVL801:
  826       printsymbol(length(program)); printstring(program)
  827    %finishelseif type=kcycle %start
				add	x8, x29, 4096
				add	x8, x8, 624
				add	x1, x29, 4096
				add	x1, x1, 880
				mov	x0, x28
				bl	_imp_join
		.LVL802:
		.LBE530:
		.LBE529:
				mov	x2, 31
				add	x1, x29, 4096
				add	x1, x1, 368
				mov	x0, x28
				bl	_imp_strncpy
		.LVL803:
		.L498:
		.LBB531:
		.LBB445:
				adrp	x0, :got:_imp_OutStream
				ldr	x0, [x0, #:got_lo12:_imp_OutStream]
				mov	w1, 1
				str	w1, [x0]
				adrp	x0, :got:_imp_outfile
				ldr	x0, [x0, #:got_lo12:_imp_outfile]
				ldr	x1, [x0, 296]
				adrp	x0, :got:_imp_OutFile
				ldr	x0, [x0, #:got_lo12:_imp_OutFile]
				str	x1, [x0]
				ldr	x0, [x29, 104]
				bl	check_outstream
		.LVL804:
		.LBE445:
		.LBE531:
		.LBB532:
		.LBB533:
				mov	w0, 2
				bl	_imp_printsymbol
		.LVL805:
		.LBE533:
		.LBE532:
		.LBB534:
		.LBB535:
				mov	w0, 6
				bl	_imp_printsymbol
		.LVL806:
		.LBE535:
		.LBE534:
		.LBB536:
		.LBB537:
				add	x0, x29, 12288
				add	x0, x0, 16
				ldrb	w0, [x0, 624]
				bl	_imp_printsymbol
		.LVL807:
				add	x21, x29, 4096
				add	x21, x21, 2672
				mov	x22, 256
				mov	x2, x22
				add	x1, x29, 4096
				add	x1, x1, 1136
				mov	x0, x21
				bl	memcpy
		.LVL808:
		.LBE537:
		.LBE536:
		.LBB538:
		.LBB539:
				add	x20, x29, 112
				mov	x2, x22
				mov	x1, x21
				mov	x0, x20
				bl	memcpy
		.LVL809:
				mov	x0, x20
				bl	_imp_printstring
		.LVL810:
				b	.L519
		.L557:
		.LBE539:
		.LBE538:
  828       pushtext(repexp,cloc)
				mov	x20, x1
		.L496:
				ldr	w0, [x29, 9296]
				sub	w0, w0, #1
				ldrb	w0, [x20, w0, sxtw]
				str	w0, [x29, 9104]
				mov	x18, x19
				ldr	w1, [x29, 12516]
				mov	w0, 14
				bl	PUSHTEXT.7992
		.LVL813:
				b	.L519
		.L534:
  829    %finishelseif type=kelse %start
				cmp	w21, 29
				beq	.L533
		.L499:
  830       poptext; fault(type) %unless type=finexp
				mov	x18, x19
				bl	POPTEXT.7996
		.LVL814:
  831       satrefs(val,cloc+3)
				cmp	w21, 27
				beq	.L534
		.L500:
				ldr	w0, [x29, 9300]
				cmp	w0, 15
				beq	.L501
				mov	x18, x19
				ldr	w1, [x29, 12516]
				add	w1, w1, 3
				ldr	w0, [x29, 9296]
				bl	SATREFS.7975
		.LVL816:
  832       poptext;  fault(type) %unless type=finexp
				mov	x18, x19
				bl	FAULT.7724
		.LVL815:
		.L501:
				mov	x18, x19
				bl	POPTEXT.7996
		.LVL817:
  833       dump(16_e9); dump(val); dump(val>>8)
				ldr	w0, [x29, 9300]
				cmp	w0, 15
				beq	.L502
				mov	x18, x19
				mov	w0, 233
				bl	DUMP.7958
		.LVL819:
  834       %if ifpos=0 %start
				mov	x18, x19
				bl	FAULT.7724
		.LVL818:
		.L502:
				mov	x18, x19
				ldr	w0, [x29, 9296]
				bl	DUMP.7958
		.LVL820:
				ldr	w0, [x29, 12508]
				cbnz	w0, .L503
  835         pushtext(context,0)
				mov	x18, x19
				ldr	w0, [x29, 9296]
				lsr	w0, w0, 8
				bl	DUMP.7958
		.LVL821:
				mov	x18, x19
				mov	w1, 0
				mov	w0, 16
				bl	PUSHTEXT.7992
		.LVL822:
		.L504:
  836       %else
  837         pushtext(finexp,cloc-2)
				mov	x18, x19
				ldr	w1, [x29, 12516]
				sub	w1, w1, #2
				mov	w0, 15
				bl	PUSHTEXT.7992
		.LVL824:
  838         atompos=ifpos+1; dump(cond!!1); dump(3)
				ldr	w0, [x29, 12508]
				add	w0, w0, 1
				str	w0, [x29, 12920]
  839         dump(16_E9); dump(0); dump(0)
				mov	x18, x19
				bl	COND.8245
		.LVL825:
				mov	x18, x19
				eor	w0, w0, 1
				bl	DUMP.7958
		.LVL826:
				mov	x18, x19
				mov	w0, 233
				bl	DUMP.7958
		.LVL828:
  840         atompos=ifpos %and fault(form) %unless ifpos=2
				mov	x18, x19
				mov	w0, 3
				bl	DUMP.7958
		.LVL827:
				mov	x18, x19
				mov	w0, 0
				bl	DUMP.7958
		.LVL829:
				ldr	w0, [x29, 12508]
				cmp	w0, 2
				bne	.L559
		.L505:
  841         IFPOS=0
				mov	x18, x19
				mov	w0, 0
				bl	DUMP.7958
		.LVL830:
				str	wzr, [x29, 12508]
				b	.L504
		.L559:
				str	w0, [x29, 12920]
  842       %finish
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL831:
				b	.L505
		.L535:
  843       pushtext(finexp,cloc-2)
				mov	x18, x19
				ldr	w1, [x29, 12516]
				sub	w1, w1, #2
				mov	w0, 15
				bl	PUSHTEXT.7992
		.LVL823:
				b	.L519
		.L503:
  844    %finishelseif type=kfinish %start
  845       poptext; fault(type) %unless type=finexp %or type=context
				mov	x18, x19
				bl	POPTEXT.7996
		.LVL832:
  846       satrefs(val,cloc)
				cmp	w21, 28
				beq	.L535
		.L506:
				ldr	w0, [x29, 9300]
				mov	x18, x19
				ldr	w1, [x29, 12516]
				ldr	w0, [x29, 9296]
				bl	SATREFS.7975
		.LVL834:
  847       poptext; satrefs(val,cloc); access=1
				sub	w1, w0, #15
				cmp	w1, 1
				bls	.L507
				mov	x18, x19
				bl	POPTEXT.7996
		.LVL835:
  848    %else
				mov	x18, x19
				bl	FAULT.7724
		.LVL833:
		.L507:
				mov	x18, x19
				ldr	w1, [x29, 12516]
				ldr	w0, [x29, 9296]
				bl	SATREFS.7975
		.LVL836:
				b	.L519
		.L536:
		.LBB540:
		.LBB474:
  849       fault(varund) %if type=unknown
				cbnz	w21, .L508
				mov	w0, 1
				str	w0, [x29, 9116]
  850       terminate declarations
				mov	x18, x19
				mov	w0, 12
				bl	FAULT.7724
		.LVL657:
		.L508:
		.LBB472:
		.LBB473:
  851       %if ifpos=0 %start;  !  Statement
				ldr	w0, [x29, 12508]
				cbz	w0, .L538
		.L514:
  852          atompos=atompos-1; instruction
				ldr	w0, [x29, 12920]
				sub	w0, w0, #1
				str	w0, [x29, 12920]
  853       %finishelseif type=sep %start;  ! IF condition
				mov	x18, x19
				bl	INSTRUCTION.8206
		.LVL847:
		.L515:
  854          fault(form) %unless ifpos=atompos
				ldr	w1, [x29, 12920]
				cmp	w0, w1
				beq	.L517
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL658:
		.L517:
				ldr	w0, [x29, 12508]
				add	w0, w0, 1
				str	w0, [x29, 12920]
  855          atompos=ifpos+1
				ldr	w1, [x29, 9300]
				cmp	w1, 14
				bne	.L516
  856          dump(cond!!1); dump(3); dump(16_E9); dump(0); dump(0)
				mov	x18, x19
				bl	COND.8245
		.LVL659:
				mov	x18, x19
				eor	w0, w0, 1
				bl	DUMP.7958
		.LVL660:
  857          pushtext(finexp,0); pushtext(finexp,cloc-2)
				mov	x18, x19
				mov	w0, 3
				bl	DUMP.7958
		.LVL661:
				mov	x18, x19
				mov	w1, 0
				mov	w0, 15
				bl	PUSHTEXT.7992
		.LVL665:
  858       %else;   ! Statement IF condition
				mov	x18, x19
				mov	w0, 233
				bl	DUMP.7958
		.LVL662:
				mov	x18, x19
				ldr	w1, [x29, 12516]
				sub	w1, w1, #2
				mov	w0, 15
				bl	PUSHTEXT.7992
		.LVL666:
				b	.L515
		.L435:
  859          oldapos=atompos-1; atompos=ifpos+1
				mov	x18, x19
				mov	w0, 0
				bl	DUMP.7958
		.LVL663:
				ldr	w20, [x29, 12920]
				sub	w20, w20, #1
		.LVL848:
  860          dump(cond)
				mov	x18, x19
				mov	w0, 0
				bl	DUMP.7958
		.LVL664:
				add	w0, w0, 1
				str	w0, [x29, 12920]
				mov	x18, x19
				bl	COND.8245
		.LVL849:
				mov	x18, x19
				bl	DUMP.7958
		.LVL850:
  861          oldcpos=cpos; dump(0)
				ldr	w21, [x29, 9288]
		.LVL851:
  862          atompos=oldapos; instruction
				mov	x18, x19
				mov	w0, 0
				bl	DUMP.7958
		.LVL852:
				str	w20, [x29, 12920]
  863          v=cpos-oldcpos-1; fault(far) %if v>127
				mov	x18, x19
				bl	INSTRUCTION.8206
		.LVL853:
				ldr	w0, [x29, 9288]
				sub	w0, w0, w21
				sub	w0, w0, #1
				str	w0, [x29, 9104]
  864          code(oldcpos)=v
				cmp	w0, 127
				ble	.L518
				add	x0, x29, 12288
				add	x0, x0, 896
				ldr	w1, [x29, 9104]
				strb	w1, [x0, w21, sxtw]
  865          access=1
				mov	x18, x19
				mov	w0, 9
				bl	FAULT.7724
		.LVL854:
		.L518:
				mov	w0, 1
				str	w0, [x29, 9116]
				b	.L515
		.LVL855:
		.L484:
		.LBB541:
		.LBB542:
				adrp	x22, :got:_imp_OutStream
				ldr	x22, [x22, #:got_lo12:_imp_OutStream]
				mov	w0, 1
				str	w0, [x22]
				adrp	x20, :got:_imp_OutFile
				ldr	x20, [x20, #:got_lo12:_imp_OutFile]
				adrp	x21, :got:_imp_outfile
				ldr	x21, [x21, #:got_lo12:_imp_outfile]
				ldr	x0, [x21, 296]
				str	x0, [x20]
				adrp	x19, .LANCHOR0
				add	x19, x19, :lo12:.LANCHOR0
				add	x19, x19, 256
				mov	x0, x19
				bl	check_outstream
		.LVL856:
		.LBE542:
		.LBE541:
		.LBB543:
		.LBB544:
				mov	w0, 10
				bl	_imp_printsymbol
		.LVL857:
		.LBE544:
		.LBE543:
		.LBB545:
		.LBB546:
				mov	w0, 2
				str	w0, [x22]
				ldr	x0, [x21, 584]
				str	x0, [x20]
				mov	x0, x19
				bl	check_outstream
		.LVL858:
		.LBE546:
		.LBE545:
		.LBB547:
		.LBB548:
				bl	_imp_newline
		.LVL859:
		.LBE548:
		.LBE547:
		.LBB549:
		.LBB550:
				mov	w0, 0
				bl	exit
		.LVL860:
		.LBE550:
		.LBE549:
		.LFE185:
				.section	.rodata
				.align	3
				.set	.LANCHOR0,. + 0
		.LC5:
				.byte	15
				.string	"test-new/lc.imp"
				.zero	239
		__PRETTY_FUNCTION__.7293:
				.string	"_imp_SELECTOUTPUT"
				.zero	6
		.LC8:
				.byte	3
				.string	"** "
				.zero	251
		.LC6:
				.byte	2
				.string	" C"
				.zero	252
		.LC7:
				.byte	2
				.string	" D"
				.zero	252
		CODE.8053:
				.word	138
				.word	2
				.word	42
				.word	34
				.word	10
				.word	50
				.word	58
				.word	40
				.word	56
				.word	48
				.word	224
				.word	232
				.word	136
				.word	141
		.LC3:
				.byte	45
				.string	"                  LC Cross-compiler  06/01/81"
				.zero	209
		N1.7721:
				.word	4676
				.word	32060
				.word	3683
				.word	26608
				.word	22585
				.word	7367
				.word	18374
				.word	14480
				.word	24847
				.word	22585
				.word	7308
				.word	8561
				.word	5035
				.word	24843
		N2.7722:
				.word	723
				.word	4
				.word	5
				.word	3
				.word	3
				.word	0
				.word	5
				.word	16
				.word	29429
				.word	10250
				.word	5
				.word	13032
				.word	449
				.word	6902
		__PRETTY_FUNCTION__.7289:
				.string	"_imp_SELECTINPUT"
				.bss
				.align	2
				.set	.LANCHOR2,. + 0
		SEMI.7742:
				.zero	4
		QUOTE.7743:
				.zero	4
				.section	.data.rel.ro.local,"aw",@progbits
				.align	3
				.set	.LANCHOR1,. + 0
		S.8019:
				.xword	.L31
				.xword	.L31
				.xword	.L31
				.xword	.L31
				.xword	.L31
				.xword	.L31
				.xword	.L31
				.xword	.L31
				.xword	.L31
				.xword	.L31
				.xword	.L31
				.xword	.L31
		S.7898:
				.xword	.L234
				.xword	.L234
				.xword	.L234
				.xword	.L234
				.xword	.L234
				.xword	.L234
				.xword	.L234
				.xword	.L234
				.xword	.L234
				.xword	.L234
				.xword	.L234
				.section	.rodata.str1.8,"aMS",@progbits,1
				.align	3
		.LC9:
				.string	"test-new/lc.imp"
		.LC10:
				.string	"->S(%d) out of bounds at %s line %d"
				.zero	4
		.LC11:
				.string	"switch jump to undefined label S(%d): at %s line %d"
				.zero	4
		.LC12:
				.string	"Illegal cycle I = 0, 1, GPOS - 1"
				.zero	7
		.LC13:
				.string	"Illegal cycle I = 0, 1, CPOS - 1"
				.zero	7
		.LC14:
				.string	""
				.zero	7
		.LC15:
				.string	"Illegal cycle I = TAGPOS - 1,  -1, 1"
		.Letext0:
  866       %finish
  867       ifpos=0
				str	wzr, [x29, 12508]
				b	.L519
		.L516:
  868    %finish
  869   nextatom; fault(form) %unless type=sep %and ifpos=0
				mov	x18, x19
				bl	NEXTATOM.7870
		.LVL787:
  870 %repeat
				ldr	w0, [x29, 9300]
				cmp	w0, 14
				bne	.L520
  871 selectoutput(object); printsymbol(10)
				ldr	w0, [x29, 12508]
				cbz	w0, .L429
		.L520:
  872 selectoutput(list); newline
  873 %endofprogram
				mov	x18, x19
				mov	w0, 5
				bl	FAULT.7724
		.LVL788:
				b	.L429
		.LVL789:
		.L555:
				str	w3, [x29, 8824]
				b	.L482
		.LVL790:
		.L531:
 1020 Statements compiled
