         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin; ! LC (Low-level compiler) for 8086
				.option nopic
		.Ltext0:
				.align	1
		NEXTATOM.6182:
		.LFB190:
		.LVL600:
				add	sp,sp,-992
				sd	ra,984(sp)
				sd	s0,976(sp)
				sd	s1,968(sp)
				sd	s2,960(sp)
				sd	s3,952(sp)
				sd	s4,944(sp)
				sd	s5,936(sp)
				sd	s6,928(sp)
				sd	s7,920(sp)
				sd	s8,912(sp)
				sd	s9,904(sp)
				sd	s10,896(sp)
				sd	s11,888(sp)
				li	t1,-16384
				add	sp,sp,t1
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				li	a4,16384
				add	a3,a4,776
				add	a2,sp,96
				add	a3,a3,a2
				sd	a5,0(a3)
				li	a5,-8192
				add	a3,a4,784
				add	a3,a3,a2
				add	a5,a3,a5
				sd	a5,8(sp)
				add	a5,a4,768
				add	a5,a5,a2
				add	a4,a4,896
				add	a4,a4,a2
				sd	a4,0(a5)
    2
				call	_imp_initialise
		.LVL601:
    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
				li	a5,4096
				ld	a4,8(sp)
				add	a5,a4,a5
				sw	zero,-260(a5)
   45
   46 !Atom types
				sw	zero,-668(a5)
   47 %constinteger unknown=0,constant=1,string=2,label=3
   48 %constinteger var=4, wordbit=1, glabit=2, varmask=16_fc
				sw	zero,-672(a5)
   49 %constinteger proc=8,xproc=9,spec=10
   50 %constinteger op=11,comp=12,colon=13,sep=14,bracket=15,bx=16!wordbit
				sw	zero,24(a4)
   51
   52 ! Keyword types
				sw	zero,204(a4)
   53 %constinteger kconst=17,kword=18,kbyte=19,kspec=20,kproc=21
   54 %constinteger kend=22,kmove=23,kjump=24,kreturn=25,kprogram=26
				sw	zero,200(a4)
   55 %constinteger kelse=27,kfinish=28,kcycle=29,krepeat=30
   56
				li	a4,1
				sw	a4,-680(a5)
   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)
		.LVL95:
				add	sp,sp,-2032
				sd	ra,2024(sp)
				sd	s0,2016(sp)
				sd	s1,2008(sp)
				sd	s2,2000(sp)
				sd	s3,1992(sp)
				sd	s4,1984(sp)
				add	sp,sp,-848
				mv	s3,t2
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				li	a4,4096
				add	a4,a4,-1272
				add	a4,a4,sp
				sd	a5,0(a4)
		.LVL96:
		.LBB256:
		.LBB257:
				lui	a5,%hi(_imp_OutStream)
				sw	zero,%lo(_imp_OutStream)(a5)
				lui	a5,%hi(_imp_outfile+8)
				ld	a4,%lo(_imp_outfile+8)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				lui	a0,%hi(.LANCHOR0+352)
		.LVL97:
				addi	a0,a0,%lo(.LANCHOR0+352)
				call	check_outstream
		.LVL98:
		.LBE257:
		.LBE256:
   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
				li	a5,4096
				add	a5,s3,a5
				li	a1,1
				lw	a0,-268(a5)
				call	_imp_writeint
		.LVL99:
		.LBB258:
		.LBB259:
				call	_imp_space
		.LVL100:
				li	s0,8192
				add	s0,s0,-104
				add	s0,s3,s0
		.LBE259:
		.LBE258:
   96    %cycle
   97       sym=line(i); printsymbol(sym); i=i+1
				lbu	s1,0(s0)
		.LVL102:
		.LBB260:
		.LBB261:
				mv	a0,s1
				call	_imp_printsymbol
		.LVL103:
				add	s0,s0,1
		.LVL104:
		.LBE261:
		.LBE260:
   98    %repeatuntil sym=nl
				li	s2,10
		.LVL101:
		.L81:
				bne	s1,s2,.L81
		.L82:
				li	s0,-4096
				li	a2,256
				add	a1,sp,520
				li	s4,4096
				add	a0,s4,-1528
				add	a0,a0,sp
				call	memcpy
		.LVL105:
		.LBB262:
		.LBB263:
				add	s2,sp,256
				li	a2,256
				add	a1,s4,-1528
				add	a1,a1,sp
				mv	a0,s2
				call	memcpy
		.LVL106:
				add	s0,s0,1520
				add	a5,s4,-1264
				add	a5,a5,sp
				add	s0,a5,s0
				mv	a0,s0
				call	_imp_printstring
		.LVL107:
		.LBE263:
		.LBE262:
   99    printstring(s(n)); write(atompos-1,1); newline
  100    selectoutput(list)
  101    printstring("** "); printstring(s(n))
				li	a2,256
				add	a1,s1,376
				add	a0,s4,-1784
				add	a0,a0,sp
				call	memcpy
		.LVL112:
				add	s1,sp,776
				li	a2,256
				add	a1,s4,-1784
				add	a1,a1,sp
				mv	a0,s1
				call	memcpy
		.LVL113:
				li	a2,256
				mv	a1,s1
				add	a0,s4,-1784
				add	a0,a0,sp
				call	memcpy
		.LVL114:
		.LBE268:
		.LBB269:
		.LBB270:
				li	a2,256
				add	a1,s4,-1784
				add	a1,a1,sp
				mv	a0,s2
				call	memcpy
		.LVL115:
				mv	a0,s0
				call	_imp_printstring
		.LVL116:
				li	a2,256
				add	a1,sp,1032
				add	a0,s4,-2040
				add	a0,a0,sp
				call	memcpy
		.LVL117:
		.LBE270:
		.LBE269:
		.LBB271:
		.LBB272:
				li	a2,256
				add	a1,s4,-2040
				add	a1,a1,sp
				mv	a0,s2
				call	memcpy
		.LVL118:
				mv	a0,s0
				call	_imp_printstring
		.LVL119:
		.LBE272:
		.LBE271:
  102    write(atompos-1,1); newline
				lw	a0,-272(s3)
				li	a1,1
				addw	a0,a0,-1
				call	_imp_writeint
		.LVL120:
		.LBB273:
		.LBB274:
				call	_imp_newline
		.LVL121:
		.LBE274:
		.LBE273:
  103    %signalevent 15
				lui	a5,%hi(_imp_current_file)
				ld	a1,%lo(_imp_current_file)(a5)
				beqz	a1,.L83
				add	a0,sp,1544
				call	_imp_c2istr
		.LVL122:
		.L84:
				lui	a5,%hi(_imp_current_line)
				lw	s1,%lo(_imp_current_line)(a5)
				beqz	s1,.L90
		.L85:
				lui	a1,%hi(.LC14)
				addi	a1,a1,%lo(.LC14)
				add	a0,sp,1800
				call	_imp_c2istr
		.LVL123:
				li	s0,-4096
				li	a2,256
				add	a1,sp,1544
				add	a0,sp,256
				call	memcpy
		.LVL124:
				li	a2,256
				add	a1,sp,1800
				mv	a0,sp
				call	memcpy
		.LVL125:
				add	a2,s0,1264
				add	a0,s0,1520
				li	a5,0
				li	a4,0
				li	a3,15
				li	s0,4096
				add	a1,s0,-1264
				add	a1,a1,sp
				add	a2,a1,a2
				mv	a1,s1
				add	s1,s0,-1264
				add	s1,s1,sp
				add	a0,s1,a0
				call	_signal_event
		.LVL126:
				li	a2,256
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a0,sp,1800
				call	memcpy
		.LVL127:
				li	a2,256
				add	a1,sp,1800
				add	a0,sp,1288
				call	memcpy
		.LVL128:
		.LBE275:
				li	a2,256
				add	a1,sp,1288
				add	a0,sp,1544
				call	memcpy
		.LVL129:
				j	.L84
		.L90:
				li	s1,103
				j	.L85
		.L91:
  104 %end
				li	a5,4096
				add	s3,s3,a5
				lw	a0,-272(s3)
				li	a1,1
				addw	a0,a0,-1
				call	_imp_writeint
		.LVL108:
		.LBB264:
		.LBB265:
				call	_imp_newline
		.LVL109:
		.LBE265:
		.LBE264:
		.LBB266:
		.LBB267:
				lui	a5,%hi(_imp_OutStream)
				li	a4,2
				sw	a4,%lo(_imp_OutStream)(a5)
				lui	a5,%hi(_imp_outfile+584)
				ld	a4,%lo(_imp_outfile+584)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				lui	s1,%hi(.LANCHOR0)
		.LVL110:
				addi	s1,s1,%lo(.LANCHOR0)
				add	a0,s1,352
				call	check_outstream
		.LVL111:
		.LBE267:
		.LBE266:
		.LBB268:
  105
				add	a5,s0,-1272
				add	a5,a5,sp
				ld	a4,0(a5)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L91
				add	sp,sp,848
				ld	ra,2024(sp)
				ld	s0,2016(sp)
				ld	s1,2008(sp)
				ld	s2,2000(sp)
				ld	s3,1992(sp)
				ld	s4,1984(sp)
				add	sp,sp,2032
				jr	ra
		.L83:
		.LBB275:
				call	__stack_chk_fail
		.LVL130:
		.LFE186:
				.align	1
		PUTATOM.6073:
		.LFB189:
  106 %routine readline
				add	sp,sp,-2032
				sd	ra,2024(sp)
				sd	s0,2016(sp)
				sd	s1,2008(sp)
				sd	s2,2000(sp)
				sd	s3,1992(sp)
				sd	s4,1984(sp)
				sd	s5,1976(sp)
				sd	s6,1968(sp)
				sd	s7,1960(sp)
				sd	s8,1952(sp)
				sd	s9,1944(sp)
				sd	s10,1936(sp)
				sd	s11,1928(sp)
				add	sp,sp,-688
				mv	s5,t2
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				li	s0,4096
				add	a4,s0,-1512
				add	a3,sp,16
				add	a4,a4,a3
				sd	a5,0(a4)
				li	a5,-4096
				add	a4,s0,-1504
				add	a4,a4,a3
				add	a5,a4,a5
				sd	a5,8(sp)
				mv	a4,a5
				add	a5,s0,-1392
				add	a5,a5,a3
				sd	a5,2032(a4)
				mv	a5,a4
				sd	t2,2024(a5)
		.LVL136:
		.LBB276:
		.LBB277:
				lui	a5,%hi(_imp_OutStream)
				li	a4,2
				sw	a4,%lo(_imp_OutStream)(a5)
				lui	a5,%hi(_imp_outfile+584)
				ld	a4,%lo(_imp_outfile+584)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				lui	a0,%hi(.LANCHOR0+352)
				addi	a0,a0,%lo(.LANCHOR0+352)
				call	check_outstream
		.LVL137:
		.LBE277:
		.LBE276:
  107 %owninteger semi=0
  108 %OWNINTEGER QUOTE=0
  109 %integer sym,n1,n2,radix,i,quoted,lpos
  110
  111   %routine phex(%integer x)
		.LVL35:
				add	sp,sp,-32
				sd	ra,24(sp)
				sd	s0,16(sp)
				sd	s1,8(sp)
				sd	s2,0(sp)
				mv	s2,a0
		.LVL36:
  112   %integer k,i
  113     %for i=12,-4,0 %cycle
  114       k=x>>i&15; k=k+7 %if k>9
				li	s0,16
				srlw	a0,s2,a0
		.LVL42:
				and	a0,a0,15
		.LVL43:
  115       printsymbol(k+'0')
				li	s1,9
				j	.L43
		.LVL37:
		.L42:
		.LBB224:
		.LBB225:
				add	a0,a0,48
		.LVL38:
				call	_imp_printsymbol
		.LVL39:
		.LDL4:
		.LBE225:
		.LBE224:
				ble	a0,s1,.L42
  116     %repeat
				beqz	s0,.L47
		.LVL40:
		.L43:
				add	a0,a0,7
		.LVL44:
				j	.L42
		.LVL45:
		.L47:
  117   %end
				addw	a0,s0,-4
				sext.w	s0,a0
		.LVL41:
  118
				ld	ra,24(sp)
				ld	s0,16(sp)
		.LVL46:
				ld	s1,8(sp)
				ld	s2,0(sp)
				add	sp,sp,32
				jr	ra
		.L44:
		.LFE188:
				.align	1
		GFLUSH.6250:
		.LFB198:
  119   %routine putatom(%integer t,v)
		.LVL131:
				add	sp,sp,-32
				sd	ra,24(sp)
				sd	s0,16(sp)
				sd	s1,8(sp)
				sd	s2,0(sp)
				mv	s2,a0
				mv	s1,a1
				mv	s0,t2
  120     fault(complex) %if atompos>atommax
				ld	t2,0(t2)
				li	a5,4096
				add	a5,t2,a5
				lw	a4,-272(a5)
				li	a5,50
				bgt	a4,a5,.L95
		.LVL132:
		.L93:
  121     atomtype(atompos)=t; atomval(atompos)=v
				ld	a4,0(s0)
				li	a3,4096
				add	a5,a4,a3
				lw	a5,-272(a5)
				addw	a5,a5,-1
				add	a5,a5,904
				sll	a5,a5,2
				add	a5,a4,a5
				sw	s2,8(a5)
				li	a0,1
		.LVL134:
				call	FAULT.6036
		.LVL135:
				j	.L93
		.LFE189:
				.align	1
		READLINE.6052:
		.LFB187:
  122     atompos=atompos+1
				ld	a4,0(s0)
				add	a5,a4,a3
				lw	a5,-272(a5)
				addw	a5,a5,-1
				add	a5,a5,856
				sll	a5,a5,2
				add	a5,a4,a5
				sw	s1,0(a5)
				ld	a5,0(s0)
				add	a5,a5,a3
				lw	a4,-272(a5)
				addw	a4,a4,1
				sw	a4,-272(a5)
  123   %end
  124
				ld	ra,24(sp)
				ld	s0,16(sp)
				ld	s1,8(sp)
				ld	s2,0(sp)
				add	sp,sp,32
				jr	ra
		.LVL133:
		.L95:
  125    selectoutput(list)
  126    %cycle
  127       %if semi=0 %start
				lui	s6,%hi(SEMI.6054)
				lw	a5,%lo(SEMI.6054)(s6)
				beqz	a5,.L207
		.L98:
  128         write(lineno+1,4)
				li	s9,4096
				add	s4,s5,s9
		.LBB278:
				lw	a0,-268(s4)
				li	a1,4
				addw	a0,a0,1
				call	_imp_writeint
		.LVL138:
		.LBB282:
  129         printstring(" C"); phex(cloc); printstring(" D"); phex(gloc)
				lui	s8,%hi(.LANCHOR0)
				addi	s8,s8,%lo(.LANCHOR0)
				add	s10,s8,632
				li	s7,-4096
		.LBE278:
		.LBB279:
		.LBB280:
				add	s3,s7,2020
				add	a5,s0,-1504
				add	a4,sp,16
				add	a5,a5,a4
				add	s3,a5,s3
				j	.L97
		.L207:
		.LBE280:
		.LBE279:
				li	a2,256
				mv	a1,s10
				add	a0,sp,1832
				call	memcpy
		.LVL139:
				add	s0,sp,552
				li	a2,256
				add	a1,sp,1832
				mv	a0,s0
				call	memcpy
		.LVL140:
				li	a2,256
				mv	a1,s0
				li	s2,4096
				add	a0,s2,-1768
				add	a5,sp,16
				add	a0,a0,a5
				call	memcpy
		.LVL141:
		.LBE282:
		.LBB283:
		.LBB284:
				add	s0,sp,272
				li	a2,256
				add	a1,s2,-1768
				add	a5,sp,16
				add	a1,a1,a5
				mv	a0,s0
				call	memcpy
		.LVL142:
				add	s1,s7,1760
				add	a5,s2,-1504
				add	a4,sp,16
				add	a5,a5,a4
				add	s1,a5,s1
				mv	a0,s1
				call	_imp_printstring
		.LVL143:
		.LBE284:
		.LBE283:
  130         space
				lw	a0,-676(s4)
				call	PHEX.6064
		.LVL144:
		.LBB285:
  131       %finish
				li	a2,256
				add	a1,s8,888
				add	a0,sp,1832
				call	memcpy
		.LVL145:
				li	a2,256
				add	a1,sp,1832
				add	a0,sp,808
				call	memcpy
		.LVL146:
				li	a2,256
				add	a1,sp,808
				add	a0,s2,-2024
				add	a5,sp,16
				add	a0,a0,a5
				call	memcpy
		.LVL147:
		.LBE285:
		.LBB286:
		.LBB287:
				li	a2,256
				add	a1,s2,-2024
				add	a5,sp,16
				add	a1,a1,a5
				mv	a0,s0
				call	memcpy
		.LVL148:
				mv	a0,s1
				call	_imp_printstring
		.LVL149:
		.LBE287:
		.LBE286:
  132       lpos=1; quoted=0
				lw	a0,-680(s4)
				call	PHEX.6064
		.LVL150:
		.LBB288:
		.LBB289:
				call	_imp_space
		.LVL151:
				j	.L98
		.LVL152:
		.L205:
		.LBE289:
		.LBE288:
  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
				addw	a5,s2,s1
				li	a4,80
				bne	a5,a4,.L100
				bnez	s2,.L101
  136          %else
				li	a5,10
				sw	a5,2020(s0)
		.LVL159:
		.LBB294:
		.LBB292:
				li	a0,10
				call	_imp_printsymbol
		.LVL160:
		.L102:
		.LBE292:
		.LBE294:
  137             readsymbol(sym)
  138          %finish
  139          printsymbol(sym)
				lui	a5,%hi(QUOTE.6055)
				lw	a0,%lo(QUOTE.6055)(a5)
				sw	a0,2020(s0)
		.LVL154:
		.LBB290:
		.LBB291:
				and	a0,a0,0xff
				call	_imp_printsymbol
		.LVL155:
		.L103:
		.LBE291:
		.LBE290:
  140          %if quoted=0 %start
				bnez	s2,.L103
				j	.L102
		.LVL168:
		.L104:
  141            quoted=1 %if sym='''' %or sym='"'
				lw	a5,2020(s0)
				li	a4,39
				beq	a5,a4,.L104
  142            quote=sym %if quoted#0
				li	a4,34
				beq	a5,a4,.L104
		.L105:
  143          %else
				lui	a4,%hi(QUOTE.6055)
				sw	a5,%lo(QUOTE.6055)(a4)
				j	.L106
		.LVL169:
		.L202:
  144            quoted=0 %if sym=quote
				lw	a4,2020(s0)
				lui	a5,%hi(QUOTE.6055)
				lw	a5,%lo(QUOTE.6055)(a5)
				beq	a4,a5,.L105
		.LVL156:
		.L106:
  145          %finish
  146          %if quoted=0 %start
  147             %if sym='{' %start; ! Comment
				lw	a5,2020(s0)
				li	a4,123
				beq	a5,a4,.L202
		.L107:
		.LVL161:
		.LBB295:
  148                %cycle
  149                   readsymbol(sym)
  150                   printsymbol(sym)
  151                   %if sym=nl %start
				li	s11,10
				lw	a5,2020(s0)
				bne	a5,s11,.L109
  152                      lineno=lineno+1; spaces(18)
				lw	a5,-268(s4)
				addw	a5,a5,1
				sw	a5,-268(s4)
		.LVL174:
		.LBB302:
		.LBB303:
				li	a0,18
				call	_imp_spaces
		.LVL175:
				j	.L109
		.LVL176:
		.L203:
		.LBE303:
		.LBE302:
  153                   %finish
  154                %repeatuntil sym='}'
				li	s2,125
		.LVL170:
				j	.L108
		.L109:
				lw	a5,2020(s0)
				beq	a5,s2,.L205
		.L108:
		.LVL171:
		.LBB299:
		.LBB281:
				mv	a0,s3
				call	_imp_readsymbol
		.LVL172:
		.LBE281:
		.LBE299:
		.LBB300:
		.LBB301:
				lbu	a0,2020(s0)
				call	_imp_printsymbol
		.LVL173:
		.LBE301:
		.LBE300:
  155                ->next
  156             %finish
				li	s2,0
				j	.L99
		.LVL153:
		.L101:
				li	s2,1
		.LVL157:
		.L114:
		.L117:
		.L118:
				li	s1,1
				li	s2,0
  157             sym=sym-32 %if 'a'<=sym<='z'; semi=0
  158             %if sym=';' %start
				lw	a5,2020(s0)
				li	a4,59
				beq	a5,a4,.L203
		.L112:
  159               sym=nl; lineno=lineno-1; semi=1
				li	a5,10
				sw	a5,2020(s0)
  160             %finish
				addw	a4,a5,-97
				li	a3,25
				bgtu	a4,a3,.L111
		.LBE295:
				lw	a5,-268(s4)
				addw	a5,a5,-1
				sw	a5,-268(s4)
  161             %if sym='|' %start
				li	a4,124
				beq	a5,a4,.L204
				li	a5,1
				sw	a5,%lo(SEMI.6054)(s6)
				li	s2,0
		.LVL177:
		.L113:
  162               readsymbol(sym) %and printsymbol(sym) %until sym=nl
  163             %finish
  164          %finish
				addw	a5,a5,-32
		.LVL162:
				sw	a5,2020(s0)
		.LVL163:
		.L111:
  165          lineno=lineno+1 %if sym=nl
				lw	a3,2020(s0)
				li	a5,10
				beq	a3,a5,.L113
				li	s0,10
		.L115:
		.LVL180:
		.LBB304:
		.LBB305:
				mv	a0,s3
				call	_imp_readsymbol
		.LVL181:
		.LBE305:
		.LBE304:
		.LBB306:
		.LBB307:
				lbu	a0,532(sp)
				call	_imp_printsymbol
		.LVL182:
		.LBE307:
		.LBE306:
				lw	a5,532(sp)
				bne	a5,s0,.L115
				li	a5,4096
				add	a5,a5,-1504
				add	a4,sp,16
				add	a5,a5,a4
				add	s0,a5,s7
				j	.L99
		.LVL185:
		.L206:
		.L121:
  166          line(lpos)=sym; lpos=lpos+1
				addw	a5,s1,-1
				add	a4,s5,a5
				li	a5,8192
				add	a5,a5,a4
				sb	a3,-104(a5)
				sw	zero,%lo(SEMI.6054)(s6)
				lw	a5,-268(s4)
				addw	a5,a5,1
				sw	a5,-268(s4)
				addw	a5,s1,-1
				add	a4,s5,a5
				li	a5,8192
				add	a5,a5,a4
				li	a4,10
				sb	a4,-104(a5)
				lw	a5,-268(s4)
				addw	a5,a5,1
				sw	a5,-268(s4)
				addw	a5,s1,-1
				add	a4,s5,a5
				li	a5,8192
				add	a5,a5,a4
				li	a4,10
				sb	a4,-104(a5)
  167       %repeatuntil sym=nl %and quoted=0
				addw	s1,s1,1
		.LVL158:
		.L99:
				li	s2,0
		.LVL164:
				j	.L114
		.LVL165:
		.L100:
		.LBB296:
		.LBB297:
				mv	a0,s3
				call	_imp_readsymbol
		.LVL166:
		.LDL5:
		.LDL6:
		.LBE297:
		.LBE296:
		.LBB298:
		.LBB293:
				lbu	a0,2020(s0)
				call	_imp_printsymbol
		.LVL167:
		.LBE293:
		.LBE298:
				addw	s1,s1,1
		.LVL178:
				addw	s1,s1,1
		.LVL183:
		.L120:
  168    %repeatuntil lpos>2; ! non-empty line
				bnez	s2,.L99
				li	a5,2
				bgt	s1,a5,.L206
		.LVL184:
		.L97:
  169
  170 ! Now decompose line into atoms
  171
				j	.L120
		.LVL179:
		.L204:
  172    atompos=1; ifpos=0; lpos=1
				li	a5,4096
				add	a5,s5,a5
				li	a4,1
				sw	a4,-272(a5)
  173 nextatom:
				sw	zero,-684(a5)
		.LVL186:
  174    %cycle
				li	s8,1
  175       sym=line(lpos); lpos=lpos+1
				li	s3,-4096
				addw	a5,s8,-1
				add	a4,s5,a5
				li	a5,8192
				add	a5,a5,a4
				lbu	a3,-104(a5)
				sext.w	a5,a3
				sw	a5,532(sp)
  176       ->tag %if 'A'<=sym<='Z'
				mv	s8,s0
		.LVL193:
				mv	s8,s0
		.LVL196:
				mv	s8,s0
		.LVL199:
				mv	s8,s0
		.LVL202:
				mv	s8,s0
		.LVL205:
				mv	s8,s0
		.LVL208:
				mv	s8,s0
		.LVL211:
				mv	s8,s0
		.LVL214:
				mv	s8,s0
		.LVL217:
				mv	s8,s0
		.LVL224:
				mv	s8,s0
		.LVL227:
				mv	s8,s0
				j	.L151
		.LVL234:
		.L224:
				mv	s8,s0
		.LVL239:
				addw	s0,s8,1
		.LVL255:
		.LBB314:
  177       ->num %if '0'<=sym<='9'
  178       %if sym=nl %start
				li	a4,10
				beq	a5,a4,.L211
		.L127:
  179         putatom(sep,0); atompos=1; %return
				li	t2,-4096
				add	t2,t2,2024
				li	s0,4096
				add	a5,s0,-1504
		.LVL188:
				add	a4,sp,16
				add	a5,a5,a4
				add	t2,a5,t2
				li	a1,0
				li	a0,14
				call	PUTATOM.6073
		.LVL189:
				addw	a4,a3,-65
				and	a4,a4,0xff
				li	a2,25
				bleu	a4,a2,.L123
		.L124:
		.LVL256:
		.LBE314:
		.LBB315:
  180       %finish
				li	a5,4096
				add	s5,s5,a5
				li	a5,1
				sw	a5,-272(s5)
				addw	a4,a3,-48
				and	a4,a4,0xff
				li	a2,9
				bleu	a4,a2,.L189
		.L126:
		.LBE315:
  181       %if sym=':' %start
				li	a4,58
				beq	a5,a4,.L212
		.L128:
  182          putatom(colon,0)
				mv	t2,s2
				li	a1,0
				li	a0,13
				call	PUTATOM.6073
		.LVL192:
  183       %finishelseif sym='+' %start
				j	.L122
		.LVL194:
		.L213:
  184         putatom(op,add)
				mv	t2,s2
				li	a1,2
				li	a0,11
				call	PUTATOM.6073
		.LVL195:
  185       %finishelseif sym='-' %start
				j	.L122
		.LVL197:
		.L214:
				li	a4,43
				beq	a5,a4,.L213
		.L130:
  186         putatom(op,sub)
				mv	t2,s2
				li	a1,3
				li	a0,11
				call	PUTATOM.6073
		.LVL198:
  187       %finishelseif sym='&' %start
				j	.L122
		.LVL200:
		.L215:
				li	a4,45
				beq	a5,a4,.L214
		.L131:
  188         putatom(op,and)
				mv	t2,s2
				li	a1,4
				li	a0,11
				call	PUTATOM.6073
		.LVL201:
  189       %finishelseif sym='!' %start
				j	.L122
		.LVL203:
		.L216:
				li	a4,38
				beq	a5,a4,.L215
		.L132:
  190         putatom(op,or)
				mv	t2,s2
				li	a1,5
				li	a0,11
				call	PUTATOM.6073
		.LVL204:
  191       %finishelseif sym='\' %start
				j	.L122
		.LVL206:
		.L217:
				li	a4,33
				beq	a5,a4,.L216
		.L133:
  192         putatom(op,xor)
				mv	t2,s2
				li	a1,6
				li	a0,11
				call	PUTATOM.6073
		.LVL207:
  193       %finishelseif sym='*' %start
				j	.L122
		.LVL209:
		.L218:
				li	a4,92
				beq	a5,a4,.L217
		.L134:
  194         putatom(op,mul)
				mv	t2,s2
				li	a1,8
				li	a0,11
				call	PUTATOM.6073
		.LVL210:
  195       %finishelseif sym='%' %start
				j	.L122
		.LVL212:
		.L219:
				li	a4,42
				beq	a5,a4,.L218
		.L135:
  196         putatom(op,rem)
				mv	t2,s2
				li	a1,10
				li	a0,11
				call	PUTATOM.6073
		.LVL213:
  197       %finishelseif sym='/' %start
				j	.L122
		.LVL215:
		.L220:
				li	a4,37
				beq	a5,a4,.L219
		.L136:
  198         putatom(op,div)
				mv	t2,s2
				li	a1,9
				li	a0,11
				call	PUTATOM.6073
		.LVL216:
  199       %finishelseif sym='<' %or sym='>' %start
				j	.L122
		.LVL218:
		.L229:
				li	a4,47
				beq	a5,a4,.L220
		.L137:
  200          %if line(lpos)=sym %start; ! '<<', '>>'
				add	a3,s5,s8
				li	a4,8192
				add	a4,a4,a3
				lbu	a3,-104(a4)
				li	a4,60
				beq	a3,a4,.L228
		.L141:
		.L142:
		.L143:
				add	a3,s5,s8
				li	a4,8192
				add	a4,a4,a3
				lbu	a3,-104(a4)
				li	a4,62
				bne	a3,a4,.L141
  201             lpos=lpos+1
				li	a4,60
				beq	a5,a4,.L138
				addw	s8,s8,2
		.LVL311:
				addw	s8,s8,2
		.LVL317:
		.LDL9:
  202             %if sym='<' %then putatom(op,left) %else putatom(op,right)
				li	a4,62
				beq	a5,a4,.L221
		.L139:
  203          %else; ! '<', '>', '<=', '>='
				mv	t2,s2
				li	a1,11
				li	a0,11
				call	PUTATOM.6073
		.LVL312:
  204 square:         !+'[', ']', '[=', ']='
				j	.L122
		.LVL313:
		.L138:
  205             %if line(lpos)='=' %start
				add	a3,s5,s8
				li	a4,8192
				add	a4,a4,a3
				lbu	a3,-104(a4)
				li	a4,61
				beq	a3,a4,.L229
		.LVL314:
		.L144:
  206                lpos=lpos+1; sym=sym+128
				addw	s0,s8,2
		.LVL219:
				mv	t2,s2
				li	a1,12
				li	a0,11
				call	PUTATOM.6073
		.LVL318:
				j	.L122
		.LVL319:
		.L208:
  207             %finish
				addw	a5,a5,128
		.LVL220:
				sw	a5,532(sp)
		.LVL221:
				j	.L144
		.LVL222:
		.L222:
		.L146:
  208             putatom(comp,sym)
				mv	t2,s2
				lw	a1,532(sp)
				li	a0,12
				call	PUTATOM.6073
		.LVL315:
				mv	s8,s0
				j	.L122
		.LVL316:
		.L221:
  209          %finish
  210       %finishelseif sym='(' %or sym=')' %start
  211         putatom(bracket,sym)
				mv	t2,s2
				mv	a1,a5
				li	a0,15
				call	PUTATOM.6073
		.LVL223:
  212       %finishelseif sym='[' %or sym=']' %start
				j	.L122
		.LVL225:
		.L148:
				addw	a4,a3,-40
				and	a4,a4,0xff
				li	a2,1
				bleu	a4,a2,.L222
		.L145:
  213          ->square
  214       %finishelseif sym='=' %or sym='#' %start
				addw	a4,a3,-91
				and	a4,a4,253
				beqz	a4,.L141
		.L147:
  215          putatom(comp,sym)
				mv	t2,s2
				mv	a1,a5
				li	a0,12
				call	PUTATOM.6073
		.LVL226:
				li	a4,61
				beq	a5,a4,.L148
  216       %finishelseif sym='"' %start
				j	.L122
		.LVL228:
		.L223:
				li	a4,35
				beq	a5,a4,.L148
		.L149:
  217          putatom(string,lpos)
				mv	t2,s2
				mv	a1,s0
				li	a0,2
				call	PUTATOM.6073
		.LVL229:
  218          lpos=lpos+1 %while line(lpos)#'"'; ! we know it's there
				li	a4,34
				beq	a5,a4,.L223
		.L150:
  219          lpos=lpos+1
				add	s8,s5,s8
		.LVL230:
				li	a5,8192
				add	s8,a5,s8
				lbu	a4,-104(s8)
				li	a5,34
				beq	a4,a5,.L190
				li	a3,8192
				li	a4,34
		.L152:
		.LVL231:
				add	a5,s5,s0
				add	a5,a3,a5
				lbu	a5,-104(a5)
				bne	a5,a4,.L152
		.L151:
				addw	s8,s8,1
  220       %finishelseif sym='''' %start
				addw	s8,s0,1
		.LDL7:
		.LVL232:
				mv	s0,s8
		.LVL233:
				j	.L122
		.L190:
  221          sym=line(lpos); lpos=lpos+1 %if sym=''''
				add	a4,s5,s8
				li	a5,8192
		.LVL257:
				add	a5,a5,a4
				lbu	a5,-104(a5)
				sext.w	a4,a5
				sw	a5,532(sp)
		.LVL258:
  222          fault(atom) %if line(lpos+1)#''''
				li	a4,39
				bne	a5,a4,.L153
				li	a5,39
				beq	a4,a5,.L224
		.LVL259:
		.L154:
				add	a4,s5,s0
				li	a5,8192
				add	a5,a5,a4
				lbu	a4,-104(a5)
				li	a5,39
				bne	a4,a5,.L225
		.LVL260:
		.L155:
  223          putatom(constant,sym); lpos=lpos+2
				addw	s0,s8,2
		.LVL235:
				j	.L154
		.LVL236:
		.L225:
				mv	t2,s5
				li	a0,2
				call	FAULT.6036
		.LVL237:
				j	.L155
		.LVL238:
		.L153:
				mv	t2,s2
				lw	a1,532(sp)
				li	a0,1
				call	PUTATOM.6073
		.LVL261:
  224       %else
				addw	s8,s0,2
		.LVL262:
				j	.L122
		.LVL263:
		.L210:
				sw	a4,532(sp)
		.LVL264:
				j	.L162
		.LVL265:
		.L192:
				mv	a3,a1
		.LVL266:
  225          fault(atom) %unless sym=' '
				li	a4,32
				beq	a5,a4,.L122
  226       %finish
				mv	t2,s5
				li	a0,2
				call	FAULT.6036
		.LVL240:
				j	.L122
		.LVL241:
		.L189:
		.LBB310:
				li	a4,0
		.LBE310:
  227    %repeat
  228 num: i=0; radix=10; ! I accumulates number, default radix is ten
  229    %cycle
				li	a1,0
  230       %if sym='_' %start; ! change radix
				li	a3,10
				li	a2,95
				beq	a5,a2,.L192
		.L158:
		.LVL249:
		.LBB313:
  231          radix=i; i=0
  232       %finishelseif '9'<sym<'A' %start
				li	t1,0
		.LBB311:
				mv	a1,t1
		.LVL267:
				j	.L157
		.LVL268:
		.L123:
  233 endconst: putatom(constant,i); lpos=lpos-1; ->nextatom
  234       %else
				mv	t2,s2
				li	a0,1
				call	PUTATOM.6073
		.LVL253:
  235          sym=sym-7 %if sym>'9'; sym=sym-'0'
				addw	s8,s0,-1
		.LVL254:
		.L122:
  236          ->endconst %unless 0<=sym<radix
				addw	a5,a5,-7
		.LVL243:
		.L159:
  237          i=i*radix+sym
				li	a7,57
				mulw	a1,a3,a1
		.LVL245:
				addw	a1,a5,a1
		.LVL246:
		.L157:
				ble	a5,a7,.L159
  238       %finish
				addw	a5,a5,-48
				sext.w	a4,a5
		.LVL244:
		.LBB312:
  239       sym=line(lpos); lpos=lpos+1
				li	t3,64
		.LBE311:
				li	a6,8192
				li	a0,1
				j	.L125
		.LVL242:
		.L160:
				bltz	a4,.L209
				addw	a5,s0,-1
				add	a5,s5,a5
				add	a5,a6,a5
				lbu	a5,-104(a5)
				bgt	a5,t3,.L160
				beqz	a4,.L162
				sw	a5,532(sp)
		.LVL250:
				j	.L162
		.LVL251:
		.L209:
				sw	a4,532(sp)
		.LVL252:
		.L161:
		.L162:
		.LBE313:
  240    %repeat
				addw	s0,s0,1
		.LVL247:
				mv	a4,a0
		.LVL248:
		.L125:
		.L156:
  241 tag: n1=sym-'A'+1; n2=0; i=1; ! I counts name length
				bge	a4,a3,.L210
		.L164:
		.LBE312:
  242    %cycle
				addw	s0,a5,-64
		.LVL269:
  243       sym=line(lpos)
				li	s1,0
				sext.w	a1,s8
				addw	a7,a1,-1
				li	a6,8192
		.LBB316:
				addw	a5,a7,a5
		.LVL275:
				add	a5,s5,a5
				add	a5,a6,a5
				lbu	a5,-104(a5)
				sext.w	a2,a5
		.LVL276:
		.LBB319:
  244       %if 'A'<=sym<='Z' %start
				li	a4,1
  245          sym=sym-'A'+1
				addw	a2,a2,-64
		.LVL277:
  246       %finishelseif '0'<=sym<='9' %start
				j	.L167
		.LVL278:
		.L168:
		.LDL8:
				sw	a2,532(sp)
		.LVL279:
  247          sym=sym-'0'+27
				li	a0,25
		.LBE316:
		.LBB317:
				addw	a2,a2,-21
		.LVL271:
		.L167:
				addw	a3,a5,-65
				and	a3,a3,0xff
				bgtu	a3,a0,.L166
		.LBE319:
  248       %else
  249          %if n1=if %start
				li	a5,339
				bne	s0,a5,.L169
  250             fault(form) %unless ifpos=0
				li	a5,4096
				add	a5,s5,a5
				lw	a5,-684(a5)
				bnez	a5,.L226
		.LVL280:
		.L170:
  251             ifpos=atompos; putatom(sep,0)
				li	t3,9
		.LBE317:
				addw	a5,a5,-48
				and	a5,a5,0xff
				bgtu	a5,t3,.L168
		.LBE318:
				li	a5,4096
				add	a5,s5,a5
				lw	a4,-272(a5)
				sw	a4,-684(a5)
				mv	t2,s5
				li	a0,5
				call	FAULT.6036
		.LVL283:
				j	.L170
		.LVL284:
		.L169:
		.LBB320:
  252          %else; ! Look up in dictionary
				mv	t2,s2
				li	a1,0
				li	a0,14
				call	PUTATOM.6073
		.LVL281:
				j	.L122
		.LVL282:
		.L226:
  253             %for i=tagpos-1,-1,1 %cycle
  254                %if tag1(i)=n1 %and tag2(i)=n2 %start
				li	a5,4096
				add	a5,s5,a5
				lw	s9,-688(a5)
		.LVL285:
				li	a3,4096
				add	a4,a5,a3
				lw	a4,-1488(a4)
				bne	a4,s0,.L194
  255                   n1=tagtype(i); n2=tagval(i)
				lui	s7,%hi(_imp_current_file)
				add	s6,sp,272
				add	s4,s3,1504
				add	a5,a4,-1504
				add	a5,a5,a3
				add	s4,a5,s4
				j	.L122
		.LVL187:
		.L211:
		.LBE308:
				li	a5,2
				subw	a5,a5,s9
				bltz	a5,.L171
				ld	a1,%lo(_imp_current_file)(s7)
		.LVL286:
				beqz	a1,.L172
				add	a0,sp,1576
				call	_imp_c2istr
		.LVL287:
		.L173:
				lui	a5,%hi(_imp_current_line)
				lw	s10,%lo(_imp_current_line)(a5)
				bnez	s10,.L174
				li	s10,255
		.L174:
				lui	a1,%hi(.LC15)
				addi	a1,a1,%lo(.LC15)
				add	a0,sp,1832
				call	_imp_c2istr
		.LVL288:
				li	a2,256
				add	a1,sp,1576
				mv	a0,s6
				call	memcpy
		.LVL289:
				li	a2,256
				add	a1,sp,1832
				add	a0,sp,16
				call	memcpy
		.LVL290:
				add	a0,s3,1760
				li	a5,0
				li	a4,1
				li	a3,5
				mv	a2,s4
				mv	a1,s10
				li	a6,4096
				add	a6,a6,-1504
				add	a7,sp,16
				add	a6,a6,a7
				add	a0,a6,a0
				call	_signal_event
		.LVL291:
		.L171:
				li	a2,256
		.LVL293:
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a0,sp,1064
				call	memcpy
		.LVL294:
				li	a2,256
				add	a1,sp,1064
				add	a0,sp,1320
				call	memcpy
		.LVL295:
		.LBE309:
				li	a2,256
				add	a1,sp,1320
				add	a0,sp,1576
				call	memcpy
		.LVL296:
				j	.L173
		.L177:
		.LVL297:
		.L194:
		.L178:
				lw	a4,1808(a5)
				bne	a4,s1,.L194
				lw	a0,1008(a5)
		.LVL301:
  256                   n2=i %if n1=unknown
				lw	a1,208(a5)
		.LVL302:
				bnez	a0,.L179
  257                   putatom(n1,n2)
				mv	t2,s2
				call	PUTATOM.6073
		.LVL304:
  258                   ->nextatom
				li	a5,1
				beq	s9,a5,.L175
				li	a2,1
				j	.L176
		.LVL292:
		.L172:
		.LBB309:
				beq	s9,a2,.L175
		.LVL298:
		.L176:
				j	.L122
		.LVL305:
		.L175:
		.LBE320:
  259                %finish
				addw	a5,s9,-1
				sext.w	s9,a5
		.LVL299:
				addw	a5,a5,-1
		.LVL300:
				sll	a5,a5,2
				add	a5,s5,a5
				mv	a1,s9
		.LVL303:
		.L179:
  260             %repeat
  261 ! Not found: enter name and details
  262             tag1(tagpos)=n1; tag2(tagpos)=n2
				li	a4,4096
				add	s9,s5,a4
				lw	a1,-688(s9)
				sll	a5,a1,2
				add	a5,s5,a5
				add	a4,a5,a4
				sw	s0,-1492(a4)
  263             tagtype(tagpos)=unknown; tagval(tagpos)=0
				sw	s1,1804(a5)
				sw	zero,1004(a5)
  264             putatom(unknown,tagpos)
				add	s2,s3,2024
				li	a4,4096
				add	a5,a4,-1504
				add	a3,sp,16
				add	a5,a5,a3
				add	s2,a5,s2
		.LBB308:
				sw	zero,204(a5)
				mv	t2,s2
				li	a0,0
				call	PUTATOM.6073
		.LVL306:
  265             %if tagpos>tagmax %then fault(dfull) %else tagpos=tagpos+1
				lw	a4,-688(s9)
				li	a5,200
				bgt	a4,a5,.L227
		.L180:
  266          %finish
				mv	t2,s5
				li	a0,13
				call	FAULT.6036
		.LVL307:
				j	.L180
		.LVL308:
		.L181:
  267          ->nextatom
  268       %finish
				li	a5,4096
				add	a5,s5,a5
				lw	a4,-688(a5)
				addw	a4,a4,1
				sw	a4,-688(a5)
				j	.L122
		.L227:
  269       %if i<3 %start
				li	t1,2
				bgt	a4,t1,.L181
  270          n1=n1*37+sym
				sllw	a5,s0,3
				addw	a5,a5,s0
				sllw	a5,a5,2
				addw	a5,a5,s0
				addw	s0,a5,a2
		.LVL272:
		.L182:
		.L183:
  271       %finishelseif i<6 %start
  272          n2=n2*37+sym
				sllw	a5,s1,3
				addw	a5,a5,s1
				sllw	a5,a5,2
				addw	s1,a5,s1
		.LVL309:
				addw	s1,s1,a2
				j	.L183
		.LVL310:
		.L228:
  273       %finish
				li	t4,5
				j	.L165
		.LVL270:
		.L166:
		.LBB318:
				bgt	a4,t4,.L183
  274       i=i+1; lpos=lpos+1
				addw	a4,a4,1
		.LVL273:
		.L165:
				sext.w	a5,a4
				addw	s8,a5,a1
		.LVL274:
  275    %repeat
  276 %end
				add	a5,s0,-1512
				add	a4,sp,16
				add	a5,a5,a4
				ld	a4,0(a5)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L208
				add	sp,sp,688
				ld	ra,2024(sp)
				ld	s0,2016(sp)
				ld	s1,2008(sp)
				ld	s2,2000(sp)
				ld	s3,1992(sp)
				ld	s4,1984(sp)
				ld	s5,1976(sp)
				ld	s6,1968(sp)
				ld	s7,1960(sp)
				ld	s8,1952(sp)
		.LVL190:
				ld	s9,1944(sp)
				ld	s10,1936(sp)
				ld	s11,1928(sp)
				add	sp,sp,2032
				jr	ra
		.LVL191:
		.L212:
				call	__stack_chk_fail
		.LVL320:
		.LFE187:
				.align	1
		CEXPR.6203:
		.LFB194:
  277
  278 %routine nextatom
  279    type=atomtype(atompos); val=atomval(atompos)
				li	a3,4096
				add	a5,t2,a3
				lw	a4,-272(a5)
				sll	a5,a4,2
				add	a5,t2,a5
				add	a5,a5,a3
				lw	a3,-476(a5)
				sw	a3,204(t2)
  280    atompos=atompos+1 %unless type=sep
				lw	a5,-676(a5)
				sw	a5,200(t2)
				li	a5,14
				beq	a3,a5,.L1
  281 %end
				li	a5,4096
				add	t2,t2,a5
				addw	a4,a4,1
				sw	a4,-272(t2)
		.L2:
		.L1:
  282
				ret
		.LFE190:
				.align	1
		OPENBRACKET.6186:
		.LFB191:
  283 %predicate open bracket
  284   %falseunless atomtype(atompos)=bracket %and atomval(atompos)='('
				li	a4,4096
				add	a5,t2,a4
				lw	a3,-272(a5)
				sll	a5,a3,2
				add	a5,t2,a5
				add	a4,a5,a4
				lw	a2,-476(a4)
				li	a4,15
				beq	a2,a4,.L8
		.L4:
  285   atompos=atompos+1; %true
				li	a4,4096
				add	a5,a5,a4
				lw	a4,-676(a5)
				li	a5,40
				bne	a4,a5,.L4
		.L5:
				li	a5,4096
				add	t2,t2,a5
				addw	a3,a3,1
				sw	a3,-272(t2)
  286 %end
				ret
		.L8:
				li	a0,1
				j	.L4
		.LFE191:
				.align	1
		EQUALSIGN.6196:
		.LFB193:
  287
				li	a0,0
  288 %routine close bracket
				add	sp,sp,-16
				sd	ra,8(sp)
				sd	s0,0(sp)
				mv	s0,t2
  289   fault(form) %unless atomtype(atompos)=bracket %and atomval(atompos)=')'
				li	a4,4096
				add	a5,t2,a4
				lw	a5,-272(a5)
				sll	a5,a5,2
				add	a5,t2,a5
				add	a4,a5,a4
				lw	a3,-476(a4)
				li	a4,15
				bne	a3,a4,.L266
  290   atompos=atompos+1
				li	a4,4096
				add	a5,a5,a4
				lw	a4,-676(a5)
				li	a5,41
				beq	a4,a5,.L267
		.L266:
				li	a5,4096
				add	s0,s0,a5
				lw	a5,-272(s0)
				addw	a5,a5,1
				sw	a5,-272(s0)
  291 %end
  292
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL354:
		.L267:
				ld	ra,8(sp)
				ld	s0,0(sp)
				add	sp,sp,16
				jr	ra
		.LFE192:
				.align	1
		GBYTE.6243:
		.LFB196:
  293 %predicate equal sign
  294   %falseunless atomtype(atompos)=comp %and atomval(atompos)='='
				li	a4,4096
				add	a5,t2,a4
				lw	a3,-272(a5)
				sll	a5,a3,2
				add	a5,t2,a5
				add	a4,a5,a4
				lw	a2,-476(a4)
				li	a4,12
				beq	a2,a4,.L14
		.L10:
  295   atompos=atompos+1; %true
				li	a4,4096
				add	a5,a5,a4
				lw	a4,-676(a5)
				li	a5,61
				bne	a4,a5,.L10
		.L11:
				li	a5,4096
				add	t2,t2,a5
				addw	a3,a3,1
				sw	a3,-272(t2)
  296 %end
				ret
		.L14:
				li	a0,1
				j	.L10
		.LFE193:
				.align	1
		SATREFS.6287:
		.LFB202:
  297
				li	a0,0
  298 %routinespec unary
  299
  300 %integerfn cexpr(%integer must)
		.LVL321:
				add	sp,sp,-1344
				sd	ra,1336(sp)
				sd	s0,1328(sp)
				sd	s1,1320(sp)
				sd	s2,1312(sp)
				mv	s2,a0
				mv	s0,t2
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,1304(sp)
  301 %integer value,oper
  302 %switch s(add:right)
  303    nextatom; unary
				call	NEXTATOM.6182
		.LVL322:
  304    value=val; fault(consterr) %unless type=constant
				mv	t2,s0
				call	UNARY.6201
		.LVL323:
				lw	s1,200(s0)
		.LVL324:
  305    %cycle
				lw	a4,204(s0)
				li	a5,1
				bne	a4,a5,.L250
		.L231:
		.L232:
  306       %result=value %unless atomtype(atompos)=op
				li	a5,4096
				add	a4,s0,a5
				lw	a3,-272(a4)
				sll	a4,a3,2
				add	a4,s0,a4
				add	a5,a4,a5
				lw	a2,-476(a5)
				li	a5,11
				beq	a2,a5,.L251
		.LVL325:
		.L230:
				mv	t2,s0
				li	a0,3
				call	FAULT.6036
		.LVL327:
				j	.L232
		.L251:
		.L234:
  307       %if must=0 %start
				bnez	s2,.L236
  308          %result=value %unless atomtype(atompos+1)=constant
				li	a5,4096
				add	a5,a4,a5
				lw	a2,-472(a5)
				li	a5,1
				bne	a2,a5,.L230
		.L235:
		.L236:
  309       %finish
  310       oper=atomval(atompos); atompos=atompos+1
				li	a5,4096
				add	a4,a4,a5
				lw	s1,-676(a4)
		.LVL328:
  311       nextatom; fault(consterr) %unless type=constant
				add	a5,s0,a5
				addw	a3,a3,1
				sw	a3,-272(a5)
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL329:
  312       ->s(oper)
				lw	a4,204(s0)
				li	a5,1
				bne	a4,a5,.L253
		.L237:
		.LVL330:
		.LDL10:
  313 s(add):  value=value+val; %continue
				mv	t2,s0
				li	a0,3
				call	FAULT.6036
		.LVL339:
				j	.L237
		.LVL340:
		.L239:
		.LBB321:
  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
				addw	a5,s1,-2
				li	a4,10
				bleu	a5,a4,.L238
				lui	a5,%hi(_imp_current_file)
				ld	a1,%lo(_imp_current_file)(a5)
				beqz	a1,.L239
				add	a0,sp,792
				call	_imp_c2istr
		.LVL331:
		.L240:
				lui	a5,%hi(_imp_current_line)
				lw	s0,%lo(_imp_current_line)(a5)
				bnez	s0,.L241
				li	s0,326
		.L241:
				li	a2,256
				add	a1,sp,792
				add	a0,sp,16
				call	memcpy
		.LVL332:
				li	a5,312
				sd	a5,0(sp)
				lui	a7,%hi(.LC9)
				addi	a7,a7,%lo(.LC9)
				mv	a6,s1
				lui	a5,%hi(.LC10)
				addi	a5,a5,%lo(.LC10)
				mv	a4,s1
				li	a3,3
				li	a2,6
				mv	a1,s0
				add	a0,sp,16
				call	_signal_eventf
		.LVL333:
		.L238:
		.L242:
				li	a2,256
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a0,sp,1048
				call	memcpy
		.LVL341:
				li	a2,256
				add	a1,sp,1048
				add	a0,sp,280
				call	memcpy
		.LVL342:
		.LBE321:
				li	a2,256
				add	a1,sp,280
				add	a0,sp,792
				call	memcpy
		.LVL343:
				j	.L240
		.L243:
		.LBB322:
				add	sp,sp,-16
				sd	ra,8(sp)
				sd	s0,0(sp)
				mv	s0,t2
  327 %integername v
  328   %returnunless type=op %and atomtype(atompos)=constant
				lw	a4,204(t2)
				li	a5,11
				beq	a4,a5,.L264
		.L262:
				ret
		.L264:
  329   %returnunless val=sub %or val=xor
				lui	a5,%hi(_imp_current_file)
				ld	a1,%lo(_imp_current_file)(a5)
				beqz	a1,.L243
				add	a0,sp,1048
				call	_imp_c2istr
		.LVL334:
		.L244:
				lui	a5,%hi(_imp_current_line)
				lw	s0,%lo(_imp_current_line)(a5)
				beqz	s0,.L254
		.L245:
				li	a2,256
				add	a1,sp,1048
				add	a0,sp,16
				call	memcpy
		.LVL335:
				li	a5,312
				sd	a5,0(sp)
				lui	a7,%hi(.LC9)
				addi	a7,a7,%lo(.LC9)
				mv	a6,s1
				lui	a5,%hi(.LC11)
				addi	a5,a5,%lo(.LC11)
				mv	a4,s1
				li	a3,2
				li	a2,8
				mv	a1,s0
				add	a0,sp,16
				call	_signal_eventf
		.LVL336:
		.LVL337:
				li	a2,256
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a0,sp,1048
				call	memcpy
		.LVL344:
				li	a2,256
				add	a1,sp,1048
				add	a0,sp,536
				call	memcpy
		.LVL345:
		.LBE322:
				li	a2,256
				add	a1,sp,536
				add	a0,sp,1048
				call	memcpy
		.LVL346:
				j	.L244
		.L254:
				li	s0,329
				j	.L245
		.LVL347:
		.L252:
				li	a4,4096
				add	a5,t2,a4
				lw	a5,-272(a5)
				sll	a5,a5,2
				add	a5,t2,a5
				add	a4,a5,a4
				lw	a3,-476(a4)
				li	a4,1
				bne	a3,a4,.L262
		.L257:
				lw	a4,200(t2)
				li	a3,3
				beq	a4,a3,.L258
  330   v==atomval(atompos)
				mv	a0,s1
				ld	a4,1304(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L252
				ld	ra,1336(sp)
				ld	s0,1328(sp)
				ld	s1,1320(sp)
				ld	s2,1312(sp)
				add	sp,sp,1344
				jr	ra
		.LVL326:
		.L250:
				j	.L230
		.LVL338:
		.L253:
				call	__stack_chk_fail
		.LVL348:
		.LFE194:
				.align	1
		UNARY.6201:
		.LFB195:
				li	a3,6
				bne	a4,a3,.L262
		.LVL349:
  331   v=\v; v=v+1 %if val=sub
				li	a4,4096
				add	a5,a5,a4
				lw	a4,-676(a5)
				not	a4,a4
				sw	a4,-676(a5)
		.LVL350:
				j	.L260
		.L258:
		.LVL351:
  332   val=cexpr(0); type=constant
				li	a0,0
				call	CEXPR.6203
		.LVL353:
				sw	a0,200(s0)
  333 %end
				li	a4,4096
				add	a5,a5,a4
				lw	a4,-676(a5)
				subw	a4,zero,a4
				sw	a4,-676(a5)
		.LVL352:
		.L260:
				li	a5,1
				sw	a5,204(s0)
		.L256:
  334
				ld	ra,8(sp)
				ld	s0,0(sp)
				add	sp,sp,16
				jr	ra
		.LFE195:
				.align	1
		CLOSEBRACKET.6191:
		.LFB192:
  335 %routine gbyte(%integer b)
		.LVL355:
				add	sp,sp,-32
				sd	ra,24(sp)
				sd	s0,16(sp)
				sd	s1,8(sp)
				mv	s1,a0
				mv	s0,t2
  336   fault(bfull) %if gpos>glamax
				lw	a4,196(t2)
				li	a5,499
				bgt	a4,a5,.L272
		.LVL356:
		.L270:
  337   gla(gpos)=b&255; gpos=gpos+1; gloc=gloc+1
				lw	a5,196(s0)
				add	a3,s0,a5
				li	a4,8192
				add	a4,a4,a3
				sb	s1,-604(a4)
				li	a0,4
		.LVL358:
				call	FAULT.6036
		.LVL359:
				j	.L270
		.LFE196:
				.align	1
		DUMPSTRING.6262:
		.LFB199:
  338 %end
				addw	a5,a5,1
				sw	a5,196(s0)
  339
				li	a5,4096
				add	s0,s0,a5
				lw	a5,-680(s0)
				addw	a5,a5,1
				sw	a5,-680(s0)
				ld	ra,24(sp)
				ld	s0,16(sp)
				ld	s1,8(sp)
				add	sp,sp,32
				jr	ra
		.LVL357:
		.L272:
  340 %routine gword(%integer x)
  341   gbyte(x); gbyte(x>>8)
				mv	t2,s0
				mv	a0,s3
				call	GBYTE.6243
		.LVL686:
  342 %end
				srlw	s8,s3,8
				sext.w	s8,s8
				j	.L472
		.LVL681:
		.L555:
		.LBE479:
		.LBE478:
				mv	t2,s0
				mv	a0,s8
				call	GBYTE.6243
		.LVL687:
		.L474:
		.LBE480:
		.LBE481:
  343
  344 %routine gflush
				add	sp,sp,-1344
				sd	ra,1336(sp)
				sd	s0,1328(sp)
				sd	s1,1320(sp)
				sd	s2,1312(sp)
				sd	s3,1304(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,1288(sp)
  345 %integer i
  346   %returnif gpos=0
				lw	a5,196(t2)
				bnez	a5,.L61
		.L48:
  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
				lw	s3,196(s2)
				addw	s0,s3,-1
		.LVL53:
				sw	zero,196(s2)
  351 %end
				bltz	s0,.L63
		.L51:
		.LVL54:
				j	.L48
		.LVL60:
		.L63:
		.LBB240:
				lui	a5,%hi(_imp_current_file)
				ld	a1,%lo(_imp_current_file)(a5)
				beqz	a1,.L52
				add	a0,sp,776
				call	_imp_c2istr
		.LVL61:
		.L53:
				lui	a5,%hi(_imp_current_line)
				lw	s1,%lo(_imp_current_line)(a5)
				bnez	s1,.L54
				li	s1,351
		.L54:
				lui	a1,%hi(.LC12)
				addi	a1,a1,%lo(.LC12)
				add	a0,sp,1032
				call	_imp_c2istr
		.LVL62:
				li	a2,256
				add	a1,sp,776
				add	a0,sp,256
				call	memcpy
		.LVL63:
				li	a2,256
				add	a1,sp,1032
				mv	a0,sp
				call	memcpy
		.LVL64:
				li	a5,0
				li	a4,1
				li	a3,5
				mv	a2,sp
				mv	a1,s1
				add	a0,sp,256
				call	_signal_event
		.LVL65:
				j	.L51
		.L52:
		.LBB239:
				li	a2,256
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a0,sp,1032
				call	memcpy
		.LVL66:
				li	a2,256
				add	a1,sp,1032
				add	a0,sp,520
				call	memcpy
		.LVL67:
		.LBE239:
				li	a2,256
				add	a1,sp,520
				add	a0,sp,776
				call	memcpy
		.LVL68:
				j	.L53
		.LVL69:
		.L62:
		.LBE240:
  352
				ld	a4,1288(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L62
				ld	ra,1336(sp)
				ld	s0,1328(sp)
				ld	s1,1320(sp)
				ld	s2,1312(sp)
				ld	s3,1304(sp)
				add	sp,sp,1344
				jr	ra
		.L61:
				mv	s2,t2
		.L50:
		.LVL47:
		.LBB226:
		.LBB227:
				lui	a5,%hi(_imp_OutStream)
				li	a4,1
				sw	a4,%lo(_imp_OutStream)(a5)
				lui	a5,%hi(_imp_outfile+296)
				ld	a4,%lo(_imp_outfile+296)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				lui	a0,%hi(.LANCHOR0+352)
				addi	a0,a0,%lo(.LANCHOR0+352)
				call	check_outstream
		.LVL48:
		.LBE227:
		.LBE226:
		.LBB228:
		.LBB229:
				li	a0,2
				call	_imp_printsymbol
		.LVL49:
		.LBE229:
		.LBE228:
		.LBB230:
		.LBB231:
				li	a0,4
				call	_imp_printsymbol
		.LVL50:
		.LBE231:
		.LBE230:
		.LBB232:
		.LBB233:
				lbu	a0,196(s2)
				call	_imp_printsymbol
		.LVL51:
		.LBE233:
		.LBE232:
		.LBB234:
		.LBB235:
				lbu	a0,197(s2)
				call	_imp_printsymbol
		.LVL52:
		.LBE235:
		.LBE234:
		.LBB236:
				call	__stack_chk_fail
		.LVL70:
		.LFE198:
				.align	1
		FLUSH.6274:
		.LFB201:
  353 %routine dumpstring(%integer p)
		.LVL360:
				add	sp,sp,-48
				sd	ra,40(sp)
				sd	s0,32(sp)
				sd	s1,24(sp)
				sd	s2,16(sp)
				sd	s3,8(sp)
				mv	s2,t2
		.LVL361:
  354 %integer l
				li	a5,-1
				beq	s0,a5,.L55
				li	a5,8192
				add	s0,a5,-604
				add	s0,s2,s0
				add	s1,a5,-603
				add	s1,s2,s1
				addw	s3,s3,-1
		.LVL55:
				sll	s3,s3,32
		.LVL56:
				srl	s3,s3,32
				add	s1,s1,s3
		.LVL57:
		.L56:
		.LBB237:
		.LBB238:
				lbu	a0,0(s0)
				call	_imp_printsymbol
		.LVL58:
				add	s0,s0,1
		.LVL59:
		.LBE238:
		.LBE237:
				bne	s0,s1,.L56
		.L55:
		.LBE236:
  355   l=0
				li	s0,0
  356   l=l+1 %and p=p+1 %while line(p)#'"'
  357   gbyte(l); p=p-l
				addw	a5,a0,-1
				add	a4,t2,a5
				li	a5,8192
				add	a5,a5,a4
				lbu	a4,-104(a5)
				li	a5,34
				beq	a4,a5,.L274
				li	a3,8192
				li	a4,34
		.LVL362:
		.L275:
				add	a0,s2,a0
		.LVL365:
				add	a0,a3,a0
				lbu	a5,-104(a0)
				bne	a5,a4,.L275
		.L276:
				mv	t2,s2
				mv	a0,s0
				call	GBYTE.6243
		.LVL366:
				li	a0,0
		.LVL373:
				call	GBYTE.6243
		.LVL374:
				j	.L273
		.LFE199:
				.align	1
		POPTEXT.6308:
		.LFB205:
  358   gbyte(line(p)) %and p=p+1 %and l=l-1 %while l>0
				addw	s0,s0,1
		.LVL363:
				subw	a5,s1,s0
		.LVL367:
  359 %end
				addw	s1,a0,1
		.LDL11:
		.LVL364:
				mv	a0,s1
				blez	s0,.L273
				addw	s1,a5,-1
				addw	s0,s0,-1
		.LVL368:
				addw	s0,s0,a5
				bne	s0,s1,.L278
		.L273:
  360
				li	s3,8192
		.LVL369:
		.L278:
				add	a5,s2,s1
				add	a5,s3,a5
				mv	t2,s2
				lbu	a0,-104(a5)
				call	GBYTE.6243
		.LVL370:
		.LDL12:
				addw	s1,s1,1
		.LVL371:
				ld	ra,40(sp)
				ld	s0,32(sp)
				ld	s1,24(sp)
				ld	s2,16(sp)
				ld	s3,8(sp)
				add	sp,sp,48
				jr	ra
		.L277:
		.LVL372:
		.L274:
  361 %routine dump(%integer byte)
		.LVL379:
				add	sp,sp,-32
				sd	ra,24(sp)
				sd	s0,16(sp)
				sd	s1,8(sp)
				mv	s1,a0
				mv	s0,t2
  362    fault(bfull) %if cpos>codemax
				lw	a4,192(t2)
				li	a5,4096
				add	a5,a5,-597
				bgt	a4,a5,.L291
		.LVL380:
		.L289:
  363    code(cpos)=byte&255; cpos=cpos+1; cloc=cloc+1
				lw	a5,192(s0)
				add	a4,s0,a5
				li	a3,4096
				add	a4,a3,a4
				sb	s1,-8(a4)
				li	a0,4
		.LVL382:
				call	FAULT.6036
		.LVL383:
				j	.L289
		.LFE200:
				.align	1
		RETURN.6422:
		.LFB211:
  364 %end
				addw	a5,a5,1
				sw	a5,192(s0)
  365
				add	s0,s0,a3
				lw	a5,-676(s0)
				addw	a5,a5,1
				sw	a5,-676(s0)
				ld	ra,24(sp)
				ld	s0,16(sp)
				ld	s1,8(sp)
				add	sp,sp,32
				jr	ra
		.LVL381:
		.L291:
  366 %routine flush
				add	sp,sp,-1344
				sd	ra,1336(sp)
				sd	s0,1328(sp)
				sd	s1,1320(sp)
				sd	s2,1312(sp)
				sd	s3,1304(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,1288(sp)
  367 %integer i
  368    %returnif cpos=0
				lw	a5,192(t2)
				bnez	a5,.L77
		.L64:
  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
				lw	s3,192(s2)
				addw	s0,s3,-1
		.LVL77:
				sw	zero,192(s2)
  373 %end
				bltz	s0,.L79
		.L67:
		.LVL78:
				j	.L64
		.LVL84:
		.L79:
		.LBB255:
				lui	a5,%hi(_imp_current_file)
				ld	a1,%lo(_imp_current_file)(a5)
				beqz	a1,.L68
				add	a0,sp,776
				call	_imp_c2istr
		.LVL85:
		.L69:
				lui	a5,%hi(_imp_current_line)
				lw	s1,%lo(_imp_current_line)(a5)
				bnez	s1,.L70
				li	s1,373
		.L70:
				lui	a1,%hi(.LC13)
				addi	a1,a1,%lo(.LC13)
				add	a0,sp,1032
				call	_imp_c2istr
		.LVL86:
				li	a2,256
				add	a1,sp,776
				add	a0,sp,256
				call	memcpy
		.LVL87:
				li	a2,256
				add	a1,sp,1032
				mv	a0,sp
				call	memcpy
		.LVL88:
				li	a5,0
				li	a4,1
				li	a3,5
				mv	a2,sp
				mv	a1,s1
				add	a0,sp,256
				call	_signal_event
		.LVL89:
				j	.L67
		.L68:
		.LBB254:
				li	a2,256
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a0,sp,1032
				call	memcpy
		.LVL90:
				li	a2,256
				add	a1,sp,1032
				add	a0,sp,520
				call	memcpy
		.LVL91:
		.LBE254:
				li	a2,256
				add	a1,sp,520
				add	a0,sp,776
				call	memcpy
		.LVL92:
				j	.L69
		.LVL93:
		.L78:
		.LBE255:
  374
				ld	a4,1288(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L78
				ld	ra,1336(sp)
				ld	s0,1328(sp)
				ld	s1,1320(sp)
				ld	s2,1312(sp)
				ld	s3,1304(sp)
				add	sp,sp,1344
				jr	ra
		.L77:
				mv	s2,t2
		.L66:
		.LVL71:
		.LBB241:
		.LBB242:
				lui	a5,%hi(_imp_OutStream)
				li	a4,1
				sw	a4,%lo(_imp_OutStream)(a5)
				lui	a5,%hi(_imp_outfile+296)
				ld	a4,%lo(_imp_outfile+296)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				lui	a0,%hi(.LANCHOR0+352)
				addi	a0,a0,%lo(.LANCHOR0+352)
				call	check_outstream
		.LVL72:
		.LBE242:
		.LBE241:
		.LBB243:
		.LBB244:
				li	a0,1
				call	_imp_printsymbol
		.LVL73:
		.LBE244:
		.LBE243:
		.LBB245:
		.LBB246:
				li	a0,4
				call	_imp_printsymbol
		.LVL74:
		.LBE246:
		.LBE245:
		.LBB247:
		.LBB248:
				lbu	a0,192(s2)
				call	_imp_printsymbol
		.LVL75:
		.LBE248:
		.LBE247:
		.LBB249:
		.LBB250:
				lbu	a0,193(s2)
				call	_imp_printsymbol
		.LVL76:
		.LBE250:
		.LBE249:
		.LBB251:
				call	__stack_chk_fail
		.LVL94:
		.LFE201:
				.align	1
		FAULT.6036:
		.LFB186:
  375 %routine satrefs(%integer ref,val)
		.LVL0:
  376 %integer abs,rel,disp
				li	a5,-1
				beq	s0,a5,.L71
				li	a5,4096
				add	s0,a5,-8
				add	s0,s2,s0
				add	s1,a5,-7
				add	s1,s2,s1
				addw	s3,s3,-1
		.LVL79:
				sll	s3,s3,32
		.LVL80:
				srl	s3,s3,32
				add	s1,s1,s3
		.LVL81:
		.L72:
		.LBB252:
		.LBB253:
				lbu	a0,0(s0)
				call	_imp_printsymbol
		.LVL82:
				add	s0,s0,1
		.LVL83:
		.LBE253:
		.LBE252:
				bne	s0,s1,.L72
		.L71:
		.LBE251:
  377    %while ref#0 %cycle
  378      rel=ref; abs=rel-cloc+cpos; disp=val-rel-2
				beqz	a0,.L15
				bnez	a0,.L17
		.L16:
		.L15:
  379      ref=code(abs+1)<<8+code(abs)
				li	a5,4096
				add	a5,t2,a5
				lw	t1,-676(a5)
				lw	a7,192(t2)
				li	a2,4096
		.LVL1:
		.L17:
				subw	a5,a0,t1
				addw	a5,a5,a7
				sext.w	a4,a5
		.LVL2:
				addw	a5,a5,1
		.LVL5:
				add	a5,t2,a5
				add	a5,a2,a5
				lbu	a0,-8(a5)
				sllw	a0,a0,8
				add	a4,t2,a4
		.LVL6:
				add	a4,a2,a4
				lbu	a6,-8(a4)
				addw	a0,a0,a6
		.LVL7:
				sb	a3,-8(a4)
		.LVL8:
  380      code(abs)=disp&255; code(abs+1)=disp>>8&255
				subw	a0,a1,a0
		.LVL3:
				addw	a3,a0,-2
		.LVL4:
  381    %repeat
				srlw	a3,a3,8
		.LVL9:
				sb	a3,-8(a5)
		.LDL1:
  382 %end
  383
				ret
		.LFE202:
				.align	1
		GETSTRING.6483:
		.LFB216:
  384 %routine labelref(%integer type,val)
		.LVL396:
				add	sp,sp,-32
				sd	ra,24(sp)
				sd	s0,16(sp)
				sd	s1,8(sp)
				sd	s2,0(sp)
				mv	s0,a1
				mv	s1,t2
  385 %integer tvv
  386    %if type=label %start
				li	a5,3
				beq	a0,a5,.L310
		.L306:
  387       val=val-(cloc+2)
				li	a5,4096
				add	a5,t2,a5
				lw	a0,-676(a5)
		.LVL403:
				addw	a0,a0,2
				subw	s0,a1,a0
		.LVL404:
  388       dump(val); dump(val>>8)
				sext.w	a0,s0
				call	DUMP.6270
		.LVL405:
  389    %else
				srlw	s0,s0,8
		.LVL406:
				mv	t2,s1
				sext.w	a0,s0
				call	DUMP.6270
		.LVL407:
				j	.L305
		.LVL408:
		.L311:
  390       fault(form) %unless type=unknown
				bnez	a0,.L311
		.LVL397:
		.L308:
				sll	s0,s0,2
				add	s0,s1,s0
  391       tvv=tagval(val)
				lw	s2,204(s0)
		.LVL398:
				li	a0,5
		.LVL409:
				call	FAULT.6036
		.LVL410:
				j	.L308
		.LFE203:
				.align	1
		DIRECT.6363:
		.LFB208:
  392       dump(tvv); dump(tvv>>8)
				mv	t2,s1
				mv	a0,s2
				call	DUMP.6270
		.LVL399:
  393       tagval(val)=cloc-2
				srlw	a0,s2,8
				mv	t2,s1
				sext.w	a0,a0
				call	DUMP.6270
		.LVL400:
				li	a5,4096
				add	s1,s1,a5
				lw	a5,-676(s1)
				addw	a5,a5,-2
				sw	a5,204(s0)
		.L307:
		.LVL401:
		.L305:
  394    %finish
  395 %end
  396
				ld	ra,24(sp)
				ld	s0,16(sp)
				ld	s1,8(sp)
				ld	s2,0(sp)
				add	sp,sp,32
				jr	ra
		.LVL402:
		.L310:
  397 %routine pushtext(%integer t,v)
		.LVL376:
				add	sp,sp,-32
				sd	ra,24(sp)
				sd	s0,16(sp)
				sd	s1,8(sp)
				sd	s2,0(sp)
				mv	s2,a0
				mv	s1,a1
				mv	s0,t2
  398   textlevel=textlevel+1
				lw	a5,188(t2)
				addw	a5,a5,1
				sext.w	a4,a5
				sw	a5,188(t2)
  399   fault(complex) %if textlevel>textmax
				li	a5,20
				ble	a4,a5,.L286
  400   texttype(textlevel)=t; textval(textlevel)=v
				li	a0,1
		.LVL377:
				call	FAULT.6036
		.LVL378:
		.L286:
				lw	a5,188(s0)
				sll	a5,a5,2
				add	s0,s0,a5
				sw	s2,104(s0)
  401 %end
				sw	s1,24(s0)
  402
				ld	ra,24(sp)
				ld	s0,16(sp)
				ld	s1,8(sp)
				ld	s2,0(sp)
				add	sp,sp,32
				jr	ra
		.LFE204:
				.align	1
		DUMP.6270:
		.LFB200:
  403 %routine poptext
				add	sp,sp,-16
				sd	ra,8(sp)
				sd	s0,0(sp)
				mv	s0,t2
  404   fault(context) %if textlevel=0
				lw	a5,188(t2)
				bnez	a5,.L283
  405   type=texttype(textlevel); val=textval(textlevel)
				li	a0,16
				call	FAULT.6036
		.LVL375:
		.L283:
				lw	a5,188(s0)
				sll	a4,a5,2
				add	a4,s0,a4
				lw	a3,104(a4)
				sw	a3,204(s0)
				addw	a5,a5,-1
  406   textlevel=textlevel-1
				lw	a4,24(a4)
				sw	a4,200(s0)
				sw	a5,188(s0)
  407 %end
  408
				ld	ra,8(sp)
				ld	s0,0(sp)
				add	sp,sp,16
				jr	ra
		.LFE205:
				.align	1
		PUSHTEXT.6304:
		.LFB204:
  409 %routinespec expr
  410
  411 %constinteger pushax=16_50,popax=16_58
  412
  413 %routine call(%integer t,v)
		.LVL494:
				add	sp,sp,-48
				sd	ra,40(sp)
				sd	s0,32(sp)
				sd	s1,24(sp)
				sd	s2,16(sp)
				sd	s3,8(sp)
				sd	s4,0(sp)
				mv	s2,a0
				mv	s1,a1
				mv	s0,t2
  414   type=atomtype(atompos)
				li	a5,4096
				add	a5,t2,a5
				lw	a5,-272(a5)
				addw	a5,a5,-1
				add	a5,a5,904
				sll	a5,a5,2
				add	a5,t2,a5
				lw	a5,8(a5)
				sw	a5,204(t2)
  415   %if type#op %start
				addw	a3,a5,-11
				li	a4,1
				bleu	a3,a4,.L374
  416     %cycle
  417       %exitif type=sep %or type=comp
				li	a4,14
				beq	a5,a4,.L374
  418       expr; dump(pushax); type=atomtype(atompos)
				li	s4,12
		.LVL495:
		.L372:
				mv	t2,s0
				call	EXPR.6312
		.LVL496:
				and	a5,a5,-3
				bne	a5,s4,.L372
		.L371:
		.L373:
		.L374:
  419     %repeat
				mv	t2,s0
				li	a0,80
				call	DUMP.6270
		.LVL497:
  420   %finish
				li	s3,4096
				add	s3,t2,s3
				lw	a5,-272(s3)
				addw	a5,a5,-1
				add	a5,a5,904
				sll	a5,a5,2
				add	a5,s0,a5
				lw	a5,8(a5)
				sw	a5,204(s0)
		.LDL16:
  421   %if t=spec %start
				li	a5,10
				beq	s2,a5,.L379
		.L375:
  422     dump(16_FF); dump(16_1e); dump(v); dump(v>>8);  !Xcall
				mv	t2,s0
				li	a0,255
				call	DUMP.6270
		.LVL501:
  423   %else
				mv	t2,s0
				li	a0,30
				call	DUMP.6270
		.LVL502:
				j	.L370
		.LFE206:
				.align	1
		COND.6557:
		.LFB218:
  424     dump(16_0e); dump(16_e8); labelref(label,v);    !PushCs, Call
				mv	t2,s0
				li	a0,14
				call	DUMP.6270
		.LVL498:
				mv	t2,s0
				mv	a0,s1
				call	DUMP.6270
		.LVL503:
  425   %finish
				mv	t2,s0
				li	a0,232
				call	DUMP.6270
		.LVL499:
				srlw	a0,s1,8
				mv	t2,s0
				sext.w	a0,a0
				call	DUMP.6270
		.LVL504:
  426 %end
				mv	t2,s0
				mv	a1,s1
				li	a0,3
				call	LABELREF.6296
		.LVL500:
		.L376:
		.L370:
  427
				ld	ra,40(sp)
				ld	s0,32(sp)
				ld	s1,24(sp)
				ld	s2,16(sp)
				ld	s3,8(sp)
				ld	s4,0(sp)
				add	sp,sp,48
				jr	ra
		.L379:
  428 %routine immediate(%integer op,val)
		.LVL16:
				add	sp,sp,-1344
				sd	ra,1336(sp)
				sd	s0,1328(sp)
				sd	s1,1320(sp)
				mv	s0,a0
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,1304(sp)
		.LVL17:
		.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)
		.LVL411:
				add	sp,sp,-64
				sd	ra,56(sp)
				sd	s0,48(sp)
				sd	s1,40(sp)
				sd	s2,32(sp)
				sd	s3,24(sp)
				sd	s4,16(sp)
				sd	s5,8(sp)
				mv	s2,a0
				mv	s3,a2
				mv	s0,t2
  460 %ownintegerarray code(load:lea)=
				addw	a4,a0,-1
				li	a5,11
				bleu	a4,a5,.L27
				lui	a5,%hi(_imp_current_file)
				ld	a1,%lo(_imp_current_file)(a5)
		.LVL18:
				beqz	a1,.L28
				add	a0,sp,792
		.LVL19:
				call	_imp_c2istr
		.LVL20:
		.L29:
				lui	a5,%hi(_imp_current_line)
				lw	s1,%lo(_imp_current_line)(a5)
				bnez	s1,.L30
				li	s1,460
		.L30:
				li	a2,256
				add	a1,sp,792
				add	a0,sp,16
				call	memcpy
		.LVL21:
				li	a5,430
				sd	a5,0(sp)
				lui	a7,%hi(.LC9)
				addi	a7,a7,%lo(.LC9)
				mv	a6,s0
				lui	a5,%hi(.LC10)
				addi	a5,a5,%lo(.LC10)
				mv	a4,s0
				li	a3,3
				li	a2,6
				mv	a1,s1
				add	a0,sp,16
				call	_signal_eventf
		.LVL22:
		.L27:
		.L31:
				li	a2,256
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a0,sp,1048
		.LVL27:
				call	memcpy
		.LVL28:
				li	a2,256
				add	a1,sp,1048
				add	a0,sp,280
				call	memcpy
		.LVL29:
		.LBE222:
				li	a2,256
				add	a1,sp,280
				add	a0,sp,792
				call	memcpy
		.LVL30:
				j	.L29
		.L32:
		.LBB223:
  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
				lui	a5,%hi(_imp_current_file)
				ld	a1,%lo(_imp_current_file)(a5)
				beqz	a1,.L32
				add	a0,sp,1048
				call	_imp_c2istr
		.LVL23:
		.L33:
				lui	a5,%hi(_imp_current_line)
				lw	s1,%lo(_imp_current_line)(a5)
				beqz	s1,.L39
		.L34:
				li	a2,256
				add	a1,sp,1048
				add	a0,sp,16
				call	memcpy
		.LVL24:
				li	a5,430
				sd	a5,0(sp)
				lui	a7,%hi(.LC9)
				addi	a7,a7,%lo(.LC9)
				mv	a6,s0
				lui	a5,%hi(.LC11)
				addi	a5,a5,%lo(.LC11)
				mv	a4,s0
				li	a3,2
				li	a2,8
				mv	a1,s1
				add	a0,sp,16
				call	_signal_eventf
		.LVL25:
				li	a2,256
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a0,sp,1048
				call	memcpy
		.LVL31:
				li	a2,256
				add	a1,sp,1048
				add	a0,sp,536
				call	memcpy
		.LVL32:
		.LBE223:
				li	a2,256
				add	a1,sp,536
				add	a0,sp,1048
				call	memcpy
		.LVL33:
				j	.L33
		.L39:
				li	s1,463
				j	.L34
		.L40:
  464 %integer oper,extra
				ld	a4,1304(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L40
				ld	ra,1336(sp)
				ld	s0,1328(sp)
				ld	s1,1320(sp)
				add	sp,sp,1344
				jr	ra
		.LVL26:
		.L28:
		.LBB222:
				call	__stack_chk_fail
		.LVL34:
		.LFE207:
				.align	1
		PHEX.6064:
		.LFB188:
  465   immediate(op,val) %andreturnif type=constant
				li	a5,1
				beq	a1,a5,.L342
		.L313:
				mv	s1,a1
				mv	s4,a3
  466   oper=code(op)
				addw	a5,a0,-1
				sll	a4,a5,2
				lui	a5,%hi(.LANCHOR0)
				addi	a5,a5,%lo(.LANCHOR0)
				add	a5,a5,a4
				lw	s5,1232(a5)
		.LVL412:
				mv	a0,s5
				mv	a1,a2
		.LVL419:
				call	IMMEDIATE.6326
		.LVL420:
  467   ->shift %if op=left %or op=right
				sext.w	a5,a0
				addw	a3,a5,-11
		.LVL413:
				li	a4,1
				bleu	a3,a4,.L329
		.L316:
		.LVL414:
				j	.L312
		.LVL421:
		.L343:
		.L319:
  468   extra=0; extra=oper %and oper=16_f6 %if op=mul
				li	s5,0
		.LVL417:
				j	.L317
		.LVL418:
		.L342:
  469   %if op=div %or op=rem %start
				li	a4,8
				beq	s2,a4,.L317
		.L318:
				addw	a5,a5,-9
		.LVL416:
				li	a4,1
				bleu	a5,a4,.L343
  470     %if type&wordbit#0 %then dump(16_99) %else dump(16_98)
  471     extra=oper; oper=16_f6
				li	a0,246
		.LVL415:
				li	a0,153
				call	DUMP.6270
		.LVL422:
		.LDL13:
  472   %finish
				li	a0,246
		.LVL423:
		.L317:
		.LDL14:
  473   oper=oper+1 %if type&wordbit#0
  474   dump(oper)
				mv	t2,s0
				addw	a0,a0,1
		.LVL424:
				call	DUMP.6270
		.LVL425:
  475   %if type=bx %then dump(16_c3+extra) %andreturn
				li	a5,17
				beq	s1,a5,.L344
		.L320:
  476   %if type=unknown %start
				beqz	s1,.L345
		.L321:
				mv	t2,s0
				addw	a0,s5,195
				call	DUMP.6270
		.LVL435:
  477     tagtype(val)=var+wordbit
				j	.L312
		.L345:
				sll	a5,s3,2
				add	a5,s0,a5
				li	a4,5
				sw	a4,1004(a5)
  478     tagval(val)=-2
				li	a4,-2
				sw	a4,204(a5)
  479     fault(varund)
				mv	t2,s0
				li	a0,12
				call	FAULT.6036
		.LVL436:
  480   %finish
  481   fault(form) %unless type&varmask=var
  482   %if type&glabit=0 %start
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL426:
		.LDL15:
				and	s1,s1,1
				beqz	s1,.L322
		.L323:
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL437:
		.L322:
		.LBB325:
  483     %if -128<=val<=127 %then oper=16_42 %else oper=16_82
  484     oper=oper+4 %if index=0
				bnez	s4,.L326
  485   %else
				addw	a0,a0,4
		.LVL439:
		.L326:
  486     %if index=0 %start
				beqz	s4,.L327
		.L328:
		.LVL427:
		.LBB323:
  487       oper=6
				li	a0,6
  488     %finishelseif -128<=val<=127 %start
				sext.w	s1,s3
				addw	a4,s1,128
				li	a5,255
		.LBE325:
				bleu	a4,a5,.L325
		.LBE326:
  489       oper=16_44
				li	a0,68
		.LBB324:
  490     %else
				li	a0,66
		.LBB326:
  491       oper=16_84
				li	a0,132
		.LVL428:
		.L327:
  492     %finish
  493   %finish
				li	a0,130
		.L324:
		.L325:
		.LVL438:
  494   dump(oper+extra); dump(val)
				mv	t2,s0
				addw	a0,s5,a0
		.LVL429:
				call	DUMP.6270
		.LVL430:
				mv	t2,s0
				addw	a0,s5,a0
		.LVL440:
				call	DUMP.6270
		.LVL441:
  495   dump(val>>8) %if oper&16_40=0
				addw	a5,s3,128
				li	a4,255
		.LBE323:
				bleu	a5,a4,.L327
		.LBE324:
				mv	t2,s0
				mv	a0,s3
				call	DUMP.6270
		.LVL431:
				mv	t2,s0
				mv	a0,s3
				call	DUMP.6270
		.LVL442:
  496   dump(16_8B) %and dump(16_C2) %if op=rem
				srlw	a0,s3,8
				mv	t2,s0
				sext.w	a0,a0
				call	DUMP.6270
		.LVL432:
				li	a5,10
				beq	s2,a5,.L334
		.LVL433:
		.L312:
				srlw	a0,s1,8
				mv	t2,s0
				sext.w	a0,a0
				call	DUMP.6270
		.LVL443:
				li	a5,10
				beq	s2,a5,.L334
  497   %if type&wordbit=0 %and op=load %then dump(16_32) %and dump(16_e4)
				mv	t2,s0
				li	a0,139
				call	DUMP.6270
		.LVL447:
  498   %return
				li	a5,1
				bne	s2,a5,.L312
				mv	t2,s0
				li	a0,194
				call	DUMP.6270
		.LVL448:
				j	.L312
		.L315:
		.LVL449:
		.L329:
  499 shift: dump(pushax)
				mv	t2,s0
				li	a0,50
				call	DUMP.6270
		.LVL444:
  500   direct(load,type,val,index); dump(16_89); dump(16_c1); !Mov Cx,Ax
				mv	t2,s0
				li	a0,228
				call	DUMP.6270
		.LVL445:
				j	.L312
		.LVL446:
		.L334:
				li	a0,80
		.LVL450:
				call	DUMP.6270
		.LVL451:
				mv	t2,s0
				mv	a3,s4
				mv	a2,s3
				mv	a1,s1
				li	a0,1
				call	DIRECT.6363
		.LVL452:
  501   dump(popax)
				mv	t2,s0
				li	a0,137
				call	DUMP.6270
		.LVL453:
				mv	t2,s0
				li	a0,88
				call	DUMP.6270
		.LVL455:
  502   %if type&wordbit=0 %then dump(16_d2) %else dump(16_d3)
				mv	t2,s0
				li	a0,193
				call	DUMP.6270
		.LVL454:
				and	s1,s1,1
				bnez	s1,.L330
  503   dump(oper)
				mv	t2,s0
				li	a0,210
				call	DUMP.6270
		.LVL456:
		.L331:
				mv	t2,s0
				mv	a0,s5
				call	DUMP.6270
		.LVL457:
		.L314:
  504 %end
				j	.L312
		.L330:
  505
				ld	ra,56(sp)
				ld	s0,48(sp)
				ld	s1,40(sp)
				ld	s2,32(sp)
				ld	s3,24(sp)
				ld	s4,16(sp)
				ld	s5,8(sp)
				add	sp,sp,64
				jr	ra
		.LVL434:
		.L344:
  506 %routine double(%integer t); ! index for word arrays
		.LVL392:
				add	sp,sp,-16
				sd	ra,8(sp)
				sd	s0,0(sp)
				mv	s0,t2
		.L299:
				mv	t2,s0
				li	a0,211
				call	DUMP.6270
		.LVL458:
				j	.L331
		.LFE208:
				.align	1
		EXPR.6312:
		.LFB210:
  507   %returnif t&wordbit=0
				and	a0,a0,1
		.LVL393:
				bnez	a0,.L304
				ret
		.L304:
  508   dump(16_03); dump(16_c0); !Add ax,ax
				li	a0,3
				call	DUMP.6270
		.LVL394:
  509 %end
				mv	t2,s0
				li	a0,192
				call	DUMP.6270
		.LVL395:
  510
				ld	ra,8(sp)
				ld	s0,0(sp)
				add	sp,sp,16
				jr	ra
		.LFE209:
				.align	1
		LABELREF.6296:
		.LFB203:
  511 %routine expr
				add	sp,sp,-80
				sd	ra,72(sp)
				sd	s0,64(sp)
				sd	s1,56(sp)
				sd	s2,48(sp)
				sd	s3,40(sp)
				sd	s4,32(sp)
				sd	s5,24(sp)
				sd	s6,16(sp)
				sd	s7,8(sp)
				mv	s0,t2
		.LVL459:
  512 %integer oper,t,v,index
  513   oper=load
				li	s2,1
  514   %cycle
  515     nextatom; unary
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL464:
  516     %if type=constant %start
				li	s3,1
				mv	t2,s0
				call	UNARY.6201
		.LVL465:
				lw	s1,204(s0)
				beq	s1,s3,.L364
		.L348:
  517       atompos=atompos-1 %and val=cexpr(0) %if oper=load
				beq	s2,s3,.L363
		.L349:
  518       immediate(oper,val)
				li	s4,4096
				add	s4,t2,s4
				mv	t2,s0
				lw	a1,200(s0)
				mv	a0,s2
				call	IMMEDIATE.6326
		.LVL461:
		.L350:
		.L359:
				lw	a5,-272(s4)
				addw	a5,a5,-1
				sw	a5,-272(s4)
  519     %finishelseif type&varmask=var %start
				mv	t2,s0
				li	a0,0
				call	CEXPR.6203
		.LVL467:
				sw	a0,200(s0)
				j	.L349
		.L365:
		.LVL468:
  520       t=type; v=val
  521       %if open bracket %start
				and	a5,s1,1
				beqz	a5,.L365
		.L351:
				lw	s7,200(s0)
		.LVL469:
				mv	t2,s0
				call	OPENBRACKET.6186
		.LVL470:
				mv	a3,a0
				bnez	a0,.L367
		.L352:
		.L355:
		.LVL471:
  522         dump(pushax) %unless oper=load
				bne	s2,s3,.L368
  523         expr; double(t)
				mv	t2,s0
				call	EXPR.6312
		.LVL473:
				mv	t2,s0
				li	a0,80
				call	DUMP.6270
		.LVL479:
				mv	t2,s0
				call	EXPR.6312
		.LVL480:
  524         dump(16_8b); dump(16_f0);  !Mov si,ax
				mv	t2,s0
				mv	a0,s1
				call	DOUBLE.6397
		.LVL474:
				mv	t2,s0
				li	a0,139
				call	DUMP.6270
		.LVL475:
				mv	t2,s0
				mv	a0,s1
				call	DOUBLE.6397
		.LVL481:
				mv	t2,s0
				li	a0,139
				call	DUMP.6270
		.LVL482:
  525         dump(popax) %unless oper=load
				mv	t2,s0
				li	a0,240
				call	DUMP.6270
		.LVL476:
		.L354:
				mv	t2,s0
				li	a0,240
				call	DUMP.6270
		.LVL483:
  526         close bracket
				mv	t2,s0
				call	CLOSEBRACKET.6191
		.LVL477:
				mv	t2,s0
				li	a0,88
				call	DUMP.6270
		.LVL484:
				j	.L354
		.LVL485:
		.L366:
		.L357:
  527         index=1
				mv	a3,s3
  528       %finishelse index=0
				j	.L355
		.LVL478:
		.L368:
  529       direct(oper,t,v,index)
				mv	t2,s0
				mv	a2,s7
				mv	a1,s1
				mv	a0,s2
				call	DIRECT.6363
		.LVL472:
  530     %finishelseif type=proc %or type=xproc %or type=spec %start
				j	.L359
		.L367:
  531       %if oper=load %start
				beq	s2,s3,.L369
		.L358:
  532         call(type,val)
				li	s6,2
				addw	a5,s1,-8
				bleu	a5,s6,.L366
		.L356:
				mv	t2,s0
				lw	a1,200(s0)
				mv	a0,s1
				call	CALL.6315
		.LVL492:
  533       %else
				j	.L359
		.L346:
  534         dump(pushax); call(type,val); dump(16_8b); dump(16_d8);!mov bx,ax
				mv	t2,s0
				li	a0,80
				call	DUMP.6270
		.LVL486:
  535         dump(popax); direct(oper,bx,0,0)
				mv	t2,s0
				lw	a1,200(s0)
				lw	a0,204(s0)
				call	CALL.6315
		.LVL487:
				mv	t2,s0
				li	a0,88
				call	DUMP.6270
		.LVL490:
  536       %finish
				mv	t2,s0
				li	a0,139
				call	DUMP.6270
		.LVL488:
				mv	t2,s0
				li	a3,0
				li	a2,0
				li	a1,17
				mv	a0,s2
				call	DIRECT.6363
		.LVL491:
				j	.L359
		.L369:
  537     %else
				mv	t2,s0
				li	a0,216
				call	DUMP.6270
		.LVL489:
  538       fault(form)
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL466:
				j	.L359
		.L363:
  539     %finish
  540     %returnunless atomtype(atompos)=op
				li	s5,11
				j	.L347
		.LVL460:
		.L364:
				lw	a5,-272(s4)
				addw	a5,a5,-1
				add	a5,a5,904
				sll	a5,a5,2
				add	a5,s0,a5
				lw	a5,8(a5)
				bne	a5,s5,.L346
		.L361:
  541     nextatom
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL462:
  542     oper=val
				lw	s2,200(s0)
		.LVL463:
		.L347:
  543   %repeat
  544 %end
				ld	ra,72(sp)
				ld	s0,64(sp)
				ld	s1,56(sp)
				ld	s2,48(sp)
		.LVL493:
				ld	s3,40(sp)
				ld	s4,32(sp)
				ld	s5,24(sp)
				ld	s6,16(sp)
				ld	s7,8(sp)
				add	sp,sp,80
				jr	ra
		.LFE210:
				.align	1
		CALL.6315:
		.LFB206:
  545
  546 %routine return
				add	sp,sp,-16
				sd	ra,8(sp)
				sd	s0,0(sp)
				mv	s0,t2
  547   dump(16_8b); dump(16_e5); !Mov sp,bp
				li	a0,139
				call	DUMP.6270
		.LVL384:
  548   dump(16_5d); dump(16_1f); !Pop bp, pop ds
				mv	t2,s0
				li	a0,229
				call	DUMP.6270
		.LVL385:
				mv	t2,s0
				li	a0,93
				call	DUMP.6270
		.LVL386:
  549   %if parms=0 %then dump(16_cb) %elsestart
				mv	t2,s0
				li	a0,31
				call	DUMP.6270
		.LVL387:
				lw	a5,24(s0)
				beqz	a5,.L296
		.L293:
  550     dump(16_ca)
				mv	t2,s0
				li	a0,202
				call	DUMP.6270
		.LVL388:
				mv	t2,s0
				li	a0,203
				call	DUMP.6270
		.LVL391:
  551     dump(parms); dump(parms>>8)
				mv	t2,s0
				lw	a0,24(s0)
				call	DUMP.6270
		.LVL389:
				j	.L294
		.LFE211:
				.align	1
		DOUBLE.6397:
		.LFB209:
  552   %finish
				lw	a0,24(s0)
				srlw	a0,a0,8
				mv	t2,s0
				sext.w	a0,a0
				call	DUMP.6270
		.LVL390:
		.L294:
  553   access=0
				sw	zero,20(s0)
  554 %end
  555
				ld	ra,8(sp)
				ld	s0,0(sp)
				add	sp,sp,16
				jr	ra
		.L296:
  556 %routine terminate declarations
  557 %integer i
  558   fault(level0) %if level=0
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s11
				lw	a5,24(a5)
				beqz	a5,.L545
		.L518:
  559   %if level=1 %start
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s11
				lw	a4,24(a5)
				li	a5,1
				beq	a4,a5,.L546
		.L519:
		.LBE472:
		.LBE471:
				mv	t2,s0
				li	a0,11
				call	FAULT.6036
		.LVL815:
				j	.L518
		.L546:
  560     level=2; i=-floc
				li	a5,2
				li	a3,8192
				add	a4,a3,808
				add	a2,sp,96
				add	a4,a4,a2
				sw	a5,0(a4)
  561     %if i>127 %start
				add	a5,a3,804
				add	a5,a5,a2
				lw	s1,0(a5)
				subw	s1,zero,s1
				sext.w	s2,s1
		.LVL816:
				li	a5,127
				ble	s2,a5,.L520
  562       dump(16_81); dump(16_ec); dump(i); dump(i>>8); !Sub sp,nn
				mv	t2,s0
				li	a0,129
				call	DUMP.6270
		.LVL817:
  563     %finishelseunless i=0 %start
				mv	t2,s0
				li	a0,236
				call	DUMP.6270
		.LVL818:
  564       dump(16_83); dump(16_ec); dump(i); !sub sp,n
				mv	t2,s0
				mv	a0,s2
				call	DUMP.6270
		.LVL819:
				mv	t2,s0
				li	a0,131
				call	DUMP.6270
		.LVL821:
  565     %finish
				srlw	a0,s1,8
				mv	t2,s0
				sext.w	a0,a0
				call	DUMP.6270
		.LVL820:
		.L521:
		.L522:
				beqz	s2,.L522
				mv	t2,s0
				li	a0,236
				call	DUMP.6270
		.LVL822:
  566     floc=floc-2
				li	a4,8192
				add	a5,a4,804
				add	a3,sp,96
				add	a5,a5,a3
				lw	a5,0(a5)
				addw	a5,a5,-2
				add	a4,a4,804
				add	a4,a4,a3
				sw	a5,0(a4)
				j	.L519
		.L520:
				mv	t2,s0
				mv	a0,s2
				call	DUMP.6270
		.LVL823:
				j	.L522
		.LVL824:
		.L547:
		.LBE473:
		.LBE539:
  567   %finish
  568 %end
  569
  570 %routine constdef
  571 %integer c
  572   %cycle
  573     nextatom; %returnif type=sep
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL647:
  574     fault(ambig) %unless type=unknown; c=val
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	s2,a5,s11
				li	s3,14
				lw	a5,212(s2)
				beq	a5,s3,.L528
		.L447:
				bnez	a5,.L548
		.L448:
  575     fault(form) %unless equal sign
				mv	t2,s0
				li	a0,6
				call	FAULT.6036
		.LVL643:
				j	.L448
		.LVL644:
		.L449:
				mv	t2,s0
				call	EQUALSIGN.6196
		.LVL649:
				bnez	a0,.L449
  576     tagtype(c)=constant; tagval(c)=cexpr(1)
				li	s4,1
				j	.L445
		.L548:
				addw	s1,s1,-1
		.LVL645:
				add	a5,s1,252
				sll	a5,a5,2
				add	a5,s2,a5
				sw	s4,8(a5)
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL650:
				j	.L449
		.LVL651:
		.L439:
		.LBE475:
		.LBE474:
  577   %repeat
				mv	t2,s0
				li	a0,1
				call	CEXPR.6203
		.LVL646:
				add	a5,s1,52
				sll	a5,a5,2
				add	a5,s2,a5
				sw	a0,8(a5)
		.L445:
				lw	s1,208(s2)
		.LVL648:
  578 %end
  579
  580 %routine vardef(%integer key)
  581 %integer t,lb,ub,c,r
  582 %integername v
  583   %cycle
  584     nextatom
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL700:
  585 next: %returnif type=sep
  586     fault(ambig) %unless type=unknown
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	s4,a5,s11
				lw	a5,212(s4)
				li	a4,14
				beq	a5,a4,.L528
		.L455:
				bnez	a5,.L550
		.L456:
		.LDL21:
		.LVL665:
  587     t=var
				mv	t2,s0
				li	a0,6
				call	FAULT.6036
		.LVL652:
				j	.L456
		.LVL653:
		.L551:
  588     t=t+wordbit %if key=kword
  589     t=t+glabit %if level=0
				lw	a5,24(s4)
				ld	a4,16(sp)
				bnez	a5,.L457
  590     tagtype(val)=t; v==tagval(val)
				addw	a5,a5,2
				sd	a5,24(sp)
				ld	a4,24(sp)
		.L457:
		.LVL666:
				lw	s1,208(s4)
				addw	s1,s1,-1
				add	a5,s1,252
				sll	a5,a5,2
				add	a5,s4,a5
				sw	a4,8(a5)
		.LVL667:
  591     %if open bracket %start
				mv	t2,s0
				call	OPENBRACKET.6186
		.LVL668:
				mv	s3,a0
				bnez	a0,.L551
		.L458:
		.L460:
		.LVL669:
  592       lb=cexpr(1); nextatom; fault(form) %unless type=colon
				mv	t2,s0
				li	a0,1
				call	CEXPR.6203
		.LVL654:
				mv	s3,a0
		.LVL655:
  593       ub=cexpr(1)+1; close bracket
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL656:
				mv	t2,s0
				li	a0,1
				call	CEXPR.6203
		.LVL657:
				addw	s7,a0,1
		.LVL658:
  594     %finishelse lb=0 %and ub=1
				lw	a4,212(s4)
				li	a5,13
				bne	a4,a5,.L549
		.L459:
				mv	t2,s0
				call	CLOSEBRACKET.6191
		.LVL659:
				j	.L460
		.L549:
  595     lb=lb+lb %and ub=ub+ub %if key=kword
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL660:
				j	.L459
		.LVL661:
		.L552:
				li	a5,18
				beq	s2,a5,.L552
		.LVL670:
		.L461:
  596     %if level=0 %start
				sllw	s3,s3,1
		.LVL662:
				lw	a5,24(s4)
				bnez	a5,.L462
  597       v=gloc-lb; t=v+ub
				li	a5,4096
				add	s6,s4,a5
				j	.L453
		.L451:
				li	a5,5
				j	.L452
		.L550:
				sllw	s7,s7,1
		.LVL663:
				j	.L461
		.L553:
				li	s7,1
				lw	a5,-672(s6)
				subw	s3,a5,s3
		.LVL671:
				add	s1,s1,52
				sll	s1,s1,2
				add	s1,s4,s1
				sw	s3,8(s1)
  598       %if equal sign %start
				addw	s7,s3,s7
		.LVL672:
				mv	t2,s0
				call	EQUALSIGN.6196
		.LVL673:
				beqz	a0,.L463
  599         %cycle
  600           nextatom
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL675:
  601           %if gloc>=t %start
				lw	a5,-672(s6)
				bge	a5,s7,.L553
		.L465:
  602             gflush; ->next
				mv	t2,s0
				call	GFLUSH.6250
		.LVL664:
		.L454:
  603           %finish
  604           %if type=string %start
				lw	a5,212(s4)
				beq	a5,s9,.L554
		.L466:
				li	s9,2
				j	.L454
		.LVL701:
		.L557:
  605             dumpstring(val)
				mv	t2,s0
				lw	a0,208(s4)
				call	DUMPSTRING.6262
		.LVL674:
		.L464:
  606           %finishelseif type=sep %start
  607             readline
				mv	t2,s0
				call	READLINE.6052
		.LVL676:
				j	.L464
		.L468:
  608           %finishelsestart
				li	s10,14
				bne	a5,s10,.L468
  609             atompos=atompos-1; c=Cexpr(1); r=1
				lw	a5,-264(s6)
				addw	a5,a5,-1
				sw	a5,-264(s6)
  610             %if open bracket %start
				mv	t2,s0
				li	a0,1
				call	CEXPR.6203
		.LVL677:
				mv	s3,a0
		.LVL678:
				mv	t2,s0
				call	OPENBRACKET.6186
		.LVL679:
				bnez	a0,.L555
		.LVL680:
		.L469:
		.LBB478:
		.LBB479:
  611               r=cexpr(1); close bracket
				li	s1,1
				mv	t2,s0
				li	a0,1
				call	CEXPR.6203
		.LVL682:
				mv	s1,a0
		.LVL683:
  612             %finish
				mv	t2,s0
				call	CLOSEBRACKET.6191
		.LVL684:
  613             %while r>0 %cycle
  614               r=r-1; %if key=kword %then gword(c) %else gbyte(c)
				bgtz	s1,.L469
				j	.L464
		.LVL685:
		.L556:
		.LBB481:
		.LBB480:
				blez	s1,.L464
		.L472:
		.LVL688:
				addw	s1,s1,-1
		.LVL689:
  615             %repeat
				li	s5,18
				j	.L464
		.L554:
				beq	s2,s5,.L556
		.L473:
  616           %finish
  617         %repeat
  618       %else
  619         selectoutput(object); printsymbol(2); printsymbol(3)
				mv	t2,s0
				mv	a0,s3
				call	GBYTE.6243
		.LVL690:
				j	.L474
		.LVL691:
		.L463:
		.LBB482:
		.LBB483:
				li	a5,1
				lui	a4,%hi(_imp_OutStream)
				sw	a5,%lo(_imp_OutStream)(a4)
				lui	a5,%hi(_imp_outfile+296)
				ld	a4,%lo(_imp_outfile+296)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				ld	a0,40(sp)
				call	check_outstream
		.LVL692:
		.LBE483:
		.LBE482:
		.LBB484:
		.LBB485:
				li	a0,2
				call	_imp_printsymbol
		.LVL693:
		.LBE485:
		.LBE484:
		.LBB486:
		.LBB487:
				li	a0,3
				call	_imp_printsymbol
		.LVL694:
		.LBE487:
		.LBE486:
		.LBB488:
		.LBB489:
				and	a0,s7,0xff
				call	_imp_printsymbol
		.LVL695:
		.LBE489:
		.LBE488:
  620         printsymbol(t&255); printsymbol(t>>8&255); gloc=t
  621       %finish
				srlw	a0,s7,8
		.LBB490:
		.LBB491:
				and	a0,a0,0xff
				call	_imp_printsymbol
		.LVL696:
		.LBE491:
		.LBE490:
  622     %else
				sw	s7,-672(s6)
				j	.L453
		.LVL697:
		.L462:
  623       fault(declate) %if level=2
				li	a4,2
				beq	a5,a4,.L557
		.L476:
  624       floc=floc-ub+lb; v=floc-lb
				lw	a5,20(s4)
				subw	s7,a5,s7
		.LVL698:
				addw	s3,s3,s7
		.LVL699:
				sw	s3,20(s4)
				mv	t2,s0
				li	a0,8
				call	FAULT.6036
		.LVL702:
				j	.L476
		.LVL703:
		.L539:
		.L478:
		.LBE477:
		.LBE476:
		.LBB492:
		.LBB493:
  625     %finish
				add	a5,s1,52
				sll	a5,a5,2
				add	a5,s4,a5
				sw	s7,8(a5)
		.L453:
  626   %repeat
  627 %end
  628
  629 %routine procdef(%integer key)
				li	a5,8192
				add	a4,a5,784
				add	a3,sp,96
				add	a4,a4,a3
				li	a3,16384
				add	a3,a3,896
				add	a2,sp,96
				add	a3,a3,a2
				sd	a3,0(a4)
				mv	s1,a5
				add	a5,a5,512
				add	a5,a5,a2
				sd	s0,0(a5)
  630 %integer p,sym
  631 %string(31)s
  632
  633   %routine getstring
				add	sp,sp,-1088
				sd	ra,1080(sp)
				sd	s0,1072(sp)
				sd	s1,1064(sp)
				sd	s2,1056(sp)
				sd	s3,1048(sp)
				mv	s0,t2
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,1032(sp)
  634     s=""
  635     %cycle
  636       sym=line(val); %returnif sym='"'; val=val+1; s=s.tostring(sym)
				add	s1,t2,12
		.LVL10:
				li	a2,31
				add	a1,sp,8
				mv	a0,s1
				call	_imp_strncpy
		.LVL11:
				ld	a4,0(s0)
				lw	a5,200(a4)
				addw	a5,a5,-1
				add	a5,a4,a5
				li	a3,8192
				add	a5,a3,a5
				lbu	a5,-104(a5)
				sext.w	a3,a5
				sw	a5,8(s0)
				li	s3,8192
				li	s2,34
		.L21:
				ld	a4,0(s0)
				lw	a5,200(a4)
				addw	a5,a5,-1
				add	a5,a4,a5
				add	a5,s3,a5
				lbu	a5,-104(a5)
				sext.w	a3,a5
				sw	a5,8(s0)
  637     %repeat
				li	a5,34
				beq	a3,a5,.L19
				bne	a3,s2,.L21
		.L19:
  638   %end
				ld	a4,1032(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L25
				ld	ra,1080(sp)
				ld	s0,1072(sp)
				ld	s1,1064(sp)
				ld	s2,1056(sp)
				ld	s3,1048(sp)
				add	sp,sp,1088
				jr	ra
		.L25:
				call	__stack_chk_fail
		.LVL15:
		.LFE216:
				.align	1
		IMMEDIATE.6326:
		.LFB207:
  639
  640   nextatom; fault(ambig) %unless type=unknown
				lw	a5,200(a4)
				addw	a5,a5,1
				sw	a5,200(a4)
		.LVL12:
		.LBB220:
		.LBB221:
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL704:
  641   %if key=kspec %start
				add	a5,s1,996
				add	a4,sp,96
				add	a5,a5,a4
				lw	a5,0(a5)
				bnez	a5,.L558
		.L479:
				li	a5,20
				beq	s2,a5,.L559
		.L480:
  642     tagtype(val)=spec; tagval(val)=gloc
				mv	t2,s0
				li	a0,6
				call	FAULT.6036
		.LVL715:
				j	.L479
		.L559:
				li	a2,8192
				add	a5,a2,992
				add	a4,sp,96
				add	a5,a5,a4
				lw	a5,0(a5)
				addw	a5,a5,-1
				add	a4,a5,252
				sll	a4,a4,2
				add	a3,a2,784
				add	a1,sp,96
				add	a3,a3,a1
				add	a4,a3,a4
				li	a3,10
				sw	a3,8(a4)
  643     nextatom; fault(form) %unless type=string
				add	a2,sp,776
				mv	a1,s1
				add	a0,sp,520
				call	_imp_join
		.LVL13:
		.LBE221:
		.LBE220:
				li	a2,31
				add	a1,sp,264
				mv	a0,s1
				call	_imp_strncpy
		.LVL14:
		.LDL2:
				add	a5,a5,52
				sll	a5,a5,2
				add	a4,a2,784
				add	a4,a4,a1
				add	a5,a4,a5
				mv	s1,a2
				add	a4,a2,784
				add	a4,a4,a1
				li	a3,4096
				add	a4,a4,a3
				lw	a4,-672(a4)
				sw	a4,8(a5)
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL716:
  644     getstring; p=length(s)
				add	a5,s1,996
				add	a4,sp,96
				add	a5,a5,a4
				lw	a4,0(a5)
				li	a5,2
				beq	a4,a5,.L481
				add	t2,s11,-272
				li	s4,16384
				add	a5,s4,784
				add	a4,sp,96
				add	a5,a5,a4
				add	t2,a5,t2
				call	GETSTRING.6483
		.LVL718:
  645     selectoutput(object); printsymbol(2)
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL717:
		.L481:
				add	a5,s4,784
				add	a4,sp,96
				add	a5,a5,a4
				add	s1,a5,s11
				lbu	s2,-260(s1)
		.LVL719:
		.LBB494:
		.LBB495:
				li	a5,1
				lui	a4,%hi(_imp_OutStream)
				sw	a5,%lo(_imp_OutStream)(a4)
				lui	a5,%hi(_imp_outfile+296)
				ld	a4,%lo(_imp_outfile+296)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				ld	a0,40(sp)
				call	check_outstream
		.LVL720:
		.LBE495:
		.LBE494:
		.LBB496:
		.LBB497:
				li	a0,2
				call	_imp_printsymbol
		.LVL721:
		.LBE497:
		.LBE496:
		.LBB498:
		.LBB499:
				li	a0,8
				call	_imp_printsymbol
		.LVL722:
		.LBE499:
		.LBE498:
		.LBB500:
		.LBB501:
				mv	a0,s2
				call	_imp_printsymbol
		.LVL723:
				add	s3,s1,-1552
				li	a2,256
				add	a1,s1,-1296
				mv	a0,s3
				call	memcpy
		.LVL724:
		.LBE501:
		.LBE500:
		.LBB502:
		.LBB503:
				li	s2,-16384
		.LVL725:
				li	a2,256
				mv	a1,s3
				add	a0,sp,96
				call	memcpy
		.LVL726:
				add	a0,s2,-784
				add	a5,s4,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a0,a5,a0
				call	_imp_printstring
		.LVL727:
		.LBE503:
		.LBE502:
		.LBB504:
		.LBB505:
				li	a0,7
				call	_imp_printsymbol
		.LVL728:
		.LBE505:
		.LBE504:
		.LBB506:
		.LBB507:
				li	a0,0
				call	_imp_printsymbol
		.LVL729:
		.LBE507:
		.LBE506:
  646     printsymbol(8); printsymbol(p); printstring(s)
  647     printsymbol(7); printsymbol(0)
  648     gloc=gloc+4; %return
				li	a5,4096
				add	s1,s1,a5
				lw	a5,-672(s1)
				addw	a5,a5,4
				sw	a5,-672(s1)
				j	.L528
		.LVL730:
		.L560:
  649   %finish
  650   fault(nested) %unless level=0; level=1; access=1; textlevel=0
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s11
				lw	a5,24(a5)
				bnez	a5,.L560
		.L482:
  651   v=val; t=proc; nextatom
				lw	a5,208(s1)
				sw	a5,16(s1)
				mv	t2,s0
				li	a0,7
				call	FAULT.6036
		.LVL731:
				j	.L482
		.L561:
  652   %if type=string %start
				li	a5,8
				sw	a5,12(s1)
				lw	a4,212(s1)
				li	a5,2
				beq	a4,a5,.L561
		.LVL706:
		.L483:
  653     getstring
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	s1,a5,s11
				li	a5,1
				sw	a5,24(s1)
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL705:
				add	t2,s11,-272
				li	s4,16384
				add	a5,s4,784
				add	a4,sp,96
				add	a5,a5,a4
				add	t2,a5,t2
				call	GETSTRING.6483
		.LVL732:
		.LBB508:
		.LBB509:
				li	a5,1
				lui	a4,%hi(_imp_OutStream)
				sw	a5,%lo(_imp_OutStream)(a4)
				lui	a5,%hi(_imp_outfile+296)
				ld	a4,%lo(_imp_outfile+296)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				ld	a0,40(sp)
				call	check_outstream
		.LVL733:
		.LBE509:
		.LBE508:
		.LBB510:
		.LBB511:
				li	a0,1
				call	_imp_printsymbol
		.LVL734:
		.LBE511:
		.LBE510:
		.LBB512:
		.LBB513:
				li	a0,6
				call	_imp_printsymbol
		.LVL735:
		.LBE513:
		.LBE512:
		.LBB514:
		.LBB515:
				li	s3,8192
				add	a5,s3,524
				add	a4,sp,96
				add	a5,a5,a4
				lbu	a0,0(a5)
				call	_imp_printsymbol
		.LVL736:
				add	a5,s3,784
				add	a4,sp,96
				add	a5,a5,a4
				add	s2,a5,-1808
		.LVL737:
				li	a2,256
				add	a5,s3,784
				add	a5,a5,a4
				add	a1,a5,-1040
				mv	a0,s2
				call	memcpy
		.LVL738:
		.LBE515:
		.LBE514:
		.LBB516:
		.LBB517:
				li	s1,-16384
				li	a2,256
				mv	a1,s2
				add	a0,sp,96
				call	memcpy
		.LVL739:
				add	a0,s1,-784
				add	a5,s4,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a0,a5,a0
				call	_imp_printstring
		.LVL740:
		.LBE517:
		.LBE516:
  654     selectoutput(object); printsymbol(1); printsymbol(6)
				sw	a5,28(s1)
  655     printsymbol(length(s)); printstring(s)
				sw	zero,196(s1)
  656     t=xproc; nextatom
				li	a5,9
				add	a4,s3,796
				add	a3,sp,96
				add	a4,a4,a3
				sw	a5,0(a4)
  657   %finish
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL741:
				j	.L483
		.L562:
  658   tagtype(v)=t; tagval(v)=cloc
				li	a2,8192
				add	a5,a2,800
				add	a4,sp,96
				add	a5,a5,a4
				lw	a5,0(a5)
				addw	a5,a5,-1
				add	a4,a5,252
				sll	a4,a4,2
				add	a3,a2,784
				add	a1,sp,96
				add	a3,a3,a1
				add	a4,a3,a4
				add	a3,a2,796
				add	a3,a3,a1
				lw	a3,0(a3)
				sw	a3,8(a4)
  659   dump(16_1e); dump(16_55); !Push ds, push bp
				add	a5,a5,52
				sll	a5,a5,2
				add	a4,a2,784
				add	a4,a4,a1
				add	a5,a4,a5
				mv	s1,a2
				add	a4,a2,784
				add	a4,a4,a1
				li	a3,4096
				add	a4,a4,a3
				lw	a4,-668(a4)
				sw	a4,8(a5)
				mv	t2,s0
				li	a0,30
				call	DUMP.6270
		.LVL707:
  660   dump(16_8b); dump(16_ec); !Mov BP,SP
				mv	t2,s0
				li	a0,85
				call	DUMP.6270
		.LVL708:
				mv	t2,s0
				li	a0,139
				call	DUMP.6270
		.LVL709:
  661   dump(16_33); dump(16_C0); !Xor AX,AX
				mv	t2,s0
				li	a0,236
				call	DUMP.6270
		.LVL710:
				mv	t2,s0
				li	a0,51
				call	DUMP.6270
		.LVL711:
  662   dump(pushax);             !For event mechanism
				mv	t2,s0
				li	a0,192
				call	DUMP.6270
		.LVL712:
				mv	t2,s0
				li	a0,80
				call	DUMP.6270
		.LVL713:
  663   %if t=xproc %start
				add	a5,s1,796
				add	a4,sp,96
				add	a5,a5,a4
				lw	a4,0(a5)
				li	a5,9
				beq	a4,a5,.L562
		.L484:
  664     fault(labund) %if program=""
  665     dump(16_b8); flush; !Mov ax,nn=dseg
				mv	t2,s0
				li	a0,184
				call	DUMP.6270
		.LVL743:
  666     printsymbol(7); printsymbol(length(program)); printstring(program)
				add	a1,s11,-784
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a1,a5,a1
				ld	a0,56(sp)
				call	_imp_strcmp
		.LVL742:
				beqz	a0,.L563
		.L485:
				mv	t2,s0
				call	FLUSH.6274
		.LVL744:
		.LBB518:
		.LBB519:
				li	a0,7
				call	_imp_printsymbol
		.LVL745:
		.LBE519:
		.LBE518:
  667     cloc=cloc+2; dump(16_8E); dump(16_D8); !Mov ds,ax
				li	s1,8192
				add	a5,s1,784
				add	a4,sp,96
				add	a5,a5,a4
				li	a4,4096
				add	s3,a5,a4
		.LBB520:
		.LBB521:
				lbu	a0,-256(s3)
				call	_imp_printsymbol
		.LVL746:
				li	a5,-12288
				li	s4,16384
				add	a4,s4,784
				add	a3,sp,96
				add	a4,a4,a3
				add	a5,a4,a5
				sd	a5,88(sp)
				add	s2,a5,2032
				li	a2,256
				add	a5,s1,784
				add	a5,a5,a3
				add	a1,a5,-528
				mv	a0,s2
				call	memcpy
		.LVL747:
		.LBE521:
		.LBE520:
		.LBB522:
		.LBB523:
				li	s1,-16384
				li	a2,256
				mv	a1,s2
				add	a0,sp,96
				call	memcpy
		.LVL748:
				add	a0,s1,-784
				add	a5,s4,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a0,a5,a0
				call	_imp_printstring
		.LVL749:
		.LBE523:
		.LBE522:
				lw	a5,-668(s3)
				addw	a5,a5,2
				sw	a5,-668(s3)
  668   %finish
				mv	t2,s0
				li	a0,142
				call	DUMP.6270
		.LVL750:
  669   parms=0; oldtpos=v+1
				li	a4,8192
				add	a5,a4,816
				add	a3,sp,96
				add	a5,a5,a3
				sw	zero,0(a5)
				mv	t2,s0
				li	a0,216
				call	DUMP.6270
		.LVL751:
				j	.L484
		.L563:
				mv	t2,s0
				li	a0,10
				call	FAULT.6036
		.LVL752:
				j	.L485
		.L488:
  670   %while type#sep %cycle
				add	a5,a4,800
				add	a5,a5,a3
				lw	a5,0(a5)
				addw	a5,a5,1
				add	a4,a4,792
				add	a4,a4,a3
				sw	a5,0(a4)
  671     fault(ambig) %unless type=unknown
				li	a5,16384
				add	a5,a5,784
				add	a5,a5,a3
				add	s1,a5,s11
				li	s2,14
				lw	a5,212(s1)
				beq	a5,s2,.L487
				beqz	a5,.L488
  672     tagtype(val)=var+wordbit
				li	s3,5
				j	.L486
		.LVL714:
		.L558:
				lw	a5,208(s1)
				addw	a5,a5,-1
				add	a5,a5,252
				sll	a5,a5,2
				add	a5,s1,a5
				sw	s3,8(a5)
				mv	t2,s0
				li	a0,6
				call	FAULT.6036
		.LVL754:
				j	.L488
		.L487:
  673     parms=parms+1; nextatom
				lw	a5,32(s1)
				addw	a5,a5,1
				sw	a5,32(s1)
  674   %repeat
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL753:
		.L486:
  675   p=tagpos-parms; parms=parms+parms; sym=parms+6
				li	a5,8192
				mv	a4,a5
				add	a5,a5,784
				add	a3,sp,96
				add	a5,a5,a3
				li	a3,4096
				add	a5,a5,a3
				lw	a1,-680(a5)
				mv	a5,a4
				add	a4,a4,816
				add	a3,sp,96
				add	a4,a4,a3
				lw	a4,0(a4)
				subw	a3,a1,a4
		.LVL755:
  676   %while p<tagpos %cycle
				sllw	a4,a4,1
		.LVL756:
				add	a2,a5,816
		.LVL757:
				add	a0,sp,96
		.LVL758:
				add	a2,a2,a0
		.LVL759:
				sw	a4,0(a2)
		.LVL760:
  677     tagval(p)=sym; sym=sym-2; p=p+1
				addw	a4,a4,6
				add	a5,a5,520
				add	a5,a5,a0
				sw	a4,0(a5)
				sext.w	a4,a4
				li	a5,0
				li	a2,16384
				add	a2,a2,784
				add	a2,a2,a0
				add	a6,a2,s11
				li	a0,1
		.L489:
				sext.w	a2,a4
		.LVL761:
				addw	a4,a4,-2
				ble	a1,a3,.L490
				addw	a5,a3,-1
				add	a5,a5,52
				sll	a5,a5,2
				add	a5,a6,a5
				sw	a2,8(a5)
  678   %repeat
  679   floc=0
				addw	a3,a3,1
		.LVL762:
				mv	a5,a0
				j	.L489
		.LVL763:
		.L490:
				bnez	a5,.L564
		.L491:
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s11
				sw	zero,20(a5)
		.L446:
		.LVL764:
		.L528:
		.LBE493:
		.LBE492:
  680 %end
  681
  682 %routine instruction
				add	sp,sp,-64
				sd	ra,56(sp)
				sd	s0,48(sp)
				sd	s1,40(sp)
				sd	s2,32(sp)
				sd	s3,24(sp)
				sd	s4,16(sp)
				sd	s5,8(sp)
				sd	s6,0(sp)
				mv	s0,t2
  683 %integer t,v,i,oper,st,sv,si,dt,dv
  684   nextatom
				call	NEXTATOM.6182
		.LVL516:
  685   %if type=kmove %start
				lw	s1,204(s0)
				li	a5,23
				bne	s1,a5,.L404
  686     nextatom; oper=16_a4; !Movb
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL517:
  687     %if type=string %start
				lw	a4,204(s0)
				li	a5,2
				bne	a4,a5,.L405
		.LVL518:
				li	s3,164
  688       st=var+glabit; sv=gloc; si=0
				li	s1,6
		.L407:
		.LVL526:
		.L408:
  689       dumpstring(val); val=gloc-sv; gflush
				li	s1,4096
				add	s1,s0,s1
				lw	s5,-680(s1)
		.LVL519:
				mv	t2,s0
				lw	a0,200(s0)
				call	DUMPSTRING.6262
		.LVL520:
  690       %if val&1=0 %start
				lw	a5,-680(s1)
				subw	a5,a5,s5
				sw	a5,200(s0)
				lw	a5,200(s0)
				and	a4,a5,1
				bnez	a4,.L406
				li	s4,0
  691         val=val>>1; oper=16_a5; !Movw
				mv	t2,s0
				call	GFLUSH.6250
		.LVL521:
				srlw	a5,a5,1
				sw	a5,200(s0)
		.LVL522:
  692       %finish
				li	s3,165
		.LVL523:
		.L406:
  693       immediate(load,val); dump(pushax)
				mv	t2,s0
				lw	a1,200(s0)
				li	a0,1
				call	IMMEDIATE.6326
		.LVL524:
  694     %else
				mv	t2,s0
				li	a0,80
				call	DUMP.6270
		.LVL525:
  695       expr; dump(pushax)
				mv	t2,s0
				call	EXPR.6312
		.LVL558:
  696       nextatom; st=type; sv=val; si=0
				mv	t2,s0
				li	a0,80
				call	DUMP.6270
		.LVL559:
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL560:
  697       fault(form) %unless st&varmask=var
				lw	s1,204(s0)
		.LVL561:
  698       %if openbracket %start
				lw	s5,200(s0)
		.LVL562:
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL563:
		.LDL18:
				mv	t2,s0
				call	OPENBRACKET.6186
		.LVL564:
				mv	s4,a0
				beqz	a0,.L408
  699         expr; double(st); si=1; dump(pushax)
				mv	t2,s0
				call	EXPR.6312
		.LVL565:
  700         closebracket
				mv	t2,s0
				mv	a0,s1
				call	DOUBLE.6397
		.LVL566:
				mv	t2,s0
				call	CLOSEBRACKET.6191
		.LVL568:
  701       %finish
				li	s4,1
				j	.L408
		.LVL569:
		.L409:
  702       oper=16_a5 %if st&wordbit#0; !Movw
				mv	t2,s0
				li	a0,80
				call	DUMP.6270
		.LVL567:
  703     %finish
				li	s3,165
  704     nextatom; dt=type; dv=val
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL527:
  705     fault(form) %unless dt&varmask=var
				lw	s2,204(s0)
		.LVL528:
  706     %if openbracket %start
				lw	s6,200(s0)
		.LVL529:
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL530:
		.LDL17:
				mv	t2,s0
				call	OPENBRACKET.6186
		.LVL531:
				beqz	a0,.L409
  707       expr; double(dt); dump(16_8b); dump(16_f8); !Mov di,ax
				mv	t2,s0
				call	EXPR.6312
		.LVL532:
  708       direct(lea,dt,dv,0); dump(16_03); dump(16_f8); !add di,ax
				mv	t2,s0
				mv	a0,s2
				call	DOUBLE.6397
		.LVL533:
				mv	t2,s0
				li	a3,0
				mv	a2,s6
				mv	a1,s2
				li	a0,14
				call	DIRECT.6363
		.LVL536:
  709       closebracket
				mv	t2,s0
				li	a0,139
				call	DUMP.6270
		.LVL534:
				mv	t2,s0
				li	a0,3
				call	DUMP.6270
		.LVL537:
				mv	t2,s0
				call	CLOSEBRACKET.6191
		.LVL539:
		.L410:
  710     %else
				mv	t2,s0
				li	a0,248
				call	DUMP.6270
		.LVL535:
				mv	t2,s0
				li	a0,248
				call	DUMP.6270
		.LVL538:
  711       direct(lea,dt,dv,0); dump(16_8b); dump(16_f8); !Mov di,ax
				mv	t2,s0
				li	a3,0
				mv	a2,s6
				mv	a1,s2
				li	a0,14
				call	DIRECT.6363
		.LVL570:
  712     %finish
				mv	t2,s0
				li	a0,139
				call	DUMP.6270
		.LVL571:
  713     direct(lea,st,sv,0); dump(16_8b); dump(16_f0); !Mov si,ax
				mv	t2,s0
				li	a3,0
				mv	a2,s5
				mv	a1,s1
				li	a0,14
				call	DIRECT.6363
		.LVL540:
				mv	t2,s0
				li	a0,248
				call	DUMP.6270
		.LVL572:
				j	.L410
		.LVL573:
		.L412:
  714     %if si#0 %Start
				mv	t2,s0
				li	a0,139
				call	DUMP.6270
		.LVL541:
				beqz	s4,.L411
  715       dump(popax); dump(16_03); dump(16_f0); !add,si,ax
				mv	t2,s0
				li	a0,240
				call	DUMP.6270
		.LVL542:
				mv	t2,s0
				li	a0,88
				call	DUMP.6270
		.LVL543:
  716     %finish
				mv	t2,s0
				li	a0,3
				call	DUMP.6270
		.LVL544:
  717     %if dt&glabit=0 %then dump(16_16) %else dump(16_1e); !Push SS/DS
				mv	t2,s0
				li	a0,240
				call	DUMP.6270
		.LVL545:
		.L411:
				and	s2,s2,1
		.LVL546:
				bnez	s2,.L412
  718     dump(16_07);  !Pop ES
				mv	t2,s0
				li	a0,22
				call	DUMP.6270
		.LVL547:
		.L413:
				mv	t2,s0
				li	a0,7
				call	DUMP.6270
		.LVL548:
  719     %if st&glabit=0 %start
				and	s1,s1,1
		.LVL549:
				bnez	s1,.L414
  720       dump(16_1e); dump(16_16); dump(16_1f); !Push DS,SS, Pop DS
				mv	t2,s0
				li	a0,30
				call	DUMP.6270
		.LVL550:
  721     %finish
				mv	t2,s0
				li	a0,22
				call	DUMP.6270
		.LVL551:
				mv	t2,s0
				li	a0,30
				call	DUMP.6270
		.LVL574:
				j	.L413
		.LVL575:
		.L404:
  722     dump(16_59); dump(16_F2); dump(oper); !Pop cx, rep
				mv	t2,s0
				li	a0,31
				call	DUMP.6270
		.LVL552:
		.L414:
				mv	t2,s0
				li	a0,89
				call	DUMP.6270
		.LVL553:
  723     dump(16_1f) %if st&glabit=0; !Pop DS
				mv	t2,s0
				li	a0,242
				call	DUMP.6270
		.LVL554:
				bnez	s1,.L403
  724   %finishelseif type=krepeat %start
				mv	t2,s0
				mv	a0,s3
				call	DUMP.6270
		.LVL555:
				mv	t2,s0
				li	a0,31
				call	DUMP.6270
		.LVL556:
		.L415:
		.L427:
		.L403:
  725     poptext; fault(type) %unless type=repexp
				mv	t2,s0
				call	POPTEXT.6308
		.LVL576:
  726     dump(16_E9); labelref(label,val)
				li	a5,30
				bne	s1,a5,.L416
				lw	a0,204(s0)
				li	a5,14
				beq	a0,a5,.L417
				mv	t2,s0
				li	a0,233
				call	DUMP.6270
		.LVL578:
  727   %finishelseif type=kjump %start
				mv	t2,s0
				call	FAULT.6036
		.LVL577:
		.L417:
				mv	t2,s0
				lw	a1,200(s0)
				li	a0,3
				call	LABELREF.6296
		.LVL579:
				j	.L403
		.L416:
  728     nextatom; dump(16_e9); labelref(type,val)
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL580:
  729   %finishelseif type=kreturn %start
				li	a5,24
				bne	s1,a5,.L418
				mv	t2,s0
				li	a0,233
				call	DUMP.6270
		.LVL581:
				j	.L403
		.L418:
  730     expr %unless atomtype(atompos)=sep
				mv	t2,s0
				lw	a1,200(s0)
				lw	a0,204(s0)
				call	LABELREF.6296
		.LVL582:
				li	a5,4096
				add	a5,s0,a5
				lw	a5,-272(a5)
				addw	a5,a5,-1
				add	a5,a5,904
				sll	a5,a5,2
				add	a5,s0,a5
				lw	a4,8(a5)
				li	a5,14
				beq	a4,a5,.L420
  731     return
				li	a5,25
				bne	s1,a5,.L419
				mv	t2,s0
				call	EXPR.6312
		.LVL583:
		.L420:
				mv	t2,s0
				call	RETURN.6422
		.LVL584:
  732   %finishelseif type&varmask=var %start
				j	.L403
		.L419:
  733     t=type; v=val; i=0
  734     %if open bracket %start
				and	a5,s1,1
				bnez	a5,.L421
		.LVL585:
				lw	s3,200(s0)
		.LVL586:
				mv	t2,s0
				call	OPENBRACKET.6186
		.LVL587:
				mv	s2,a0
				beqz	a0,.L422
  735       expr; double(t); dump(pushax)
				mv	t2,s0
				call	EXPR.6312
		.LVL588:
  736       close bracket
				mv	t2,s0
				mv	a0,s1
				call	DOUBLE.6397
		.LVL589:
				mv	t2,s0
				call	CLOSEBRACKET.6191
		.LVL591:
  737       i=1
				mv	t2,s0
				li	a0,80
				call	DUMP.6270
		.LVL590:
				li	s2,1
		.LVL592:
		.L422:
  738     %finish
  739     fault(form) %unless equal sign
				mv	t2,s0
				call	EQUALSIGN.6196
		.LVL593:
				bnez	a0,.L423
  740     expr; dump(16_5e) %unless i=0; !pop si
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL594:
		.L423:
				mv	t2,s0
				call	EXPR.6312
		.LVL595:
  741     direct(store,t,v,i)
				beqz	s2,.L424
				mv	t2,s0
				mv	a3,s2
				mv	a2,s3
				mv	a1,s1
				li	a0,13
				call	DIRECT.6363
		.LVL597:
  742   %finishelseif type=proc %or type=xproc %or type=spec %start
				mv	t2,s0
				li	a0,94
				call	DUMP.6270
		.LVL596:
		.L424:
				j	.L403
		.LVL598:
		.L421:
  743     call(type,val)
				mv	t2,s0
				lw	a1,200(s0)
				mv	a0,s1
				call	CALL.6315
		.LVL599:
  744   %else
				addw	a5,s1,-8
				li	a4,2
				bgtu	a5,a4,.L425
		.L426:
				j	.L403
		.L425:
  745     atompos=atompos-1
				li	a5,4096
				add	s0,s0,a5
				lw	a5,-272(s0)
				addw	a5,a5,-1
				sw	a5,-272(s0)
  746   %finish
  747 %end
				j	.L403
		.LFE217:
				.align	1
				.globl	main
		main:
		.LFB185:
  748
				ld	ra,56(sp)
				ld	s0,48(sp)
				ld	s1,40(sp)
				ld	s2,32(sp)
				ld	s3,24(sp)
				ld	s4,16(sp)
				ld	s5,8(sp)
				ld	s6,0(sp)
				add	sp,sp,64
				jr	ra
		.LVL557:
		.L405:
  749 %integerfn cond; !Evaluate condition, return value of jump opcode
				add	sp,sp,-16
				sd	ra,8(sp)
				sd	s0,0(sp)
				mv	s0,t2
  750   expr; nextatom; fault(form) %unless type=comp
				call	EXPR.6312
		.LVL505:
  751   v=val; nextatom; unary
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL506:
				lw	a5,200(s0)
				sw	a5,8(s0)
  752   %if atomtype(atompos)#sep %or (type#constant %and type&varmask#var) %start
				lw	a4,204(s0)
				li	a5,12
				beq	a4,a5,.L381
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL508:
				mv	t2,s0
				call	UNARY.6201
		.LVL509:
				li	a5,4096
				add	a5,s0,a5
				lw	a5,-272(a5)
				addw	a5,a5,-1
				add	a5,a5,904
				sll	a5,a5,2
				add	a5,s0,a5
				lw	a4,8(a5)
				li	a5,14
				bne	a4,a5,.L382
				lw	a4,204(s0)
				li	a5,1
				beq	a4,a5,.L383
		.L382:
				mv	t2,s0
				li	a0,80
				call	DUMP.6270
		.LVL510:
  753     dump(pushax); atompos=atompos-1; expr
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL507:
		.L381:
  754     dump(16_8B); dump(16_D8); dump(popax); !Mov bx,ax
				li	a5,4096
				add	a5,s0,a5
				lw	a4,-272(a5)
				addw	a4,a4,-1
				sw	a4,-272(a5)
				mv	t2,s0
				li	a0,139
				call	DUMP.6270
		.LVL512:
				mv	t2,s0
				li	a0,216
				call	DUMP.6270
		.LVL513:
  755     type=bx
				mv	t2,s0
				call	EXPR.6312
		.LVL511:
				li	a5,17
				sw	a5,204(s0)
		.L383:
  756   %finish
				mv	t2,s0
				li	a0,88
				call	DUMP.6270
		.LVL514:
  757   direct(cmp,type,val,0)
				mv	t2,s0
				li	a3,0
				lw	a2,200(s0)
				lw	a1,204(s0)
				li	a0,7
				call	DIRECT.6363
		.LVL515:
  758   %result=16_72 %if v=']'+128
				lw	a5,8(s0)
				li	a4,221
				beq	a5,a4,.L384
		.L385:
				li	a4,91
  759   %result=16_73 %if v='['
				li	a0,114
				beq	a5,a4,.L384
		.L386:
				li	a4,35
  760   %result=16_74 %if v='#'
				li	a0,115
				beq	a5,a4,.L384
		.L387:
				li	a4,61
  761   %result=16_75 %if v='='
				li	a0,116
				beq	a5,a4,.L384
		.L388:
				li	a4,93
  762   %result=16_76 %if v=']'
				li	a0,117
				beq	a5,a4,.L384
		.L389:
				li	a4,219
  763   %result=16_77 %if v='['+128
				li	a0,118
				beq	a5,a4,.L384
		.L390:
				li	a4,190
  764   %result=16_7c %if v='>'+128
				li	a0,119
				beq	a5,a4,.L384
		.L391:
				li	a4,60
  765   %result=16_7d %if v='<'
				li	a0,124
				beq	a5,a4,.L384
		.L392:
				li	a4,62
  766   %result=16_7e %if v='>'
				li	a0,125
				beq	a5,a4,.L384
				li	a0,127
		.L384:
  767   %result=16_7f; ! %if v='<'+128
				li	a0,126
  768 %end
				ld	ra,8(sp)
				ld	s0,0(sp)
				add	sp,sp,16
				jr	ra
		.LFE218:
				.align	1
		INSTRUCTION.6518:
		.LFB217:
  769
  770 ! Main Program
  771
  772 %onevent 15 %start
				li	a1,1
				lui	a0,%hi(_imp_event+536)
				addi	a0,a0,%lo(_imp_event+536)
				call	__sigsetjmp
		.LVL602:
				bnez	a0,.L433
		.LVL603:
				li	a1,32768
				lui	a0,%hi(_imp_event)
				addi	a0,a0,%lo(_imp_event)
				call	_imp_on_event_enter
		.LVL604:
		.L433:
  773 %finish
  774
  775 %if tagpos=1 %start; ! (not via event: first time)
				li	a5,-8192
				li	a4,16384
				add	a4,a4,784
				add	a3,sp,96
				add	a4,a4,a3
				add	a5,a4,a5
				sd	a5,32(sp)
				li	a5,4096
				ld	a4,32(sp)
				add	a5,a4,a5
				lw	a4,-680(a5)
				li	a5,1
				beq	a4,a5,.L538
		.L434:
  776 program = cliparam
  777 openinput(source,program.".lc")
  778 openoutput(object,program.".iob")
				li	s1,-16384
				add	a1,s1,-528
				li	s2,-8192
				add	s0,s2,8
				add	a5,s7,784
				add	a4,sp,96
				add	a5,a5,a4
				add	s0,a5,s0
				li	s5,4096
				add	a5,s5,-264
				add	s0,s0,a5
				li	a2,31
				add	a5,s7,784
				add	a5,a5,a4
				add	a1,a5,a1
				mv	a0,s0
				call	_imp_strncpy
		.LVL609:
		.LBB448:
		.LBB449:
  779 openoutput(list,program.".lis")
				add	a2,s1,240
				add	a5,s7,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a2,a5,a2
				mv	a1,s0
				add	a0,sp,864
				call	_imp_join
		.LVL610:
				ld	a5,48(sp)
				add	s3,a5,752
				li	a2,256
				add	a1,sp,608
				mv	a0,s3
				call	memcpy
		.LVL611:
		.LBE449:
		.LBE448:
		.LBB450:
		.LBB451:
				add	s4,sp,96
				li	a2,256
				mv	a1,s3
				mv	a0,s4
				call	memcpy
		.LVL612:
				add	s3,s1,-784
				add	a5,s7,784
				add	a4,sp,96
				add	a5,a5,a4
				add	s3,a5,s3
				mv	a1,s3
				li	a0,1
				call	_imp_openinput
		.LVL613:
		.LBE451:
		.LBE450:
		.LBB452:
		.LBB453:
  780 selectoutput(list)
				add	a2,s1,1008
				add	a5,s7,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a2,a5,a2
				mv	a1,s0
				add	a0,sp,1632
				call	_imp_join
		.LVL614:
				ld	a5,48(sp)
				add	s6,a5,1008
				li	a2,256
				add	a1,sp,1376
				mv	a0,s6
				call	memcpy
		.LVL615:
		.LBE453:
		.LBE452:
		.LBB454:
		.LBB455:
				li	a2,256
				mv	a1,s6
				mv	a0,s4
				call	memcpy
		.LVL616:
				mv	a1,s3
				li	a0,1
				call	_imp_openoutput
		.LVL617:
		.LBE455:
		.LBE454:
		.LBB456:
		.LBB457:
  781 printstring("                  LC Cross-compiler  06/01/81"); newline; newline
				add	a5,sp,880
				add	s6,a5,1776
				add	a2,s1,1520
				add	a5,s7,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a2,a5,a2
				mv	a1,s0
				mv	a0,s6
				call	_imp_join
		.LVL618:
				ld	a5,48(sp)
				add	s0,a5,1264
				li	a2,256
				add	a5,sp,880
				add	a1,a5,1264
				mv	a0,s0
				call	memcpy
		.LVL619:
		.LBE457:
		.LBE456:
		.LBB458:
		.LBB459:
				li	a2,256
				mv	a1,s0
				mv	a0,s4
				call	memcpy
		.LVL620:
				mv	a1,s3
				li	a0,2
				call	_imp_openoutput
		.LVL621:
		.LBE459:
		.LBE458:
		.LBB460:
		.LBB461:
				lui	a5,%hi(_imp_OutStream)
				li	a4,2
				sw	a4,%lo(_imp_OutStream)(a5)
				lui	a5,%hi(_imp_outfile+584)
				ld	a4,%lo(_imp_outfile+584)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				lui	s0,%hi(.LANCHOR0)
				addi	s0,s0,%lo(.LANCHOR0)
				add	a0,s0,352
				call	check_outstream
		.LVL622:
		.LBE461:
		.LBE460:
		.LBB462:
				li	a2,256
				add	a1,s0,1288
				mv	a0,s6
				call	memcpy
		.LVL623:
				add	a5,sp,880
				add	s0,a5,2032
				li	a2,256
				mv	a1,s6
				mv	a0,s0
				call	memcpy
		.LVL624:
				ld	a5,48(sp)
				add	s1,a5,1520
				li	a2,256
				mv	a1,s0
				mv	a0,s1
				call	memcpy
		.LVL625:
		.LBE462:
		.LBB463:
		.LBB464:
				li	a2,256
				mv	a1,s1
				mv	a0,s4
				call	memcpy
		.LVL626:
				mv	a0,s3
				call	_imp_printstring
		.LVL627:
		.LBE464:
		.LBE463:
		.LBB465:
		.LBB466:
				call	_imp_newline
		.LVL628:
		.LBE466:
		.LBE465:
		.LBB467:
		.LBB468:
				call	_imp_newline
		.LVL629:
				add	a5,s7,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s2
				sd	a5,72(sp)
				add	a5,a5,s5
				li	a2,17
				lw	a3,-680(a5)
				addw	t1,a3,-18
		.LBE468:
		.LBE467:
  782   %for type=kconst,1,krepeat %cycle
  783     tag1(tagpos)=n1(type); tag2(tagpos)=n2(type)
				li	a5,-8192
				add	a4,s7,784
				add	a1,sp,96
				add	a4,a4,a1
				add	a5,a4,a5
				sd	a5,64(sp)
				lui	a5,%hi(.LANCHOR0)
				addi	a4,a5,%lo(.LANCHOR0)
				add	a0,a5,652
				sll	a0,a0,2
				ld	s0,64(sp)
				add	a0,s0,a0
				sll	a1,a1,2
				add	a1,a4,a1
				lw	t3,1544(a1)
				sw	t3,8(a0)
  784     tagtype(tagpos)=type; tagval(tagpos)=-1
				add	a0,a5,452
				sll	a0,a0,2
				add	a0,s0,a0
				lw	a1,1600(a1)
				sw	a1,8(a0)
				add	a1,a5,252
				sll	a1,a1,2
				add	a1,s0,a1
				sw	a2,8(a1)
  785     tagpos=tagpos+1
				li	a7,-1
				li	a6,31
		.L435:
				addw	a1,a2,-17
				addw	a5,t1,a2
				add	a5,a5,52
				sll	a5,a5,2
				add	a5,s0,a5
				sw	a7,8(a5)
		.LDL19:
				addw	a2,a2,1
				bne	a2,a6,.L435
		.LDL20:
				li	s0,-8192
				li	s2,16384
				add	a5,s2,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s0
				li	a4,30
				sw	a4,212(a5)
				li	s1,4096
				add	a5,a5,s1
				addw	a3,a3,14
				sw	a3,-680(a5)
		.LVL630:
		.LBB469:
		.LBB470:
				lui	a5,%hi(_imp_InStream)
				li	a4,1
				sw	a4,%lo(_imp_InStream)(a5)
				lui	a5,%hi(_imp_infile+296)
				ld	a4,%lo(_imp_infile+296)(a5)
				lui	a5,%hi(_imp_InFile)
				sd	a4,%lo(_imp_InFile)(a5)
				lui	a0,%hi(.LANCHOR0+1656)
				addi	a0,a0,%lo(.LANCHOR0+1656)
				call	check_instream
		.LVL631:
		.LBE470:
		.LBE469:
  786   %repeat
  787   selectinput(source); program=""
  788 %finish
  789
  790 %cycle
				add	a5,s0,8
				add	a4,s2,784
				add	a3,sp,96
				add	a4,a4,a3
				add	a5,a4,a5
				add	a0,s1,-264
				li	a2,31
				li	a1,-12288
				add	a1,a1,-1808
				add	a4,s2,784
				add	a4,a4,a3
				add	a1,a4,a1
				add	a0,a5,a0
				call	_imp_strncpy
		.LVL632:
				j	.L434
		.L438:
		.L441:
  791    readline
				li	s11,-8192
				add	s0,s11,8
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	s0,a5,s0
				mv	t2,s0
				call	READLINE.6052
		.LVL605:
  792    %cycle;  !Deal with labels
  793       nextatom
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL606:
  794       %exitunless type=unknown %and atomtype(atompos)=colon
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	s1,a5,s11
				lw	s2,212(s1)
				bnez	s2,.L441
  795       tagtype(val)=label; satrefs(tagval(val),cloc)
				li	a5,4096
				add	s3,s1,a5
				li	s4,13
				li	s6,3
				lw	a5,-264(s3)
				addw	a5,a5,-1
				add	a5,a5,904
				sll	a5,a5,2
				add	a5,s1,a5
				lw	a5,16(a5)
				bne	a5,s4,.L439
		.L440:
				lw	a5,208(s1)
				addw	a5,a5,-1
				add	a4,a5,252
				sll	a4,a4,2
				add	a4,s1,a4
				sw	s6,8(a4)
  796       tagval(val)=cloc; atompos=atompos+1
				add	a5,a5,52
				sll	a5,a5,2
				add	a5,s1,a5
				mv	t2,s0
				lw	a1,-668(s3)
				lw	a0,8(a5)
				call	SATREFS.6287
		.LVL607:
				lw	a5,208(s1)
				addw	a5,a5,-1
				add	a5,a5,52
				sll	a5,a5,2
				add	a5,s1,a5
				lw	a4,-668(s3)
				sw	a4,8(a5)
  797       access=1
				li	s5,1
		.L437:
				lw	a5,-264(s3)
				addw	a5,a5,1
				sw	a5,-264(s3)
				sw	s5,28(s1)
  798    %repeat
				j	.L437
		.L538:
		.LBB445:
		.LBB446:
		.LBB447:
				li	a5,-12288
				li	s7,16384
				add	a4,s7,784
				add	a4,a4,a3
				add	a5,a4,a5
				sd	a5,48(sp)
				add	a0,a5,496
				call	_imp_cliparam
		.LVL608:
		.LBE447:
		.LBE446:
		.LBE445:
  799    %continueif type=sep %and ifpos=0
				li	a5,14
				bne	s2,a5,.L442
  800    %if type=kconst %start
				li	a5,8192
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				li	a4,4096
				add	a5,a5,a4
				lw	a4,-676(a5)
				beqz	a4,.L436
		.L450:
				li	a5,17
				bne	s2,a5,.L439
		.LBB474:
		.LBB475:
  801       constdef
  802    %finishelseif type=kbyte %or type=kword %start
  803       vardef(type)
  804    %finishelseif type=kspec %or type=kproc %start
  805       procdef(type)
				sext.w	a5,s2
				sext.w	a5,s2
				addw	a3,a5,-18
				li	a4,1
				bgtu	a3,a4,.L450
				li	a5,18
				beq	s2,a5,.L451
				li	a5,4
		.L452:
				sext.w	a4,a5
				sd	a4,16(sp)
		.LBB476:
		.LBB477:
  806    %finishelseif type=kend %start
				addw	a5,a5,-20
				li	a4,1
				bleu	a5,a4,.L539
		.L477:
  807       %exitif level=0; level=0
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s11
				lw	a5,24(a5)
				beqz	a5,.L493
		.L494:
  808       return %unless access=0; flush
				li	a5,22
				beq	s2,a5,.L540
		.L492:
				add	a5,a4,812
				add	a5,a5,a3
				lw	a5,0(a5)
				beqz	a5,.L495
  809       val=oldtpos; oldtpos=tagpos; tagpos=val; ! Reset tagpos before moaning
				mv	t2,s0
				call	RETURN.6422
		.LVL769:
		.L495:
				li	a2,8192
				add	a5,a2,792
				add	a4,sp,96
				add	a5,a5,a4
				lw	a4,0(a5)
				add	a5,a2,992
				add	a3,sp,96
				add	a5,a5,a3
				sw	a4,0(a5)
  810       %while oldtpos>tagpos %cycle
				li	a4,8192
				add	a5,a4,808
				add	a3,sp,96
				add	a5,a5,a3
				sw	zero,0(a5)
				add	a5,a2,784
				add	a5,a5,a3
				li	a1,4096
				add	a5,a5,a1
				lw	a3,-680(a5)
				add	a0,a2,792
				add	s1,sp,96
				add	a0,a0,s1
				sw	a3,0(a0)
  811          oldtpos=oldtpos-1; fault(labund) %if tagtype(oldtpos)=unknown
				mv	t2,s0
				call	FLUSH.6274
		.LVL770:
				sw	a4,-680(a5)
				add	a5,a2,784
				add	a5,a5,s1
				add	s3,a5,a1
				li	s2,0
				li	s1,1
		.L496:
		.L497:
				li	a5,8192
				add	a5,a5,792
				add	a4,sp,96
				add	a5,a5,a4
				lw	a4,0(a5)
				lw	a2,-680(s3)
				mv	a3,s2
		.L499:
				bge	a2,a4,.L498
				addw	a5,a4,-1
				sext.w	a4,a5
  812       %repeat
				addw	a5,a5,-1
				add	a5,a5,252
				sll	a5,a5,2
				li	a3,8192
				add	a3,a3,784
				add	a1,sp,96
				add	a3,a3,a1
				add	a5,a3,a5
				lw	a5,8(a5)
				mv	a3,s1
				bnez	a5,.L499
				li	a5,8192
				add	a5,a5,792
				add	a5,a5,a1
				sw	a4,0(a5)
  813       %unless textlevel=0 %start
				mv	t2,s0
				li	a0,10
				call	FAULT.6036
		.LVL771:
				j	.L496
		.L498:
				bnez	a3,.L565
		.L500:
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s11
				lw	a5,196(a5)
				beqz	a5,.L528
  814          poptext; textlevel=0; fault(type)
				mv	t2,s0
				call	POPTEXT.6308
		.LVL772:
  815       %finish
				li	a4,8192
				add	a5,a4,980
				add	a3,sp,96
				add	a5,a5,a3
				sw	zero,0(a5)
  816    %finishelseif type=kprogram %start
				mv	t2,s0
				add	a5,a4,996
				add	a5,a5,a3
				lw	a0,0(a5)
				call	FAULT.6036
		.LVL773:
				j	.L528
		.L565:
				li	a5,16384
				add	a5,a5,784
				add	a3,sp,96
				add	a5,a5,a3
				add	a5,a5,s11
				sw	a4,8(a5)
				j	.L500
		.L541:
  817       fault(ambig) %unless program=""
  818       nextatom; fault(form) %unless type=string
				li	a5,26
				beq	s2,a5,.L541
		.L501:
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL776:
  819       fault(form) %if val='"'; !Null name not allowed
				li	a5,4096
				add	a5,a5,-264
				add	a5,s0,a5
				sd	a5,56(sp)
		.LBB442:
		.LBB443:
				lui	a5,%hi(.LANCHOR0+352)
				addi	a5,a5,%lo(.LANCHOR0+352)
				sd	a5,40(sp)
		.L436:
		.LBE443:
		.LBE442:
				li	a1,-12288
				add	a1,a1,-1552
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a1,a5,a1
				ld	a0,56(sp)
				call	_imp_strcmp
		.LVL774:
				beqz	a0,.L502
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s11
				lw	a4,212(a5)
				li	a5,2
				bne	a4,a5,.L566
		.L503:
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s11
				lw	a4,208(a5)
				li	a5,34
				beq	a4,a5,.L567
		.L504:
  820       v=line(val)
				li	a3,8192
				add	a5,a3,992
				add	a4,sp,96
				add	a5,a5,a4
				lw	a5,0(a5)
				addw	a5,a5,-1
				add	a4,a3,784
				add	a2,sp,96
				add	a4,a4,a2
				add	a5,a4,a5
				li	a4,8192
				add	a5,a4,a5
				lbu	a5,-96(a5)
				add	a4,a3,800
				add	a4,a4,a2
				sw	a5,0(a4)
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL789:
				j	.L503
		.L567:
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL790:
				j	.L504
		.L542:
  821       %cycle
  822          val=val+1; program=program.tostring(v); v=line(val)
				mv	t2,s0
				li	a0,6
				call	FAULT.6036
		.LVL775:
		.L502:
				li	a4,16384
				add	a5,a4,784
				add	a5,a5,a2
				add	s1,a5,s11
		.LBB524:
		.LBB525:
				lw	a5,208(s1)
				addw	a5,a5,1
				sw	a5,208(s1)
		.LVL777:
		.LBB527:
		.LBB526:
  823       %repeatuntil v='"'
				li	a5,34
				bne	a4,a5,.L505
		.L506:
  824       program=program."_" %unless charno(program,length(program))='_'
				li	a5,8192
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				li	a3,4096
				add	a5,a5,a3
				lbu	a4,-256(a5)
				add	a5,a5,a4
				lbu	a4,-256(a5)
				li	a5,95
				beq	a4,a5,.L507
		.LBB528:
		.LBB529:
  825       selectoutput(object); printsymbol(2); printsymbol(6)
				li	a5,-12288
				li	a3,4096
				add	a3,a3,784
				add	a3,a3,a2
				add	s4,a3,-1040
				add	s3,a5,-784
				add	a3,a4,784
				add	a3,a3,a2
				add	s3,a3,s3
		.LBE525:
		.LBE524:
				add	a5,a5,-1296
				add	a4,a4,784
				add	a4,a4,a2
				add	s2,a4,a5
				mv	a2,s3
				ld	s6,56(sp)
				mv	a1,s6
				mv	a0,s4
				call	_imp_join
		.LVL778:
		.LBE526:
		.LBE527:
				li	a2,31
				mv	a1,s2
				mv	a0,s6
				call	_imp_strncpy
		.LVL779:
  826       printsymbol(length(program)); printstring(program)
				li	a5,8192
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				li	a4,4096
				add	a5,a5,a4
		.LBB535:
		.LBB536:
				lbu	a0,-256(a5)
				call	_imp_printsymbol
		.LVL785:
				li	a5,-12288
				li	s3,16384
				add	a4,s3,784
				add	a3,sp,96
				add	a4,a4,a3
				add	a5,a4,a5
				sd	a5,80(sp)
				add	s2,a5,1776
				li	a2,256
				add	a1,a5,240
				mv	a0,s2
				call	memcpy
		.LVL786:
		.LBE536:
		.LBE535:
		.LBB537:
		.LBB538:
				li	s1,-16384
				li	a2,256
				mv	a1,s2
				add	a0,sp,96
				call	memcpy
		.LVL787:
				add	a0,s1,-784
				add	a5,s3,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a0,a5,a0
				call	_imp_printstring
		.LVL788:
				j	.L528
		.L566:
		.LBE538:
		.LBE537:
  827    %finishelseif type=kcycle %start
				li	s1,-12288
				add	a2,s1,-16
				li	s2,16384
				add	a5,s2,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a2,a5,a2
				ld	s3,56(sp)
				mv	a1,s3
				add	a5,a3,784
				add	a5,a5,a4
				add	a0,a5,-272
				call	_imp_join
		.LVL780:
		.LBE529:
		.LBE528:
				add	a1,s1,-528
				li	a2,31
				add	a5,s2,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a1,a5,a1
				mv	a0,s3
				call	_imp_strncpy
		.LVL781:
		.L507:
		.LBB530:
		.LBB444:
				li	a5,1
				lui	a4,%hi(_imp_OutStream)
				sw	a5,%lo(_imp_OutStream)(a4)
				lui	a5,%hi(_imp_outfile+296)
				ld	a4,%lo(_imp_outfile+296)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				ld	a0,40(sp)
				call	check_outstream
		.LVL782:
		.LBE444:
		.LBE530:
		.LBB531:
		.LBB532:
				li	a0,2
				call	_imp_printsymbol
		.LVL783:
		.LBE532:
		.LBE531:
		.LBB533:
		.LBB534:
				li	a0,6
				call	_imp_printsymbol
		.LVL784:
		.LBE534:
		.LBE533:
  828       pushtext(repexp,cloc)
				li	s5,8192
		.L505:
				lw	a5,208(s1)
				addw	a5,a5,-1
				add	a5,s1,a5
				add	a5,s5,a5
				lbu	a5,-96(a5)
				sext.w	a4,a5
				sw	a5,16(s1)
				li	a5,8192
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				li	a4,4096
				add	a5,a5,a4
				mv	t2,s0
				lw	a1,-668(a5)
				li	a0,14
				call	PUSHTEXT.6304
		.LVL791:
				j	.L528
		.L543:
  829    %finishelseif type=kelse %start
				li	a5,29
				beq	s2,a5,.L542
		.L508:
  830       poptext; fault(type) %unless type=finexp
				mv	t2,s0
				call	POPTEXT.6308
		.LVL792:
  831       satrefs(val,cloc+3)
				li	a5,27
				beq	s2,a5,.L543
		.L509:
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s11
				lw	a0,212(a5)
				li	a5,15
				beq	a0,a5,.L510
				li	a4,8192
				add	a5,a4,784
				add	a3,sp,96
				add	a5,a5,a3
				li	a3,4096
				add	a5,a5,a3
				lw	a1,-668(a5)
				mv	t2,s0
				addw	a1,a1,3
				mv	s1,a4
				add	a5,a4,992
				add	a4,sp,96
				add	a5,a5,a4
				lw	a0,0(a5)
				call	SATREFS.6287
		.LVL794:
  832       poptext;  fault(type) %unless type=finexp
				mv	t2,s0
				call	FAULT.6036
		.LVL793:
		.L510:
				mv	t2,s0
				call	POPTEXT.6308
		.LVL795:
  833       dump(16_e9); dump(val); dump(val>>8)
				add	a5,s1,996
				add	a4,sp,96
				add	a5,a5,a4
				lw	a0,0(a5)
				li	a5,15
				beq	a0,a5,.L511
				mv	t2,s0
				li	a0,233
				call	DUMP.6270
		.LVL797:
  834       %if ifpos=0 %start
				mv	t2,s0
				call	FAULT.6036
		.LVL796:
		.L511:
				mv	t2,s0
				li	s1,8192
				add	a5,s1,992
				add	a4,sp,96
				add	a5,a5,a4
				lw	a0,0(a5)
				call	DUMP.6270
		.LVL798:
				add	a5,s1,784
				add	a4,sp,96
				add	a5,a5,a4
				li	a4,4096
				add	a5,a5,a4
				lw	a5,-676(a5)
				bnez	a5,.L512
  835         pushtext(context,0)
				add	a5,s1,992
				add	a4,sp,96
				add	a5,a5,a4
				lw	a0,0(a5)
				srlw	a0,a0,8
				mv	t2,s0
				sext.w	a0,a0
				call	DUMP.6270
		.LVL799:
				mv	t2,s0
				li	a1,0
				li	a0,16
				call	PUSHTEXT.6304
		.LVL800:
		.L513:
  836       %else
  837         pushtext(finexp,cloc-2)
				li	s2,8192
				add	a5,s2,784
				add	a4,sp,96
				add	a5,a5,a4
				li	s3,4096
				add	s1,a5,s3
				lw	a1,-668(s1)
				mv	t2,s0
				addw	a1,a1,-2
				li	a0,15
				call	PUSHTEXT.6304
		.LVL802:
  838         atompos=ifpos+1; dump(cond!!1); dump(3)
				lw	a5,-676(s1)
				addw	a5,a5,1
				sw	a5,-264(s1)
  839         dump(16_E9); dump(0); dump(0)
				mv	t2,s0
				call	COND.6557
		.LVL803:
				xor	a0,a0,1
				mv	t2,s0
				sext.w	a0,a0
				call	DUMP.6270
		.LVL804:
				mv	t2,s0
				li	a0,233
				call	DUMP.6270
		.LVL806:
  840         atompos=ifpos %and fault(form) %unless ifpos=2
				mv	t2,s0
				li	a0,3
				call	DUMP.6270
		.LVL805:
				mv	t2,s0
				li	a0,0
				call	DUMP.6270
		.LVL807:
				lw	a4,-676(s1)
				li	a5,2
				bne	a4,a5,.L568
		.L514:
  841         IFPOS=0
				mv	t2,s0
				li	a0,0
				call	DUMP.6270
		.LVL808:
				li	a5,8192
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				li	a4,4096
				add	a5,a5,a4
				sw	zero,-676(a5)
				j	.L513
		.L568:
				add	a5,s2,784
				add	a3,sp,96
				add	a5,a5,a3
				add	a5,a5,s3
				sw	a4,-264(a5)
  842       %finish
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL809:
				j	.L514
		.L544:
  843       pushtext(finexp,cloc-2)
				li	a5,8192
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				li	a4,4096
				add	a5,a5,a4
				lw	a1,-668(a5)
				mv	t2,s0
				addw	a1,a1,-2
				li	a0,15
				call	PUSHTEXT.6304
		.LVL801:
				j	.L528
		.L512:
  844    %finishelseif type=kfinish %start
  845       poptext; fault(type) %unless type=finexp %or type=context
				mv	t2,s0
				call	POPTEXT.6308
		.LVL810:
  846       satrefs(val,cloc)
				li	a5,28
				beq	s2,a5,.L544
		.L515:
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s11
				lw	a0,212(a5)
				addw	a4,a0,-15
				li	a5,1
				bleu	a4,a5,.L516
				li	a5,8192
				add	a4,a5,784
				add	a3,sp,96
				add	a4,a4,a3
				li	a3,4096
				add	s1,a4,a3
				mv	t2,s0
				lw	a1,-668(s1)
				mv	s2,a5
				add	a5,a5,992
				add	a4,sp,96
				add	a5,a5,a4
				lw	a0,0(a5)
				call	SATREFS.6287
		.LVL812:
  847       poptext; satrefs(val,cloc); access=1
				mv	t2,s0
				call	POPTEXT.6308
		.LVL813:
  848    %else
				mv	t2,s0
				call	FAULT.6036
		.LVL811:
		.L516:
				mv	t2,s0
				lw	a1,-668(s1)
				add	a5,s2,992
				add	a4,sp,96
				add	a5,a5,a4
				lw	a0,0(a5)
				call	SATREFS.6287
		.LVL814:
				j	.L528
		.L545:
		.LBB539:
		.LBB473:
  849       fault(varund) %if type=unknown
				bnez	s2,.L517
				li	a5,1
				add	a4,s2,812
				add	a3,sp,96
				add	a4,a4,a3
				sw	a5,0(a4)
  850       terminate declarations
				mv	t2,s0
				li	a0,12
				call	FAULT.6036
		.LVL633:
		.L517:
		.LBB471:
		.LBB472:
  851       %if ifpos=0 %start;  !  Statement
				li	a5,8192
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				li	a4,4096
				add	a5,a5,a4
				lw	a5,-676(a5)
				beqz	a5,.L547
		.L523:
  852          atompos=atompos-1; instruction
				li	a5,8192
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				li	a4,4096
				add	a5,a5,a4
				lw	a4,-264(a5)
				addw	a4,a4,-1
				sw	a4,-264(a5)
  853       %finishelseif type=sep %start;  ! IF condition
				mv	t2,s0
				call	INSTRUCTION.6518
		.LVL825:
		.L524:
  854          fault(form) %unless ifpos=atompos
				li	a4,8192
				add	a4,a4,784
				add	a3,sp,96
				add	a4,a4,a3
				li	a3,4096
				add	a4,a4,a3
				lw	a4,-264(a4)
				beq	a4,a5,.L526
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL634:
		.L526:
				li	a5,8192
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				li	a4,4096
				add	s1,a5,a4
				lw	a5,-676(s1)
				addw	a5,a5,1
				sw	a5,-264(s1)
  855          atompos=ifpos+1
				li	a4,16384
				add	a4,a4,784
				add	a3,sp,96
				add	a4,a4,a3
				add	a4,a4,s11
				lw	a3,212(a4)
				li	a4,14
				bne	a3,a4,.L525
  856          dump(cond!!1); dump(3); dump(16_E9); dump(0); dump(0)
				mv	t2,s0
				call	COND.6557
		.LVL635:
				xor	a0,a0,1
				mv	t2,s0
				sext.w	a0,a0
				call	DUMP.6270
		.LVL636:
  857          pushtext(finexp,0); pushtext(finexp,cloc-2)
				mv	t2,s0
				li	a0,3
				call	DUMP.6270
		.LVL637:
				mv	t2,s0
				li	a1,0
				li	a0,15
				call	PUSHTEXT.6304
		.LVL641:
  858       %else;   ! Statement IF condition
				mv	t2,s0
				li	a0,233
				call	DUMP.6270
		.LVL638:
				lw	a1,-668(s1)
				mv	t2,s0
				addw	a1,a1,-2
				li	a0,15
				call	PUSHTEXT.6304
		.LVL642:
				j	.L524
		.L442:
  859          oldapos=atompos-1; atompos=ifpos+1
				mv	t2,s0
				li	a0,0
				call	DUMP.6270
		.LVL639:
				li	a3,8192
				mv	s1,a3
				add	a4,a3,784
				add	a3,sp,96
				add	a4,a4,a3
				li	a3,4096
				add	s2,a4,a3
				lw	s3,-264(s2)
				addw	s3,s3,-1
		.LVL826:
  860          dump(cond)
				mv	t2,s0
				li	a0,0
				call	DUMP.6270
		.LVL640:
				addw	a5,a5,1
				sw	a5,-264(s2)
				mv	t2,s0
				call	COND.6557
		.LVL827:
				mv	t2,s0
				call	DUMP.6270
		.LVL828:
  861          oldcpos=cpos; dump(0)
				mv	s4,s1
				add	a5,s1,984
				add	a4,sp,96
				add	a5,a5,a4
				lw	s1,0(a5)
		.LVL829:
  862          atompos=oldapos; instruction
				mv	t2,s0
				li	a0,0
				call	DUMP.6270
		.LVL830:
				sw	s3,-264(s2)
  863          v=cpos-oldcpos-1; fault(far) %if v>127
				mv	t2,s0
				call	INSTRUCTION.6518
		.LVL831:
				add	a5,s4,984
				add	a4,sp,96
				add	a5,a5,a4
				lw	a5,0(a5)
				subw	a5,a5,s1
				addw	a5,a5,-1
				sext.w	a4,a5
				add	a3,s4,800
				add	a2,sp,96
				add	a3,a3,a2
				sw	a5,0(a3)
  864          code(oldcpos)=v
				li	a5,127
				ble	a4,a5,.L527
				li	a3,8192
				add	a5,a3,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s1
				li	a4,4096
				add	a5,a4,a5
				add	a4,a3,800
				add	a2,sp,96
				add	a4,a4,a2
				lw	a4,0(a4)
				sb	a4,0(a5)
  865          access=1
				mv	t2,s0
				li	a0,9
				call	FAULT.6036
		.LVL832:
		.L527:
				li	a5,1
				add	a4,a3,812
				add	a4,a4,a2
				sw	a5,0(a4)
				j	.L524
		.LVL833:
		.L493:
		.LBB540:
		.LBB541:
				lui	s3,%hi(_imp_OutStream)
				li	a5,1
				sw	a5,%lo(_imp_OutStream)(s3)
				lui	s2,%hi(_imp_OutFile)
				lui	s1,%hi(_imp_outfile)
				addi	s1,s1,%lo(_imp_outfile)
				ld	a5,296(s1)
				sd	a5,%lo(_imp_OutFile)(s2)
				lui	s0,%hi(.LANCHOR0+352)
				addi	s0,s0,%lo(.LANCHOR0+352)
				mv	a0,s0
				call	check_outstream
		.LVL834:
		.LBE541:
		.LBE540:
		.LBB542:
		.LBB543:
				li	a0,10
				call	_imp_printsymbol
		.LVL835:
		.LBE543:
		.LBE542:
		.LBB544:
		.LBB545:
				li	a5,2
				sw	a5,%lo(_imp_OutStream)(s3)
				ld	a5,584(s1)
				sd	a5,%lo(_imp_OutFile)(s2)
				mv	a0,s0
				call	check_outstream
		.LVL836:
		.LBE545:
		.LBE544:
		.LBB546:
		.LBB547:
				call	_imp_newline
		.LVL837:
		.LBE547:
		.LBE546:
		.LBB548:
		.LBB549:
				li	a0,0
				call	exit
		.LVL838:
		.LBE549:
		.LBE548:
		.LFE185:
				.section	.rodata
				.align	3
				.set	.LANCHOR0,. + 0
		.LC5:
				.byte	15
				.string	"test-new/lc.imp"
				.zero	239
		S.6331:
				.dword	.L31
				.dword	.L31
				.dword	.L31
				.dword	.L31
				.dword	.L31
				.dword	.L31
				.dword	.L31
				.dword	.L31
				.dword	.L31
				.dword	.L31
				.dword	.L31
				.dword	.L31
		__PRETTY_FUNCTION__.5605:
				.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
		S.6210:
				.dword	.L242
				.dword	.L242
				.dword	.L242
				.dword	.L242
				.dword	.L242
				.dword	.L242
				.dword	.L242
				.dword	.L242
				.dword	.L242
				.dword	.L242
				.dword	.L242
		CODE.6365:
				.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.6033:
				.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.6034:
				.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__.5601:
				.string	"_imp_SELECTINPUT"
				.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"
				.section	.sbss,"aw",@nobits
				.align	2
		QUOTE.6055:
				.zero	4
		SEMI.6054:
				.zero	4
		.Letext0:
  866       %finish
  867       ifpos=0
				li	a5,8192
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				li	a4,4096
				add	a5,a5,a4
				sw	zero,-676(a5)
				j	.L528
		.L525:
  868    %finish
  869   nextatom; fault(form) %unless type=sep %and ifpos=0
				mv	t2,s0
				call	NEXTATOM.6182
		.LVL765:
  870 %repeat
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s11
				lw	a4,212(a5)
				li	a5,14
				bne	a4,a5,.L529
  871 selectoutput(object); printsymbol(10)
				li	a5,8192
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				li	a4,4096
				add	a5,a5,a4
				lw	a5,-676(a5)
				beqz	a5,.L436
		.L529:
  872 selectoutput(list); newline
  873 %endofprogram
				mv	t2,s0
				li	a0,5
				call	FAULT.6036
		.LVL766:
				j	.L436
		.LVL767:
		.L564:
				li	a5,16384
				add	a5,a5,784
				add	a4,sp,96
				add	a5,a5,a4
				add	a5,a5,s11
				sw	a2,-264(a5)
				j	.L491
		.LVL768:
		.L540:
 1020 Statements compiled
