         Edinburgh IMP77 Compiler - Version 8.4

    1 %BEGIN;                               !HAL-70
		.Ltext0:
				.align	2
		CHAR.6:
		.LVL0:
		.LFB201:
				sub	sp, sp, #1744
				stp	x29, x30, [sp]
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				stp	x23, x24, [sp, 48]
				stp	x25, x26, [sp, 64]
				stp	x27, x28, [sp, 80]
				add	x2, sp, 1744
				str	x2, [sp, 456]
    2 !    INPUT/OUTPUT STREAMS
    3 %OWNINTEGER MAIN=1, PRE=2;            !INPUT
				bl	_imp_initialise
		.LVL632:
    4 %OWNINTEGER BIN=1, LIS=2;             !OUTPUT
    5 !    OPERAND TYPES
    6 %OWNINTEGER OPMASK=16_F000;           !MACHINE INSTRUCTION OR MACRO
    7 %OWNINTEGER MACRO=16_A000
    8 %OWNINTEGER SINGLE=16_5000
    9 %OWNINTEGER FMASK=16_0800;            !FORWARD REF
   10 %OWNINTEGER OPFMASK=16_F800;          !=OPMASK+FMASK
   11 %OWNINTEGER UMASK=16_0200;            !UNDEF (FORWARD REF)
   12 %OWNINTEGER BMASK=16_0100;            !BYTE
   13 %OWNINTEGER REG=16_0080;              !REGISTER
   14 %OWNINTEGER MEMMASK=16_0040;          !MEM REF
   15 %OWNINTEGER RELMASK=16_0020;          !RELOCATABLE
   16 %OWNINTEGER XMASK=16_0010;            !INDEXED
   17 %OWNINTEGER REGXMASK=16_0090;         !=REG+XMASK
   18 %OWNINTEGER RELUXMASK=16_0230;        !=RELMASK+UMASK+XMASK
   19 !    TEXT POINTERS (BYTE ADDRESSES)
   20 %OWNINTEGER CODEPOS;                  !(NOT ACTUALLY BYTE)
   21 %OWNINTEGER STARTPOS;                 !START OF CURRENT LINE
   22 %OWNINTEGER GETPOS;                   !INPUT POINTER (NEXT)
   23 %OWNINTEGER PUTPOS
   24 %OWNINTEGER PSEUDOLIM
   25 %OWNINTEGER PRINTPOS;                 !START OF PRINT LINE
   26 %OWNINTEGER FAULTPOS
   27 %OWNINTEGER MACLIM;                   !MACRO DEF LIMIT
   28 !    OTHER POINTERS (WORD ADDRESSES)
   29 %OWNINTEGER MP;                       !MACRO-CALL PARAMETERS
   30 %OWNINTEGER QBASE,QSTART,QLIM,TRANSF; !OPERAND QUEUE
   31 %OWNINTEGER DEFMIN;                   !TAG MIN (DOWN - RESET)
   32 %OWNINTEGER DEFLIM;                   !TAG LIM (FIXED)
   33 %OWNINTEGER ALMAX;                    !ASSEMBLER LAB MAX (UP - RESET)
   34 %OWNINTEGER LABMIN;                   !USER LAB MIN (DOWN - RESET)
   35 %OWNINTEGER LABLIM;                   !USER LAB LIM (FIXED)
   36 %OWNINTEGER BP;                       !BLOCK POINTER (UP - DOWN)
   37 %OWNINTEGER NP;                       !NEST POINTER (DOWN - UP)
   38 %OWNINTEGER STORELIM;                 !(FIXED)
   39 
   40 %INTEGER SYM;                         !CURRENT SYMBOL
   41 %INTEGER TERM;                        !TAG TERMINATOR
   42 %INTEGER FSYM;                        !FAULT FLAG SYMBOL
   43 %OWNINTEGER CHARS=0;                  !PRINT CHAR COUNT
   44 %OWNINTEGER LINES=0;                  !PRINT LINE COUNT
   45 %OWNINTEGER BINCOUNT=0;               !OUTPUT RECORD ITEM COUNT
   46 %OWNINTEGER CHECK=0;                  !OUTPUT RECORD CHECKSUM
   47 %OWNINTEGER PASS=-1;                  !CURRENT PASS (-1,0,1)
   48 %OWNINTEGER LIST=-1;                  !LISTING CONTROL
   49 %INTEGER ASSCOND,SKIP;                !ASSEMBLY CONDITIONS (BIT NEST)
   50 %OWNINTEGER SAVE=1;                   !REG SAVE DISPLACEMENT
   51 %OWNINTEGER TEMPS=12;                 !TEMPORARY REGISTER SET (2,3)
   52 %INTEGER LOCTYPE,LOC;                 !LOCATION COUNTER
   53 %INTEGER ACC,ATYPE,AVAL;              !MAIN TEMP REGISTER
   54 %INTEGER CREG,CTYPE,CVAL;             !CONDITION CODE
   55 %INTEGER COND;                        !CONDITION CODE MASK
   56 %INTEGER DREG,DUSE;                   !DESTINATION REGISTER
   57 %INTEGER TYPE,VAL;                    !CURRENT TYPE,VALUE
   58 %INTEGER TAG1,TAG2;                   !TAG (CHARS 1:3, 4:6)
   59 %INTEGER MODE;                        !ASSEMBLY MODE
   60 %INTEGER PEND;                        !TAG ALREADY RECOGNISED
   61 %INTEGER FLAG;                        !JUMPS / AHM
   62 %OWNINTEGER QQ='?'
   63 
   64 %OWNINTEGERARRAY BREC(1:52);          !BINARY OUTPUT RECORD
   65 
   66 !!%INTEGER SBOUND
   67 %constINTEGER SBOUND = 16_7F00
   68 !!    SBOUND = FREESTORE-260;           !ALLOW FOR INPUT BUFFER
   69 !!    SBOUND = SBOUND-256 %IF OUTDEV = 2
   70     SELECT OUTPUT(LIS)
		.LBB181:
		.LBI181:
   71 !!    SBOUND = SBOUND-256 %IF OUTDEV = 2
   72 
   73 !! Simulate 18-bit word-addressed PDP9/15 memory:
   74 
   75 %ownINTEGERARRAY STORE(1:SBOUND)
   76 
   77 %integerfn integer(%integer p)
				sub	sp, sp, #800
				stp	x29, x30, [sp]
				mov	x29, sp
				str	x19, [sp, 16]
				mov	w19, w0
   78     %if p&1 # 0 %start
				tbnz	x19, 0, .L142
		.LDL25:
   79       printstring("Integer fetch was not aligned at "); write(p, -1); newline
				adrp	x1, .LANCHOR2
				add	x1, x1, :lo12:.LANCHOR2
				ldp	q16, q18, [x1]
				ldp	q17, q20, [x1, 32]
				ldp	q19, q22, [x1, 64]
				ldp	q21, q24, [x1, 96]
				ldp	q23, q26, [x1, 128]
				ldp	q25, q28, [x1, 160]
				ldp	q27, q30, [x1, 192]
				ldp	q29, q31, [x1, 224]
		.LBB71:
		.LBI71:
				mov	w1, -1
				mov	w0, w19
				bl	_imp_writeint
		.LVL107:
		.LBB73:
		.LBI73:
   80       %stop
				mov	w0, 0
				bl	exit
		.LVL109:
		.LFE200:
				.align	2
		SETLAB.10:
		.LVL110:
		.LFB220:
   81     %finish
   82     %result = store(P>>1)
				lsr	w19, w0, 1
				adrp	x0, STORE.133
		.LVL103:
				add	x0, x0, :lo12:STORE.133
				add	x19, x0, x19, lsl 2
				ldr	w0, [x19, -4]
   83 %end
   84 
				ldp	x29, x30, [sp]
				ldr	x19, [sp, 16]
				add	sp, sp, 800
				ret
		.LVL104:
		.L142:
   85 %INTEGERFN CHAR(%INTEGER P)
   86 !BYTE FETCH
   87 
   88     %integer val = store(p>>1)
				lsr	w1, w0, 1
				adrp	x2, STORE.133
				add	x2, x2, :lo12:STORE.133
				add	x1, x2, x1, lsl 2
				ldr	w1, [x1, -4]
		.LVL1:
   89     %if p&1 = 0 %start
   90       %result = val&255
   91     %else
   92       %result = (val>>8)&255
				ubfx	x2, x1, 8, 8
				and	w1, w1, 255
		.LVL2:
				tst	x0, 1
   93     %finish
   94     
   95 !!    %OPR 2064;!RCR;  %DAC P
   96 !!    %LAC* P;  %OPR 768;!SZL;  %JMP L1
   97 !!    %OPR 1040;!RTR;  %OPR 1040
   98 !!    %OPR 1040;  %OPR 1040
   99 !!L1: %AND #255;  %JMP* CHAR
  100 !!    %STOP
  101 
  102 %END
  103 
				csel	w0, w1, w2, eq
		.LVL3:
				ret
		.LFE201:
				.align	2
		SETINTEGER.8:
		.LVL4:
		.LFB202:
  104 %routine set integer(%integer p, k)
  105     store(p>>1) = k
				lsr	w0, w0, 1
		.LVL5:
				adrp	x2, STORE.133
				add	x2, x2, :lo12:STORE.133
				add	x0, x2, x0, lsl 2
				str	w1, [x0, -4]
  106 %end
  107 
  108 %ROUTINE PUT CHAR(%INTEGER K)
				ret
		.LFE202:
				.align	2
		PUTCHAR.37:
		.LVL6:
		.LFB203:
  109 !AT PUTPOS WITH POST-INCREMENT
  110 %INTEGER P
  111 !!    %MONITOR 21 %IF PUTPOS>>1-DEFMIN >= 0
  112 !{}    %signal 2,1 %IF PUTPOS>>1-DEFMIN >= 0
  113 
  114     p = store(putpos>>1)
				adrp	x1, .LANCHOR0
				ldr	w2, [x1, #:lo12:.LANCHOR0]
				lsr	w1, w2, 1
				lsl	x1, x1, 2
				sub	x1, x1, #4
				adrp	x3, STORE.133
				add	x3, x3, :lo12:STORE.133
				ldr	w4, [x3, x1]
		.LVL7:
  115     %if putpos&1 = 0 %start
  116       p = (p&16_FF00) ! (K&255)
  117     %else
  118       p = (p&16_00FF) ! ((K&255)<<8)
				and	w6, w4, 255
				ubfiz	w5, w0, 8, 8
				orr	w5, w5, w6
				and	w4, w4, 65280
		.LVL8:
				and	w0, w0, 255
		.LVL9:
				orr	w0, w0, w4
				tst	x2, 1
				csel	w0, w0, w5, eq
		.L7:
		.LVL10:
  119     %finish
  120     store(putpos>>1) = p
				str	w0, [x3, x1]
  121 
  122 !!    %LAC PUTPOS;  %OPR 2064;!RCR;  %DAC P
  123 !!    %OPR 768;!SZL;  %JMP L1
  124 !!    %LAC K;  %OPR 1032;!RTL;  %OPR 1032
  125 !!    %OPR 1032;  %OPR 1032;  %DAC K
  126 !!    %LAC #-256;  %OPR 513;!SKP!CMA
  127 !!L1: %LAC #-256;  %AND* P;  %TAD K;  %DAC* P
  128 !!    %ISZ PUTPOS
  129 
  130     putpos = putpos+1
				add	w2, w2, 1
				adrp	x0, .LANCHOR0
		.LVL11:
				str	w2, [x0, #:lo12:.LANCHOR0]
  131 %END
  132 
  133 %ROUTINE FAULT(%INTEGER K)
				ret
		.LFE203:
				.align	2
		FAULT.45:
		.LVL12:
		.LFB204:
  134 !RECORD (FIRST) FAULT
  135 !NOT NECESSARILY CULPABLE IN PASS 0
  136     FSYM = K %IF FSYM = ' '
				ldr	w1, [x18, 80]
				cmp	w1, 32
				bne	.L8
				str	w0, [x18, 80]
  137 %END
  138 
		.L9:
		.L8:
  139 %ROUTINE PRINT(%INTEGER K)
				ret
		.LFE204:
				.align	2
		PRINT.5:
		.LVL13:
		.LFB205:
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
  140 !!    INTEGER(CODEPOS+CHARS) = K
  141     set INTEGER(CODEPOS+CHARS, K)
				adrp	x19, .LANCHOR0
				add	x19, x19, :lo12:.LANCHOR0
				ldr	w20, [x19, 4]
				ldr	w2, [x19, 8]
				mov	w1, w0
				add	w0, w20, w2
		.LVL14:
				bl	SETINTEGER.8
		.LVL15:
  142     CHARS = CHARS+1
				add	w20, w20, 1
				str	w20, [x19, 4]
  143 %END
  144 
  145 %ROUTINE PRINT WORD(%INTEGER V)
				ldp	x19, x20, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.LFE205:
				.align	2
		PRINTHIT.4:
		.LVL16:
		.LFB207:
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				str	x19, [sp, 16]
				mov	w19, w0
  146     %ROUTINE PRINT HIT(%INTEGER V)
				stp	x29, x30, [sp, -16]!
				mov	x29, sp
  147         V = V&15+'0';  V = V+7 %IF V > '9'
				and	w1, w0, 15
				add	w0, w1, 48
		.LVL17:
				add	w1, w1, 55
				cmp	w0, 57
		.L13:
		.LVL18:
  148         PRINT(V)
				csel	w0, w1, w0, gt
		.LVL19:
				bl	PRINT.5
		.LVL20:
  149     %END
  150     %ROUTINE PRINT1(%INTEGER V)
		.LBB138:
		.LBB140:
  151         PRINT HIT(V>>4);  PRINT HIT(V)
				ldp	x29, x30, [sp], 16
				ret
		.LFE207:
				.align	2
		PUT.42:
		.LVL21:
		.LFB213:
				lsr	w0, w0, 12
		.LVL345:
				bl	PRINTHIT.4
		.LVL346:
				lsr	w0, w19, 8
		.LVL347:
				bl	PRINTHIT.4
		.LVL348:
				lsr	w0, w19, 4
				bl	PRINTHIT.4
		.LVL349:
				mov	w0, w19
				bl	PRINTHIT.4
		.LVL350:
  152     %END
  153     PRINT1(V>>8);  PRINT1(V)
		.LVL344:
		.LBB137:
		.LBI137:
		.LBE138:
		.LBE137:
		.LBB139:
		.LBI139:
		.LBE140:
		.LBE139:
  154 %END
  155 
  156 %ROUTINE PRINT LOC
				ldr	x19, [sp, 16]
		.LVL351:
				ldp	x29, x30, [sp], 32
				ret
		.LFE206:
				.align	2
		PRINTLOC.46:
		.LFB209:
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				str	x19, [sp, 16]
				mov	x19, x18
  157     PRINT WORD(LOC)
				ldr	w0, [x18, 76]
				bl	PRINTWORD.2
		.LVL352:
  158     %IF LOCTYPE&RELMASK # 0 %THEN PRINT('''') %ELSE PRINT(' ')
				ldr	w0, [x19, 72]
				tbnz	x0, 5, .L406
		.LDL103:
				mov	w0, 32
				bl	PRINT.5
		.LVL353:
		.L407:
				mov	w0, 39
				bl	PRINT.5
		.LVL355:
				b	.L407
		.LFE209:
				.align	2
		PRINTLINE.47:
		.LFB211:
  159     PRINT(' ')
				mov	w0, 32
				bl	PRINT.5
		.LVL354:
  160 %END
  161 
  162 %ROUTINE DO NEWLINE
				stp	x29, x30, [sp, -16]!
				mov	x29, sp
				ldr	x19, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.L406:
  163     NEWLINE;  LINES = LINES+1
		.LBB67:
		.LBI67:
				adrp	x1, .LANCHOR0
				add	x1, x1, :lo12:.LANCHOR0
				ldr	w0, [x1, 260]
				add	w0, w0, 1
				str	w0, [x1, 260]
  164     NEWLINES(2) %AND LINES = 0 %IF LINES = 61
				cmp	w0, 61
				beq	.L136
		.L134:
		.L133:
		.LVL100:
		.LBB69:
		.LBI69:
				adrp	x0, .LANCHOR0+260
				str	wzr, [x0, #:lo12:.LANCHOR0+260]
  165 %END
  166 
				b	.L133
		.LFE210:
				.align	2
		INTEGER.39:
		.LVL102:
		.LFB200:
  167 %ROUTINE PRINT LINE
				ldp	x29, x30, [sp], 16
				ret
		.L136:
				stp	x29, x30, [sp, -48]!
				mov	x29, sp
				add	x0, sp, 48
				stp	x18, x0, [sp, 32]
  168    %ROUTINE PRINTIT(%INTEGER SUB)
				stp	x29, x30, [sp, -80]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				mov	w22, w0
				mov	x19, x18
  169    %OWNINTEGER MARKER=124;            !VERTICAL BAR
  170    %INTEGER P,Q,K
  171        %RETURN %IF CHARS = 0 %AND CHAR(PRINTPOS) = NL
				adrp	x0, .LANCHOR0+4
		.LVL288:
				ldr	w0, [x0, #:lo12:.LANCHOR0+4]
				cbnz	w0, .L374
				adrp	x0, .LANCHOR0+288
				ldr	w0, [x0, #:lo12:.LANCHOR0+288]
				bl	CHAR.6
		.LVL289:
				cmp	w0, 10
				beq	.L373
		.L374:
  172        PRINT SYMBOL(FSYM);  SPACE
		.LVL290:
		.LBB85:
		.LBI85:
				ldr	x0, [x19]
		.LBB88:
		.LBB87:
		.LBB89:
		.LBI89:
  173        P = CODEPOS;  Q = P+CHARS
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				ldr	w19, [x0, 8]
		.LVL293:
				ldr	w20, [x0, 4]
				add	w20, w19, w20
		.LVL294:
  174        PRINT SYMBOL(INTEGER(P)) %AND P=P+1 %WHILE P # Q
				cmp	w19, w20
				beq	.L378
		.L376:
				mov	w0, w19
				bl	INTEGER.39
		.LVL295:
		.LBB91:
		.LBI91:
				add	w19, w19, 1
		.LVL297:
		.LDL93:
				cmp	w20, w19
				bne	.L376
		.L378:
		.LDL94:
  175        %RETURN %IF PRINTPOS = 0
				adrp	x0, .LANCHOR0+288
				ldr	w0, [x0, #:lo12:.LANCHOR0+288]
				cbnz	w0, .L388
		.LVL298:
		.L373:
		.LDL95:
  176        SPACES(17-CHARS)
		.LVL301:
		.LBB93:
		.LBI93:
				adrp	x19, .LANCHOR0
		.LVL302:
				add	x19, x19, :lo12:.LANCHOR0
				ldr	w0, [x19, 4]
		.LBB96:
		.LBB95:
  177        P = PRINTPOS;  Q = 0
				ldr	w20, [x19, 288]
		.LVL304:
				mov	w21, 0
  178        %CYCLE
  179           PRINT SYMBOL(MARKER) %IF P = FAULTPOS
				mov	x23, x19
		.LBB97:
		.LBB98:
		.LBB103:
		.LBI97:
				ldr	w0, [x23, 296]
				cmp	w0, w20
				beq	.L390
		.L380:
  180           K = CHAR(P);  K = SUB %IF P = PSEUDOLIM
				ldr	w0, [x23, 284]
				mov	w19, w22
				cmp	w0, w20
				beq	.L381
		.LVL313:
				mov	w0, w20
				bl	CHAR.6
		.LVL314:
				mov	w19, w0
		.LVL315:
				b	.L381
		.LVL316:
		.L389:
  181           PRINT SYMBOL('''') %IF (K!!Q)&128 # 0
				eor	w21, w21, w19
		.LVL308:
				tbnz	x21, 7, .L389
		.L382:
		.LBB106:
		.LBI100:
  182           %RETURN %IF K = NL
				cmp	w19, 10
				beq	.L386
		.LDL96:
  183           PRINT SYMBOL(K&127)
		.LVL309:
		.LBB104:
		.LBI104:
  184           P = P+1;  Q = K
				add	w20, w20, 1
		.LVL311:
				mov	w21, w19
		.LVL312:
		.L379:
  185        %REPEAT
  186    %END
  187     %RETURN %IF PASS = 0
				adrp	x0, .LANCHOR1+8
				ldr	w0, [x0, #:lo12:.LANCHOR1+8]
				cbnz	w0, .L418
		.L409:
		.LDL104:
  188     %UNLESS LIST < 0 %OR (PRINTPOS=0 %AND FSYM=' ' %AND LIST&1=0) %START
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
		.LVL299:
				ldp	x29, x30, [sp], 80
				ret
		.LVL300:
		.L388:
				stp	x23, x24, [sp, 48]
				str	x25, [sp, 64]
				adrp	x0, .LANCHOR1+16
				ldr	w0, [x0, #:lo12:.LANCHOR1+16]
				tbnz	w0, #31, .L411
				ldr	w1, [x18, 80]
				cmp	w1, 32
				bne	.L412
				and	w0, w0, 1
				adrp	x1, .LANCHOR0+288
				ldr	w1, [x1, #:lo12:.LANCHOR0+288]
				orr	w0, w0, w1
				cbz	w0, .L413
		.L412:
  189        NEWLINES(3) %IF LINES = 0
				adrp	x0, .LANCHOR0+260
				ldr	w0, [x0, #:lo12:.LANCHOR0+260]
				cbz	w0, .L419
		.L414:
		.LVL364:
		.LBB159:
		.LBI159:
		.LBB160:
				mov	w0, 3
				bl	_imp_newlines
		.LVL365:
				b	.L414
		.L420:
		.LBE160:
		.LBE159:
  190        PRINTIT(' ')
				add	x18, sp, 32
				mov	w0, 32
				bl	PRINTIT.48
		.LVL356:
  191        DO NEWLINE
				bl	DONEWLINE.15
		.LVL357:
		.L411:
  192     %FINISH
  193     %IF FSYM # ' ' %AND OUTDEV # 1 %START
				ldr	w0, [x19, 80]
				cmp	w0, 32
				beq	.L413
		.LBB151:
		.LBI151:
				ldr	w0, [x0]
				cmp	w0, 1
				beq	.L413
  194        SELECT OUTPUT(0)
		.LVL359:
		.LBB153:
		.LBI153:
  195        PRINTPOS = STARTPOS %IF PRINTPOS = 0
				adrp	x0, .LANCHOR0+288
				ldr	w0, [x0, #:lo12:.LANCHOR0+288]
				cbnz	w0, .L415
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				ldr	w1, [x0, 280]
				str	w1, [x0, 288]
		.L415:
  196        PRINT LOC %IF CHARS = 0
				adrp	x0, .LANCHOR0+4
				ldr	w0, [x0, #:lo12:.LANCHOR0+4]
				cbz	w0, .L420
		.L416:
				mov	x18, x19
				bl	PRINTLOC.46
		.LVL366:
				b	.L416
		.LFE211:
				.align	2
		PLANTVAL.1:
		.LFB218:
  197        PRINTIT(NL)
				add	x18, sp, 32
				mov	w0, 10
				bl	PRINTIT.48
		.LVL361:
  198        NEWLINE
		.LBB155:
		.LBI155:
  199        SELECT OUTPUT(LIS)
		.LBB157:
		.LBI157:
  200     %FINISH
  201     FSYM = ' ';  PRINTPOS = 0;  CHARS = 0
				mov	w0, 32
				str	w0, [x19, 80]
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				str	wzr, [x0, 288]
				str	wzr, [x0, 4]
				ldr	x19, [sp, 16]
  202 %END
				b	.L409
		.L419:
  203 
  204 %ROUTINE PUT(%INTEGER V)
				ldp	x29, x30, [sp], 48
				ret
		.L418:
				str	x19, [sp, 16]
				mov	x19, x18
  205 !STORE 4-BIT ITEM IN BINARY RECORD
  206 %OWNINTEGER HOLD=0
  207     V = V&15
				and	w0, w0, 15
		.LVL22:
				add	w2, w0, w2, lsl 4
				str	w2, [x1, 12]
  208     HOLD = HOLD<<4+V
				adrp	x1, .LANCHOR0
				add	x1, x1, :lo12:.LANCHOR0
				ldr	w2, [x1, 12]
  209     BINCOUNT = BINCOUNT+1
				ldr	w0, [x1, 16]
		.LVL23:
				add	w0, w0, 1
				str	w0, [x1, 16]
  210     %IF BINCOUNT&3 = 0 %START
				tst	x0, 3
				bne	.L15
  211        BREC(BINCOUNT>>2) = HOLD
				adrp	x1, .LANCHOR0
				add	x1, x1, :lo12:.LANCHOR0
				and	x0, x0, 4294967292
				add	x0, x1, x0
				str	w2, [x0, 20]
  212        CHECK = CHECK!!HOLD
				ldr	w0, [x1, 232]
				eor	w0, w0, w2
				str	w0, [x1, 232]
  213        HOLD = 0
				str	wzr, [x1, 12]
  214     %FINISH
  215 %END
  216 
		.L16:
		.L15:
  217 %ROUTINE PUT WORD(%INTEGER V)
				ret
		.LFE213:
				.align	2
		NEST.0:
		.LVL24:
		.LFB219:
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				str	x19, [sp, 16]
				mov	w19, w0
  218     %ROUTINE PUT1(%INTEGER V)
		.LBB130:
		.LBB132:
  219         PUT(V>>4);  PUT(V)
				lsr	w0, w0, 12
		.LVL336:
				bl	PUT.42
		.LVL337:
				lsr	w0, w19, 8
		.LVL338:
				bl	PUT.42
		.LVL339:
				lsr	w0, w19, 4
				bl	PUT.42
		.LVL340:
				mov	w0, w19
				bl	PUT.42
		.LVL341:
  220     %END
  221     PUT1(V>>8);  PUT1(V)
		.LVL335:
		.LBB129:
		.LBI129:
		.LBE130:
		.LBE129:
		.LBB131:
		.LBI131:
		.LBE132:
		.LBE131:
  222 %END
  223 
  224 %ROUTINE OUTPUT RECORD
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				ldr	x19, [sp, 16]
		.LVL342:
				ldp	x29, x30, [sp], 32
				ret
		.LFE214:
				.align	2
		PRINTWORD.2:
		.LVL343:
		.LFB206:
  225 %OWNINTEGER SEQ=0
  226 %INTEGER I
  227     %ROUTINE OUTPUT WORD(%INTEGER W)
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				str	x19, [sp, 16]
				mov	w19, w0
  228         PRINT CH(W>>8&255);  PRINT CH(W&255)
		.LVL282:
		.LBB81:
		.LBI81:
		.LBB83:
		.LBI83:
  229     %END
  230     PUT(0) %WHILE BINCOUNT # 208
				adrp	x0, .LANCHOR0+16
				ldr	w0, [x0, #:lo12:.LANCHOR0+16]
				adrp	x19, .LANCHOR0
				add	x19, x19, :lo12:.LANCHOR0
				cmp	w0, 208
				beq	.L394
		.L392:
				mov	w0, 0
				bl	PUT.42
		.LVL318:
		.LDL97:
				ldr	w0, [x19, 16]
				cmp	w0, 208
				bne	.L392
		.L394:
		.LDL98:
  231     SELECT OUTPUT(BIN)
				ldr	x19, [sp, 16]
		.LVL286:
				ldp	x29, x30, [sp], 32
				ret
		.LFE217:
				.align	2
		PRINTIT.48:
		.LVL287:
		.LFB212:
		.LVL319:
		.LBB115:
		.LBI115:
  232     %CYCLE I = 1,1,10
  233        PRINT CH(0);                   !RUNOUT
		.LBB119:
		.LBI119:
  234     %REPEAT
  235     PRINT CH(16_F0);                  !HEADER CODE
		.LBB118:
		.LBB117:
				subs	w19, w19, #1
		.LVL323:
				bne	.L393
		.LDL100:
		.LVL324:
		.LBB121:
		.LBI121:
  236     SEQ = SEQ-1
				adrp	x20, .LANCHOR0
				add	x20, x20, :lo12:.LANCHOR0
				ldr	w0, [x20, 300]
				sub	w0, w0, #1
				str	w0, [x20, 300]
  237     OUTPUT WORD(SEQ);                 !SEQUENCE NUMBER
				bl	OUTPUTWORD.44
		.LVL326:
  238     OUTPUT WORD(\(CHECK!!SEQ));       !CHECKSUM
				ldr	w1, [x20, 232]
				ldr	w0, [x20, 300]
				eon	w0, w1, w0
				bl	OUTPUTWORD.44
		.LVL327:
  239     %CYCLE I = 1,1,52
  240        OUTPUT WORD(BREC(I))
				ldr	w0, [x19], 4
		.LVL329:
				bl	OUTPUTWORD.44
		.LVL330:
  241     %REPEAT
  242     BINCOUNT = 0;  CHECK = 0
				add	x19, x20, 24
				add	x20, x20, 232
		.LVL328:
		.L395:
		.LDL101:
				cmp	x19, x20
				bne	.L395
		.LDL102:
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				str	wzr, [x0, 16]
				str	wzr, [x0, 232]
  243     SELECT OUTPUT(LIS)
		.LVL331:
		.LBB123:
		.LBI123:
  244 %END
  245 
  246 %ROUTINE PLANT VAL
				ldp	x19, x20, [sp, 16]
		.LVL333:
				ldp	x29, x30, [sp], 32
				ret
		.LFE216:
				.align	2
		PUTWORD.29:
		.LVL334:
		.LFB214:
				stp	x29, x30, [sp, -48]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				mov	x19, x18
  247 %INTEGER I,J
  248     TYPE = 0 %IF TYPE = SINGLE
				ldr	w0, [x18, 68]
				cmp	w0, 20480
				bne	.L422
				str	wzr, [x18, 68]
  249     I = 2;  I = 4 %IF TYPE&OPMASK # 0
		.LVL367:
				mov	w20, 2
				b	.L423
		.LVL368:
		.L422:
				tst	w0, 61440
				beq	.L439
				mov	w20, 4
		.L423:
		.LVL369:
				mov	w20, 2
				b	.L423
		.LVL372:
		.L442:
  250     %IF PASS > 0 %START
				adrp	x0, .LANCHOR1+8
				ldr	w0, [x0, #:lo12:.LANCHOR1+8]
				cmp	w0, 0
				ble	.L438
  251        OUTPUT RECORD %IF BINCOUNT+I+I >= 208
				adrp	x0, .LANCHOR0+16
				ldr	w0, [x0, #:lo12:.LANCHOR0+16]
				add	w0, w0, w20, lsl 1
				cmp	w0, 207
				bgt	.L442
		.L425:
				bl	OUTPUTRECORD.43
		.LVL373:
				b	.L425
		.L426:
				str	x21, [sp, 32]
  252        %IF I = 4 %START
				cmp	w20, 4
				beq	.L426
		.LDL105:
  253           %IF TYPE&16_4000 = 0 %START
				ldr	w0, [x19, 68]
				tbz	x0, 14, .L429
		.LDL106:
  254              PUT(11);  J = TYPE!!OPMASK
				mov	w0, 11
				bl	PUT.42
		.LVL383:
				ldr	w21, [x19, 68]
				eor	w21, w21, 61440
		.LVL384:
  255              TYPE = RELMASK
				str	w0, [x19, 68]
  256           %finish %ELSE %START
				mov	w0, 32
				b	.L430
		.L443:
  257              PUT(10);  J = TYPE;  TYPE = 0
				mov	w0, 10
				bl	PUT.42
		.LVL374:
				ldr	w21, [x19, 68]
		.LVL375:
				mov	w0, 0
		.L430:
  258           %FINISH
  259           PUT WORD(J)
				mov	w0, w21
				bl	PUTWORD.29
		.LVL376:
  260           PRINT LINE %IF CHARS # 0
				adrp	x0, .LANCHOR0+4
				ldr	w0, [x0, #:lo12:.LANCHOR0+4]
				cbnz	w0, .L443
		.L431:
				mov	x18, x19
				bl	PRINTLINE.47
		.LVL385:
				b	.L431
		.LVL386:
		.L427:
  261           PRINT LOC
				mov	x18, x19
				bl	PRINTLOC.46
		.LVL377:
  262           PRINT WORD(J);  PRINT(' ')
				mov	w0, w21
				bl	PRINTWORD.2
		.LVL378:
				mov	w0, 32
				bl	PRINT.5
		.LVL379:
  263        %finish %ELSE %START
				ldr	x21, [sp, 32]
		.LVL380:
		.L432:
		.L435:
  264           %IF TYPE&RELMASK # 0 %THEN PUT(9) %ELSE PUT(8)
				ldr	w0, [x19, 68]
				tbz	x0, 5, .L427
				mov	w0, 9
				bl	PUT.42
		.LVL370:
				b	.L433
		.LVL371:
		.L439:
		.LDL107:
				mov	w0, 8
				bl	PUT.42
		.LVL387:
		.L433:
  265           %IF CHARS # 0 %THEN PRINT(' ') %ELSE PRINT LOC
				adrp	x0, .LANCHOR0+4
				ldr	w0, [x0, #:lo12:.LANCHOR0+4]
				cbnz	w0, .L434
		.LDL108:
				mov	x18, x19
				bl	PRINTLOC.46
		.LVL388:
				b	.L435
		.L434:
				mov	w0, 32
				bl	PRINT.5
		.LVL389:
				b	.L435
		.L444:
  266        %FINISH
  267        PUT WORD(VAL);  PRINT WORD(VAL)
				ldr	w0, [x19, 64]
				bl	PUTWORD.29
		.LVL381:
				ldr	w0, [x19, 64]
				bl	PRINTWORD.2
		.LVL382:
  268        PRINT('''') %IF TYPE&RELMASK # 0
				ldr	w0, [x19, 68]
				tbnz	x0, 5, .L444
		.L436:
				mov	w0, 39
				bl	PRINT.5
		.LVL390:
		.LDL109:
  269        PRINT LINE %IF TYPE&RELMASK#0 %OR CHARS=15
				adrp	x0, .LANCHOR0+4
				ldr	w0, [x0, #:lo12:.LANCHOR0+4]
				cmp	w0, 15
				bne	.L438
				b	.L437
		.L429:
				ldr	w0, [x19, 68]
				tbz	x0, 5, .L436
		.L437:
				mov	x18, x19
				bl	PRINTLINE.47
		.LVL391:
		.L424:
		.L438:
  270     %FINISH
  271     LOC = LOC+I
				ldr	w0, [x19, 76]
				add	w0, w0, w20
				str	w0, [x19, 76]
  272 %END
  273 
  274 %ROUTINE NEST(%INTEGER K)
				stp	x29, x30, [sp, -16]!
				mov	x29, sp
				mov	w1, w0
				ldp	x19, x20, [sp, 16]
		.LVL392:
				ldp	x29, x30, [sp], 48
				ret
		.LFE218:
				.align	2
		PLANTJUMP.28:
		.LFB223:
  275 !!    NP = NP-1;  %MONITOR 23 %IF NP = BP
  276     NP = NP-1;  !{}%signal 2,3 %IF NP = BP
				adrp	x3, .LANCHOR0
				add	x3, x3, :lo12:.LANCHOR0
				ldr	w2, [x3, 236]
				sub	w0, w2, #1
		.LVL25:
				str	w0, [x3, 236]
  277 !!    INTEGER(NP) = K
  278     set INTEGER(NP, K)
				bl	SETINTEGER.8
		.LVL26:
  279 %END
  280 
  281 %ROUTINE SET LAB(%INTEGER DEST)
				ldp	x29, x30, [sp], 16
				ret
		.LFE219:
				.align	2
		FORMINST.21:
		.LVL27:
		.LFB222:
				stp	x29, x30, [sp, -80]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				stp	x23, x24, [sp, 48]
				str	x25, [sp, 64]
				mov	w23, w0
				mov	x20, x18
  282 %INTEGER D
  283     D = DEST
		.LVL111:
				mov	w21, w0
  284     %CYCLE
  285        TYPE = INTEGER(NP)&16_FFF+DEFLIM; !DEST SLOT
				adrp	x19, .LANCHOR0
				add	x19, x19, :lo12:.LANCHOR0
				ldr	w0, [x19, 236]
				bl	INTEGER.39
		.LVL114:
				and	w0, w0, 4095
				ldr	w1, [x19, 264]
				add	w0, w0, w1
				str	w0, [x20, 68]
  286        NP = NP+1
				ldr	w0, [x19, 236]
				add	w0, w0, 1
				str	w0, [x19, 236]
  287        VAL = INTEGER(NP);             !LOC OF JUMP
				bl	INTEGER.39
		.LVL115:
  288        NP = NP+1
				ldr	w1, [x19, 236]
				add	w1, w1, 1
				str	w1, [x19, 236]
  289        ATYPE = -1;  CREG = -1
				mov	w22, -1
  290        FLAG = 0;  FLAG = 2 %IF (D-VAL)>>1+PASS <= 16
				adrp	x24, .LANCHOR1
				add	x24, x24, :lo12:.LANCHOR1
				ldr	w2, [x24, 8]
				sub	w1, w21, w0
				add	w1, w2, w1, asr 1
				cmp	w1, 16
				cset	w1, le
				lsl	w1, w1, 1
		.LDL27:
				stp	w1, w22, [x20, 52]
  291        VAL = VAL-FLAG
				sub	w0, w0, w1
				stp	w22, w0, [x20, 60]
  292        %IF PASS = 0 %START
				cbz	w2, .L145
		.LDL28:
  293 !!          D = D-FLAG;  INTEGER(TYPE) = D
  294           D = D-FLAG;  set INTEGER(TYPE, D)
				sub	w21, w21, w1
		.LVL118:
				mov	w1, w21
				ldr	w0, [x20, 68]
				bl	SETINTEGER.8
		.LVL119:
  295           %IF FLAG # 0 %START
				ldr	w0, [x20, 52]
				cbnz	w0, .L155
		.L146:
		.L149:
		.LDL29:
  296              LOC = LOC-2;  DEST = DEST-2
				ldr	w0, [x20, 76]
				sub	w0, w0, #2
				str	w0, [x20, 76]
				sub	w23, w23, #2
		.LVL124:
  297              %WHILE TYPE # ALMAX %CYCLE
				ldr	w0, [x20, 68]
				ldr	w1, [x19, 268]
				cmp	w1, w0
				beq	.L149
		.L148:
				ldr	w0, [x20, 68]
				ldr	w1, [x19, 268]
				cmp	w1, w0
				bne	.L148
				b	.L149
		.L143:
  298 !!                TYPE = TYPE+1;  INTEGER(TYPE) = INTEGER(TYPE)-2
  299                 TYPE = TYPE+1;  set INTEGER(TYPE,  INTEGER(TYPE)-2)
				add	w0, w0, 1
				str	w0, [x20, 68]
				bl	INTEGER.39
		.LVL125:
				sub	w1, w0, #2
				ldr	w0, [x20, 68]
				bl	SETINTEGER.8
		.LVL126:
  300              %REPEAT
		.LDL31:
  301           %FINISH
  302        %finish %ELSE %START
  303           FAULT('P') %IF INTEGER(TYPE) # D
				mov	w25, 80
				b	.L144
		.LVL112:
		.L152:
				ldr	w0, [x20, 68]
				bl	INTEGER.39
		.LVL116:
				cmp	w0, w21
				beq	.L149
				mov	x18, x20
				mov	w0, w25
				bl	FAULT.45
		.LVL117:
				b	.L149
		.L145:
  304        %FINISH
  305        %RETURN %UNLESS INTEGER(NP)&16_1000 # 0
				ldr	w0, [x19, 236]
				bl	INTEGER.39
		.LVL120:
				tbz	x0, 12, .L143
		.LDL30:
  306        %IF INTEGER(NP)&16_2000 # 0 %START; !OR
				ldr	w0, [x19, 236]
				bl	INTEGER.39
		.LVL121:
				tbz	x0, 13, .L152
  307           D = VAL+4 %IF D = DEST
				cmp	w23, w21
				bne	.L144
				ldr	w21, [x20, 64]
		.LVL122:
				add	w21, w21, 4
		.LVL123:
				b	.L144
		.L155:
  308        %finish %ELSE %START
  309           D = DEST
				mov	w21, w23
		.LVL113:
		.L144:
		.LDL26:
  310        %FINISH
  311     %REPEAT
  312 %END
  313 
  314 %ROUTINE ASSEMBLE
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
		.LVL127:
				ldp	x23, x24, [sp, 48]
		.LVL128:
				ldr	x25, [sp, 64]
				ldp	x29, x30, [sp], 80
				ret
		.LFE220:
				.align	2
		LOOKUP.32:
		.LVL129:
		.LFB232:
				stp	x29, x30, [sp, -144]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				stp	x23, x24, [sp, 48]
				stp	x25, x26, [sp, 64]
				stp	x27, x28, [sp, 80]
				mov	x20, x18
				add	x0, sp, 144
				str	x0, [sp, 136]
				str	x18, [sp, 112]
  315 !   INTERDATA OP-CODES (+FORMATS)
  316 %OWNINTEGER LOAD=16_080F, LB=16_9303
  317 %OWNINTEGER ADD=16_0A0F, SUB=16_0B0F, AND=16_0407
  318 %OWNINTEGER OR=16_0607, XOR=16_0707
  319 %OWNINTEGER SLLS=16_7508, SRLS=16_7408, SLHL=16_0D04, SRHL=16_0C04
  320 %OWNINTEGER COMP=16_0907, CLB=16_9402
  321 %OWNINTEGER STORE=16_0002, STB=16_9202, AHM=16_2102
  322 %OWNINTEGER BT=16_0203, BF=16_0303
  323 !    FORMAT CODES
  324 %OWNINTEGER REGISTER=1, MEM=2, LIT=4, SHORT=8
  325 
  326 %OWNINTEGER ZQUERY=0
  327 %INTEGER OP,K,Q,LITVAL,NQ,TYPE1,VAL1,FREE
  328 %SWITCH ASS(-30:-1)
  329 
  330 %ROUTINE FORM INST(%INTEGER CODE)
				stp	x29, x30, [sp, -48]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				str	x21, [sp, 32]
				mov	w20, w0
				mov	x19, x18
  331 !    LS 4 BITS OF CODE DEFINE VALID FORMATS
  332 !    INTERDATA OP-CODES FOR DIFFERENT FORMATS
  333 !    ARE SYSTEMATICALLY RELATED
  334 !    SHORT=REGISTER+SINC, LIT=REGISTER+LINC, MEM=REGISTER+MINC
  335 %OWNINTEGER SINC=16_1C00, LINC=16_C000, MINC=16_4000
  336 %INTEGER OP
  337     OP = CODE&16_FFF0
				and	w21, w0, 65520
		.LVL28:
  338     %IF TYPE = REG %START
				ldr	x0, [x18]
		.LVL29:
				ldr	w1, [x0, 68]
				cmp	w1, 128
				bne	.L20
  339        %IF CODE&REGISTER # 0 %START
				tbz	x20, 0, .L35
		.LDL1:
  340           TYPE = SINGLE;  VAL = OP+VAL
				mov	w1, 20480
				str	w1, [x0, 68]
				ldr	x1, [x18]
				ldr	w0, [x1, 64]
				add	w0, w0, w21
				str	w0, [x1, 64]
  341           %RETURN
				b	.L19
		.L35:
  342        %FINISH
  343        TYPE = XMASK+VAL;  VAL = 0;    !COERCE TO INDEXED IMMEDIATE
				ldr	w1, [x0, 64]
				add	w1, w1, 16
				str	w1, [x0, 68]
				ldr	x0, [x18]
				str	wzr, [x0, 64]
		.L20:
  344     %FINISH
  345 !!    %IF TYPE=0 %AND !VAL!<=15 %AND CODE&SHORT#0 %START; !SHORT
  346     %IF TYPE=0 %AND |VAL|<=15 %AND CODE&SHORT#0 %START; !SHORT
				ldr	x18, [x19]
				ldr	w0, [x18, 68]
				cbnz	w0, .L23
				ldr	w0, [x18, 64]
		.LVL30:
		.LBB64:
		.LBI64:
  347        VAL = -VAL %AND OP = OP!!16_100 %IF VAL < 0
				tbz	w0, #31, .L25
				neg	w0, w0
				str	w0, [x18, 64]
				eor	w21, w21, 256
		.LVL31:
		.L25:
  348        TYPE = SINGLE;  VAL = OP+SINC+VAL
				ldr	x0, [x19]
				mov	w1, 20480
				str	w1, [x0, 68]
				ldr	x2, [x19]
				add	w1, w21, 4096
				add	w1, w1, 3072
				ldr	w0, [x2, 64]
				add	w0, w0, w1
				str	w0, [x2, 64]
  349     %finish %ELSE %START
				b	.L19
		.L23:
  350        FAULT('R') %IF TYPE&31 = XMASK; !R0 AS INDEX
				and	w0, w0, 31
				cmp	w0, 16
				bne	.L26
				mov	w0, 82
				bl	FAULT.45
		.LVL32:
		.L26:
  351        %IF TYPE&MEMMASK = 0 %START;   !IMMEDIATE
				ldr	x18, [x19]
				ldr	w0, [x18, 68]
				tbz	x0, 6, .L27
		.LDL2:
				ldr	x18, [x19]
		.L27:
  352           FAULT('I') %IF CODE&LIT = 0
				mov	w0, 73
				bl	FAULT.45
		.LVL33:
				b	.L30
		.L36:
				tbz	x20, 2, .L37
		.L30:
  353           OP = OP+LINC
				add	w1, w21, 49152
		.LVL35:
  354        %finish %ELSE %START;                  !MEMORY
		.L31:
  355           FAULT('I') %IF CODE&MEM = 0
				tbz	x20, 1, .L36
		.L28:
				mov	w0, 73
				bl	FAULT.45
		.LVL34:
				b	.L28
		.L24:
  356           OP = OP+MINC
				add	w1, w21, 16384
				b	.L31
		.L37:
  357        %FINISH
  358        OP = OP!!OPMASK %IF TYPE&RELMASK # 0
				ldr	x2, [x19]
				ldr	w0, [x2, 68]
				eor	w3, w1, 61440
				tst	x0, 32
				csel	w1, w3, w1, ne
		.LVL36:
		.L32:
  359        TYPE = TYPE&15+OP
				and	w0, w0, 15
				add	w0, w0, w1
				str	w0, [x2, 68]
		.L22:
  360     %FINISH
  361 %END
  362 
		.LVL37:
		.L19:
  363 %ROUTINE PLANT JUMP
				ldp	x19, x20, [sp, 16]
		.LVL38:
				ldr	x21, [sp, 32]
				ldp	x29, x30, [sp], 48
				ret
		.LFE222:
				.align	2
		RELEASE.20:
		.LFB227:
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				mov	x19, x18
  364 %INTEGER I,OP
  365     OP = BF;  COND=\COND %AND OP=BT %IF COND < 0
		.LVL393:
				ldr	x1, [x18]
				ldr	w0, [x1, 48]
				mov	w20, 771
				tbz	w0, #31, .L446
				mvn	w0, w0
				str	w0, [x1, 48]
		.LVL394:
				mov	w20, 515
		.LVL395:
		.L446:
  366     %IF TYPE&(\UMASK) = LOCTYPE %START
				ldr	x18, [x19]
				ldp	w1, w0, [x18, 68]
				and	w2, w1, -513
				cmp	w2, w0
				bne	.L454
  367        I = LOC>>1-VAL>>1
				ldr	w2, [x18, 76]
				lsr	w2, w2, 1
				ldr	w0, [x18, 64]
				sub	w0, w2, w0, lsr 1
		.LVL396:
  368 !!       FAULT('J') %AND I=0 %IF FLAG # 0 %AND !I! > 15
  369        FAULT('J') %AND I=0 %IF FLAG # 0 %AND |I| > 15
				ldr	w2, [x18, 52]
				cbz	w2, .L462
		.LVL397:
		.LBB161:
		.LBI161:
				cmp	w1, 15
				bgt	.L463
		.LVL398:
		.L450:
		.LDL110:
				mov	w0, 74
		.LVL408:
				bl	FAULT.45
		.LVL409:
  370 !!       %IF !I! <= 15 %START
  371        %IF |I| <= 15 %START
		.LBB163:
		.LBI163:
				cmp	w2, 15
				bgt	.L454
		.LVL405:
		.LBB166:
  372           %IF TYPE&UMASK = 0 %OR FLAG # 0 %START
				tbz	x1, 9, .L450
		.L455:
		.LDL111:
				ldr	x18, [x19]
				ldr	w1, [x18, 68]
				and	w0, w1, 512
				tbz	x1, 9, .L450
				ldr	w0, [x18, 52]
				cbz	w0, .L455
				mov	w0, 0
				b	.L450
		.LFE223:
				.align	2
		SETJUMP.26:
		.LVL410:
		.LFB224:
  373              OP = OP<<1+2;            !0408, 0608
				lsl	w20, w20, 1
		.LVL399:
				add	w20, w20, 2
		.LVL400:
  374              TYPE = 0;  VAL = I
				str	wzr, [x18, 68]
				ldr	x1, [x19]
				str	w0, [x1, 64]
  375           %finish %ELSE %START
		.L447:
		.L452:
		.L453:
		.L454:
  376              FAULT('S') %IF LIST >= 0 %AND LIST&8 # 0
				adrp	x0, .LANCHOR1+16
				ldr	w0, [x0, #:lo12:.LANCHOR1+16]
				tbnz	w0, #31, .L454
				tbz	x0, 3, .L454
				mov	w0, 83
				bl	FAULT.45
		.LVL406:
				b	.L454
		.LVL407:
		.L463:
  377           %FINISH
  378        %FINISH
  379     %FINISH
  380     FORM INST(COND<<4+OP)
				ldr	x0, [x19]
				ldr	w0, [x0, 48]
				mov	x18, x19
				add	w0, w20, w0, lsl 4
				bl	FORMINST.21
		.LVL401:
  381     PLANT VAL
				ldr	x18, [x19]
				bl	PLANTVAL.1
		.LVL402:
  382     COND = 0
				ldr	x0, [x19]
				str	wzr, [x0, 48]
  383 %END
  384 
  385 %ROUTINE SET JUMP(%INTEGER CASE)
				ldp	x19, x20, [sp, 16]
		.LVL403:
				ldp	x29, x30, [sp], 32
				ret
		.LVL404:
		.L462:
				stp	x29, x30, [sp, -64]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				stp	x23, x24, [sp, 48]
				mov	w22, w0
				mov	x19, x18
  386 %INTEGER THOLD,VHOLD,FHOLD
  387 !!    ALMAX = ALMAX+1;  %MONITOR 22 %IF ALMAX = LABMIN
  388     ALMAX = ALMAX+1;  !{}%signal 2,2 %IF ALMAX = LABMIN
				adrp	x21, .LANCHOR0
				add	x21, x21, :lo12:.LANCHOR0
				ldr	w20, [x21, 268]
				add	w20, w20, 1
				str	w20, [x21, 268]
  389     NEST(LOC);  NEST(ALMAX-DEFLIM+CASE)
				ldr	x0, [x18]
		.LVL411:
				ldr	w0, [x0, 76]
				bl	NEST.0
		.LVL412:
				ldr	w0, [x21, 264]
				sub	w0, w20, w0
				add	w0, w0, w22
				bl	NEST.0
		.LVL413:
  390     THOLD = TYPE;  VHOLD = VAL;  FHOLD = FLAG
				ldr	x0, [x19]
				ldp	w22, w23, [x0, 64]
		.LVL414:
				ldr	w21, [x0, 52]
		.LVL415:
  391     TYPE = LOCTYPE;  VAL = INTEGER(ALMAX);  FLAG = 0
				ldr	w1, [x0, 72]
				str	w1, [x0, 68]
				ldr	x24, [x19]
				mov	w0, w20
				bl	INTEGER.39
		.LVL416:
				str	w0, [x24, 64]
				ldr	x0, [x19]
				str	wzr, [x0, 52]
  392     TYPE = TYPE+UMASK %IF PASS = 0
				adrp	x0, .LANCHOR1+8
				ldr	w0, [x0, #:lo12:.LANCHOR1+8]
				cbnz	w0, .L465
				ldr	x1, [x19]
				ldr	w0, [x1, 68]
				add	w0, w0, 512
				str	w0, [x1, 68]
		.L465:
  393     COND = \COND
				ldr	x1, [x19]
				ldr	w0, [x1, 48]
				mvn	w0, w0
				str	w0, [x1, 48]
  394     PLANT JUMP
				mov	x18, x19
				bl	PLANTJUMP.28
		.LVL417:
  395     TYPE = THOLD;  VAL = VHOLD;  FLAG = FHOLD
				ldr	x0, [x19]
				str	w23, [x0, 68]
				ldr	x0, [x19]
				str	w22, [x0, 64]
				ldr	x0, [x19]
				str	w21, [x0, 52]
  396 %END
  397 
  398 %ROUTINE PLANT INST(%INTEGER CODE)
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
		.LVL418:
				ldp	x23, x24, [sp, 48]
				ldp	x29, x30, [sp], 64
				ret
		.LFE224:
				.align	2
		PLANTINST.25:
		.LVL419:
		.LFB225:
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				str	x19, [sp, 16]
				mov	x19, x18
  399     FORM INST(CODE)
				bl	FORMINST.21
		.LVL420:
  400     SET JUMP(16_1000) %IF COND # 0
				ldr	x0, [x19]
				ldr	w0, [x0, 48]
				cbnz	w0, .L470
		.L468:
				mov	x18, x19
				mov	w0, 4096
				bl	SETJUMP.26
		.LVL422:
				b	.L468
		.LFE225:
				.align	2
		LOADREG.24:
		.LVL423:
		.LFB226:
  401     PLANT VAL
				ldr	x18, [x19]
				bl	PLANTVAL.1
		.LVL421:
  402 %END
  403 
  404 %ROUTINE LOAD REG(%INTEGER R)
				ldr	x19, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.L470:
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				mov	w20, w0
				mov	x19, x18
  405 %INTEGER OP
  406     %IF ATYPE = TYPE %AND AVAL = VAL %START
				ldr	x0, [x18]
		.LVL424:
				ldr	w1, [x0, 68]
				ldr	w2, [x0, 60]
				cmp	w2, w1
				bne	.L472
				ldr	w3, [x0, 44]
				ldr	w2, [x0, 64]
				cmp	w3, w2
				bne	.L472
  407        TYPE = REG;  VAL = ACC
				mov	w1, 128
				str	w1, [x0, 68]
				ldr	x0, [x18]
				ldr	w1, [x0, 40]
				str	w1, [x0, 64]
  408        %RETURN %IF R = ACC
				ldr	x0, [x18]
				ldr	w0, [x0, 40]
				cmp	w0, w20
				bne	.L473
				b	.L471
		.L472:
		.LDL112:
  409     %FINISH
  410     ATYPE = TYPE %AND AVAL = VAL %IF R = ACC
				ldr	w2, [x0, 40]
				cmp	w20, w2
				bne	.L473
				str	w1, [x0, 60]
				ldr	x0, [x19]
				ldr	w1, [x0, 64]
				str	w1, [x0, 44]
		.L473:
  411     ATYPE = -1 %IF (ATYPE=REG %AND AVAL=R) %OR ATYPE&15=R#0
				ldr	x1, [x19]
				ldr	w0, [x1, 60]
				cmp	w0, 128
				bne	.L475
				ldr	w2, [x1, 44]
				cmp	w20, w2
				beq	.L476
		.L475:
				and	w0, w0, 15
				cmp	w20, 0
				ccmp	w0, w20, 0, ne
				beq	.L476
		.L477:
				mov	w0, -1
				str	w0, [x1, 60]
				b	.L477
		.L478:
  412     %IF TYPE&BMASK = 0 %START
				ldr	x2, [x19]
				ldr	w0, [x2, 68]
				tbz	x0, 8, .L478
		.LDL113:
  413        OP = LOAD
		.LVL427:
				mov	w0, 2063
  414        OP = ADD %AND TYPE = 0 %IF TYPE!!XMASK = R # 0
				eor	w1, w0, 16
				cmp	w20, 0
				ccmp	w1, w20, 0, ne
				beq	.L487
		.LVL428:
		.L481:
				str	wzr, [x2, 68]
				mov	w0, 2575
				b	.L481
		.LFE226:
				.align	2
		LOADTEMP.22:
		.LFB228:
  415        CREG = R;  CTYPE = 0;  CVAL = 0
				ldr	x1, [x19]
				str	w20, [x1, 56]
				ldr	x1, [x19]
				str	wzr, [x1, 36]
				ldr	x1, [x19]
				str	wzr, [x1, 32]
  416     %finish %ELSE %START
		.L479:
		.LVL429:
		.L482:
  417        OP = LB
		.LVL425:
				mov	w0, 37635
				mov	w0, 37635
				b	.L482
		.LVL426:
		.L476:
  418        CREG = -1 %IF CREG = R
				ldr	w1, [x2, 56]
				cmp	w20, w1
				bne	.L482
				mov	w0, -1
				str	w0, [x2, 56]
  419     %FINISH
  420     PLANT INST(R<<4+OP)
				mov	x18, x19
				add	w0, w0, w20, lsl 4
		.LVL430:
				bl	PLANTINST.25
		.LVL431:
  421     TYPE = REG;  VAL = R
				ldr	x0, [x19]
				mov	w1, 128
				str	w1, [x0, 68]
				ldr	x0, [x19]
				str	w20, [x0, 64]
  422 %END
  423 
		.LVL432:
		.L471:
  424 %ROUTINE RELEASE
				ldp	x19, x20, [sp, 16]
		.LVL433:
				ldp	x29, x30, [sp], 32
				ret
		.LVL434:
		.L487:
  425 %INTEGER I
  426     %RETURN %IF TYPE&REGXMASK = 0
				ldr	x1, [x18]
				ldr	w0, [x1, 68]
				mov	w2, 144
				tst	w0, w2
				bne	.L45
		.L39:
		.L43:
		.L38:
		.LDL3:
  427     I = TYPE&15;  I = VAL %IF I = 0
		.LVL39:
				ands	w0, w0, 15
		.LVL40:
				bne	.L40
				ldr	w0, [x1, 64]
		.LVL41:
		.L40:
  428     %IF I = DREG %START
				ldr	w2, [x1, 28]
				cmp	w0, w2
				beq	.L41
		.LDL4:
  429        DUSE = DUSE-1
				ldr	w0, [x1, 24]
		.LVL45:
				sub	w0, w0, #1
				str	w0, [x1, 24]
  430     %finish %ELSE %START
				b	.L38
		.LFE227:
				.align	2
		SWOP.23:
		.LFB229:
  431        I = 1<<I
				mov	w1, 1
				lsl	w0, w1, w0
		.LVL42:
  432        FREE = FREE!I %IF TEMPS&I # 0
				adrp	x1, .LANCHOR1
				ldr	w1, [x1, #:lo12:.LANCHOR1]
				tst	w0, w1
				beq	.L38
				ldr	w1, [x18, 16]
				orr	w0, w1, w0
		.LVL43:
				str	w0, [x18, 16]
  433     %FINISH
  434 %END
  435 
				b	.L38
		.LVL44:
		.L41:
  436 %ROUTINE LOAD TEMP
				ret
		.L45:
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				mov	x20, x18
  437 %INTEGER I,J
  438     RELEASE
				bl	RELEASE.20
		.LVL435:
  439     %IF DREG >= ZQUERY %AND DUSE = 0 %START
				adrp	x0, .LANCHOR0+304
				ldr	w2, [x0, #:lo12:.LANCHOR0+304]
				ldr	x18, [x20]
				ldr	w1, [x18, 28]
				cmp	w2, w1
				bgt	.L489
				ldr	w0, [x18, 24]
				cbnz	w0, .L489
  440        I = DREG;  DUSE = 1
		.LVL436:
				mov	w0, 1
				str	w0, [x18, 24]
				mov	w0, w1
  441     %finish %ELSE %START
				b	.L490
		.LVL437:
		.L489:
  442        J = 1+ZQUERY
				add	w19, w2, 1
		.LVL438:
  443        %CYCLE I = ZQUERY,1,15
				sub	w0, w2, #1
		.LVL439:
  444           ->OK %IF FREE&J # 0 %AND I # DREG
				ldr	w2, [x20, 16]
		.L495:
				tst	w2, w19
				ccmp	w1, w0, 4, ne
				bne	.L492
		.L493:
  445           J = J<<1
				lsl	w19, w19, 1
		.LVL441:
  446        %REPEAT
				cmp	w2, 16
				beq	.L494
		.LDL114:
				cmp	w0, 15
				bne	.L495
		.L494:
		.LDL115:
  447        FAULT('R')
				add	w0, w0, 1
		.LVL440:
				mov	w0, 82
		.LVL442:
				bl	FAULT.45
		.LVL443:
				mov	w0, 15
		.LVL444:
		.L492:
  448 OK:    FREE = FREE-J
				ldr	w1, [x20, 16]
				sub	w1, w1, w19
				str	w1, [x20, 16]
		.LVL445:
		.L490:
  449     %FINISH
  450     LOAD REG(I)
				mov	x18, x20
				bl	LOADREG.24
		.LVL446:
  451 %END
  452 
  453 %ROUTINE SWOP
				ldp	x19, x20, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.LFE228:
				.section	.rodata.str1.8,"aMS",@progbits,1
				.align	3
		.LC6:
				.string	"regression-compile-tmp/hal70.imp"
		
		
		
		
				.align	3
		.LC7:
				.string	"%%SWITCH index ASS(%d) not in range -30:-1 at %s:%d\n"
		
		
		
		
				.align	3
		.LC8:
				.string	"%%SWITCH LABEL NOT SET - sw1_ASS(%d): at line %s:%d"
		
		
		
		
				.align	2
		ASSEMBLE.18:
		.LFB221:
  454 %INTEGER K
  455     K = TYPE1;  TYPE1 = TYPE;  TYPE = K
				ldr	w1, [x18, 12]
		.LVL46:
				ldr	x0, [x18]
				ldr	w2, [x0, 68]
				str	w2, [x18, 12]
				str	w1, [x0, 68]
  456     K = VAL1;  VAL1 = VAL;  VAL = K
				ldr	w1, [x18, 8]
		.LVL47:
				ldr	x0, [x18]
				ldr	w2, [x0, 64]
				str	w2, [x18, 8]
				str	w1, [x0, 64]
  457 %END
  458 
  459 %ROUTINE PROGREF
				ret
		.LFE229:
				.align	2
		PROGREF.27:
		.LFB230:
  460     %IF TYPE&RELUXMASK = XMASK %AND VAL = 0 %START
				ldr	x2, [x18]
				ldr	w1, [x2, 68]
				mov	w0, 560
				and	w0, w1, w0
				cmp	w0, 16
				bne	.L48
				ldr	w0, [x2, 64]
				cbnz	w0, .L48
  461        VAL = TYPE&15;  TYPE = REG
				and	w1, w1, 15
				str	w1, [x2, 64]
				ldr	x0, [x18]
				mov	w1, 128
				str	w1, [x0, 68]
		.L48:
  462     %FINISH
  463     TYPE = TYPE!MEMMASK %IF TYPE # REG
				ldr	x1, [x18]
				ldr	w0, [x1, 68]
				cmp	w0, 128
				beq	.L47
				orr	w0, w0, 64
				str	w0, [x1, 68]
  464 %END
  465 
		.L49:
		.L47:
  466     Q = QSTART
				ret
		.LFE230:
				.align	2
		TEMP.19:
		.LFB231:
				adrp	x0, .LANCHOR0+308
				ldr	w21, [x0, #:lo12:.LANCHOR0+308]
  467 NEW:NQ = QSTART;  FREE = TEMPS
				adrp	x25, .LANCHOR0
				add	x25, x25, :lo12:.LANCHOR0
				ldr	w24, [x25, 308]
		.LVL448:
				adrp	x0, .LANCHOR1
				ldr	w0, [x0, #:lo12:.LANCHOR1]
				str	w0, [sp, 128]
  468     TYPE = INTEGER(Q);  Q = Q+1
				mov	w0, w21
				bl	INTEGER.39
		.LVL449:
				str	w0, [x20, 68]
		.LVL450:
  469     VAL = INTEGER(Q);  Q = Q+1
				add	w0, w21, 1
		.LVL451:
				bl	INTEGER.39
		.LVL452:
				str	w0, [x20, 64]
				add	w27, w21, 2
		.LVL453:
  470 
		.LBB65:
				cmp	w0, 0
				csneg	w1, w0, w0, ge
		.LBE65:
		.LBE64:
				cmp	w1, 15
				bgt	.L24
				tbz	x20, 3, .L24
		.LBB162:
				cmp	w0, 0
				csneg	w1, w0, w0, ge
		.LBE162:
		.LBE161:
		.LBB164:
				cmp	w0, 0
				csneg	w2, w0, w0, ge
		.LBE164:
		.LBE163:
		.LBB165:
		.LBE165:
		.LBE166:
  471 GET:%CYCLE
  472        %RETURN %IF Q = QLIM
				ldr	w0, [x25, 244]
				cmp	w27, w0
				bne	.L499
				b	.L497
		.LVL454:
		.L645:
				ldr	w0, [x25, 244]
				cmp	w0, w27
				beq	.L497
		.L499:
		.LDL119:
  473        K = INTEGER(Q);  Q = Q+1
				mov	w27, w21
		.LVL472:
		.L502:
				mov	w0, w27
				bl	INTEGER.39
		.LVL473:
				mov	w19, w0
		.LVL474:
				add	w21, w27, 1
		.LVL475:
				mov	w27, w21
				mov	w27, w21
  474        ->ASS(K) %IF K < 0
				adrp	x26, .LANCHOR3
				add	x26, x26, :lo12:.LANCHOR3
		.L498:
		.LDL116:
		.LDL117:
		.LVL447:
		.LDL118:
				tbz	w0, #31, .L645
				cmn	w0, #30
				bcc	.L503
				add	x0, x26, w0, sxtw 3
		.LVL476:
				ldr	x0, [x0, 240]
				br	x0
		.LVL477:
		.L619:
  475 !!       INTEGER(NQ) = TYPE1;  INTEGER(NQ+1) = VAL1
  476        set INTEGER(NQ, TYPE1);  set INTEGER(NQ+1, VAL1)
				mov	w1, w22
				mov	w0, w24
		.LVL455:
				bl	SETINTEGER.8
		.LVL456:
				mov	w1, w23
				add	w0, w24, 1
				bl	SETINTEGER.8
		.LVL457:
				adrp	x0, .LC6
				add	x0, x0, :lo12:.LC6
				cmp	x3, 0
				csel	x3, x0, x3, eq
				cmp	w0, 0
				mov	w4, 478
				csel	w4, w0, w4, ne
				mov	w2, w19
				adrp	x1, .LC7
				add	x1, x1, :lo12:.LC7
				adrp	x0, :got:stderr;ldr	x0, [x0, :got_lo12:stderr]
		
				ldr	x0, [x0]
				bl	fprintf
		.LVL463:
  477        NQ = NQ+2
				add	w24, w24, 2
		.LVL458:
				adrp	x0, :got:_imp_current_file;ldr	x0, [x0, :got_lo12:_imp_current_file]
		
		.LVL462:
				ldr	x3, [x0]
  478        TYPE1 = TYPE;  VAL1 = VAL
				ldp	w23, w22, [x20, 64]
				adrp	x0, :got:_imp_current_line;ldr	x0, [x0, :got_lo12:_imp_current_line]
		
				ldr	w0, [x0]
  479        TYPE = K;  VAL = INTEGER(Q);  Q = Q+1
				str	w19, [x20, 68]
				mov	w0, w21
				bl	INTEGER.39
		.LVL459:
				str	w0, [x20, 64]
				add	w27, w27, 2
		.LVL460:
				mov	w0, 1
				bl	exit
		.LVL464:
		.L626:
  480     %REPEAT
				b	.L502
		.LVL461:
		.L503:
  481 
  482 %PREDICATE TEMP
  483     %FALSE %IF TYPE1 # REG
				ldr	w1, [x18, 12]
				mov	w0, 0
		.L51:
				cmp	w1, 128
				beq	.L54
		.L50:
		.LDL5:
  484     %IF VAL1 = DREG %START
				ldr	w1, [x18, 8]
				ldr	x0, [x18]
				ldr	w2, [x0, 28]
				cmp	w1, w2
				beq	.L52
		.LDL6:
  485        %FALSE %IF DUSE # 1
				ldr	w0, [x0, 24]
				cmp	w0, 1
				cset	w0, eq
				b	.L50
		.LFE231:
				.align	2
		GETSYM.7:
		.LFB234:
  486     %finish %ELSE %START
  487        %FALSE %IF 1<<VAL1&TEMPS = 0
				adrp	x0, .LANCHOR1
				ldr	w0, [x0, #:lo12:.LANCHOR1]
				asr	w0, w0, w1
				and	w0, w0, 1
				b	.L50
		.L52:
  488     %FINISH
  489     %TRUE
  490 %END
  491 
				ret
		.L54:
  492 NOP: K = 0;                           !NOT SYMMETRIC
				mov	w19, 0
				mov	w19, 0
		.LVL509:
				mov	w19, 0
		.LVL512:
  493 BOP:%IF MODE <= 0 %OR (TYPE = 0 %AND TYPE1 = 0) %START
				ldr	w27, [x20, 68]
				ldr	w0, [x20, 20]
				cmp	w0, 0
				ble	.L507
				ldr	w27, [x20, 68]
				cbnz	w27, .L508
		.LVL500:
		.L623:
				cbz	w22, .L510
		.L500:
				ldr	w0, [x20, 20]
				cmp	w0, 0
				ble	.L621
				ldr	w27, [x20, 68]
		.LVL595:
		.L508:
				ldr	w0, [x20, 20]
				mov	w19, 0
				cmp	w0, 0
				bgt	.L623
				b	.L510
		.LVL600:
		.L628:
  494        FAULT('A') %IF TYPE # 0
				ldr	w0, [x20, 68]
				cbz	w0, .L510
		.LVL466:
		.L621:
				mov	x18, x20
				mov	w0, 65
				bl	FAULT.45
		.LVL467:
		.L510:
  495        TYPE = TYPE1;  VAL = LITVAL
				ldr	w0, [sp, 108]
				stp	w0, w22, [x20, 64]
  496     %finish %ELSE %START
		.L511:
		.L522:
		.LVL468:
		.L523:
  497        %IF %NOT TEMP %OR (TYPE=REG %AND VAL=DREG %AND DUSE=1 %AND K#0) %START
		.LDL120:
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				bl	TEMP.19
		.LVL501:
				cbnz	w0, .L619
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				bl	TEMP.19
		.LVL596:
				cbnz	w0, .L619
				cmp	w27, 128
				bne	.L517
				ldr	w1, [x20, 64]
				ldr	w0, [x20, 28]
				cmp	w1, w0
				bne	.L516
				ldr	w0, [x20, 24]
				cmp	w19, 0
				ccmp	w0, 1, 0, ne
				bne	.L516
  498           SWOP
				add	x18, sp, 112
				bl	SWOP.23
		.LVL478:
				ldr	w23, [sp, 120]
				ldr	w22, [sp, 124]
				add	x18, sp, 112
				bl	SWOP.23
		.LVL597:
				ldr	w23, [sp, 120]
				ldr	w22, [sp, 124]
  499           %IF K = 0 %OR %NOT TEMP %START
				cbz	w19, .L513
		.L514:
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				bl	TEMP.19
		.LVL479:
				cbnz	w0, .L517
		.L513:
				b	.L514
		.LVL598:
		.L627:
  500              LOAD TEMP;  SWOP
		.LBB76:
				mov	x0, x21
				bl	_imp_readsymbol
		.LVL246:
		.LBE76:
		.LBE75:
		.LBB78:
				mov	x0, x21
				bl	_imp_readsymbol
		.LVL250:
		.LBE78:
		.LBE77:
		.LBB80:
				mov	x0, x21
				bl	_imp_readsymbol
		.LVL259:
		.LBE80:
		.LBE79:
				stp	w23, w22, [sp, 120]
				add	x19, sp, 112
		.LVL480:
				mov	x18, x19
				bl	LOADTEMP.22
		.LVL481:
				mov	x18, x19
				bl	SWOP.23
		.LVL482:
				ldr	w23, [sp, 120]
				ldr	w22, [sp, 124]
		.L515:
		.LVL483:
		.L517:
  501           %FINISH
  502        %FINISH
  503        LOAD TEMP %IF TYPE&BMASK # 0 %OR (OP&MEM=0 %AND TYPE&MEMMASK#0)
				ldr	w27, [x20, 68]
				tbz	x27, 8, .L516
		.L518:
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				bl	LOADTEMP.22
		.LVL484:
				ldr	w23, [sp, 120]
				ldr	w22, [sp, 124]
		.L519:
				ldr	w27, [x20, 68]
		.LVL502:
		.L516:
				tbnz	x28, 1, .L519
				tbnz	x27, 6, .L518
				b	.L519
		.LVL503:
		.L533:
  504        RELEASE
				stp	w23, w22, [sp, 120]
				add	x22, sp, 112
				mov	x18, x22
				bl	RELEASE.20
		.LVL485:
				ldr	w19, [sp, 120]
  505        PLANT INST(VAL1<<4+OP)
		.LBB86:
		.LBE86:
		.LBE85:
				ldrb	w0, [x0, 80]
				bl	_imp_printsymbol
		.LVL291:
		.LBE87:
		.LBE88:
		.LBB92:
				bl	_imp_printsymbol
		.LVL296:
		.LBE92:
		.LBE91:
				mov	w25, 124
		.LBE98:
		.LBE97:
		.LBB100:
		.LBB101:
				mov	w24, 39
				b	.L379
		.LVL305:
		.L390:
		.LBE101:
		.LBE100:
		.LBB99:
				mov	w0, w25
				bl	_imp_printsymbol
		.LVL306:
				b	.L380
		.L381:
		.LVL307:
		.LBE99:
		.LBE103:
		.LBB105:
				and	w0, w19, 127
				bl	_imp_printsymbol
		.LVL310:
		.LBE105:
		.LBE104:
		.LBB102:
				mov	w0, w24
				bl	_imp_printsymbol
		.LVL317:
				b	.L382
		.L386:
				ldp	x23, x24, [sp, 48]
				ldr	x25, [sp, 64]
				b	.L373
		.LBE102:
		.LBE106:
		.LFE212:
				.align	2
		OUTPUTRECORD.43:
		.LFB216:
				mov	x18, x22
				add	w0, w28, w19, lsl 4
				bl	PLANTINST.25
		.LVL486:
  506        TYPE = REG;  VAL = VAL1
		.LBB82:
				ubfx	x0, x19, 8, 8
		.LVL283:
				bl	_imp_printch
		.LVL284:
		.LBE82:
		.LBE81:
		.LBB84:
				mov	w0, w19
				bl	_imp_printch
		.LVL285:
		.LBE84:
		.LBE83:
		.LBB120:
				mov	w0, 0
				bl	_imp_printch
		.LVL322:
		.LBE120:
		.LBE119:
		.LBB122:
				mov	w0, -16
				bl	_imp_printch
		.LVL325:
		.LBE122:
		.LBE121:
				mov	w0, 128
				stp	w19, w0, [x20, 64]
  507        CREG = VAL;  CTYPE = 0;  CVAL = 0
		.LBB72:
				add	x0, sp, 32
		.LVL105:
				str	q16, [sp, 32]
				stp	q18, q17, [x0, 16]
				stp	q20, q19, [x0, 48]
				stp	q22, q21, [x0, 80]
				stp	q24, q23, [x0, 112]
				stp	q26, q25, [x0, 144]
				stp	q28, q27, [x0, 176]
				stp	q30, q29, [x0, 208]
				str	q31, [x0, 240]
				bl	_imp_printstring
		.LVL106:
		.LBE72:
		.LBE71:
				str	w19, [x20, 56]
				stp	wzr, wzr, [x20, 32]
  508        ATYPE = -1 %IF ACC = VAL %OR ATYPE&15 = VAL # 0
				ldr	w0, [x20, 40]
				cmp	w0, w19
				beq	.L520
				ldr	w0, [x20, 60]
				and	w1, w0, 15
				cmp	w19, 0
				ccmp	w1, w19, 0, ne
				beq	.L520
		.L521:
				mov	w0, -1
				str	w0, [x20, 60]
  509        ATYPE = -1 %IF ATYPE = REG %AND AVAL = VAL
				cmp	w0, 128
				bne	.L523
				ldr	w0, [x20, 44]
				cmp	w0, w19
				bne	.L523
				mov	w0, -1
				str	w0, [x20, 60]
				b	.L523
		.L520:
				b	.L523
		.LVL487:
		.L524:
  510     %FINISH
  511 
  512 POP:NQ = NQ-2
				sub	w19, w24, #2
		.LVL469:
				mov	w24, w19
  513     TYPE1 = INTEGER(NQ);  VAL1 = INTEGER(NQ+1)
				mov	w0, w19
				bl	INTEGER.39
		.LVL470:
				mov	w22, w0
				sub	w0, w24, #1
				bl	INTEGER.39
		.LVL471:
				mov	w23, w0
  514     ->GET
  515 
  516 ASS(-2):
  517     OP = SUB
				mov	w28, 2831
				b	.L508
		.LVL489:
		.L525:
  518     ->NOP %IF MODE > 0 %AND TYPE # 0
				ldr	w0, [x20, 20]
				cmp	w0, 0
				ble	.L525
				ldr	w0, [x20, 68]
				cbz	w0, .L526
		.LVL488:
  519     TYPE1 = 0 %AND TYPE = 0 %IF MODE <= 0 %AND TYPE1 = TYPE
				ldr	w0, [x20, 68]
				cmp	w0, w22
				bne	.L526
				str	wzr, [x20, 68]
				mov	w22, 0
		.L526:
  520     VAL = -VAL
				ldr	w0, [x20, 64]
				neg	w0, w0
				str	w0, [x20, 64]
		.LVL490:
		.L528:
  521 ASS(-1):
  522     OP = ADD;  LITVAL = VAL1+VAL
				mov	w28, 2575
				b	.L506
		.LVL465:
		.L507:
				add	w1, w23, w1
				str	w1, [sp, 108]
		.LVL491:
				mov	w28, 2575
		.LVL594:
		.L529:
  523     ->BOP %UNLESS TYPE = 0
				ldp	w1, w0, [x20, 64]
				cbnz	w0, .L625
		.LDL121:
  524     %IF TYPE1&MEMMASK # 0 %AND MODE > 0 %START
				tbz	x22, 6, .L530
				ldr	w0, [x20, 20]
				cmp	w0, 0
				ble	.L530
  525        SWOP;  LOAD TEMP;  SWOP
				stp	w23, w22, [sp, 120]
				add	x22, sp, 112
				mov	x18, x22
				bl	SWOP.23
		.LVL492:
				mov	x18, x22
				bl	LOADTEMP.22
		.LVL493:
				mov	x18, x22
				bl	SWOP.23
		.LVL494:
				ldr	w23, [sp, 120]
				ldr	w22, [sp, 124]
		.L530:
  526     %FINISH
  527     %IF TYPE1 = REG %START
				cmp	w22, 128
				bne	.L531
  528        ->BOP %IF VAL1 = 0
				cbz	w23, .L626
		.LDL122:
  529        TYPE1 = XMASK+VAL1;  LITVAL = VAL
				add	w22, w23, 16
		.LVL495:
				ldr	w0, [x20, 64]
				str	w0, [sp, 108]
		.LVL496:
		.L531:
  530     %FINISH
  531     TYPE = TYPE1;  VAL = LITVAL
				ldr	w0, [sp, 108]
				stp	w0, w22, [x20, 64]
  532     ->POP
		.LBB152:
				adrp	x0, .LANCHOR2
				add	x0, x0, :lo12:.LANCHOR2
				add	x0, x0, 304
				bl	check_outstream
		.LVL358:
				adrp	x0, :got:_imp_OutStream;ldr	x0, [x0, :got_lo12:_imp_OutStream]
		
		.LBE152:
		.LBE151:
				b	.L523
		.LVL497:
		.L532:
  533 ASS(-3):
  534     OP = AND;  LITVAL = VAL1&VAL
				ldr	w0, [x20, 64]
				and	w0, w23, w0
				str	w0, [sp, 108]
		.LVL498:
				mov	w28, 1031
		.LVL499:
		.L506:
  535     ->BOP
  536 ASS(-4):
  537     OP = OR;  LITVAL = VAL1!VAL
				ldr	w0, [x20, 64]
				orr	w0, w23, w0
				str	w0, [sp, 108]
		.LVL504:
				mov	w28, 1543
  538     ->BOP
				b	.L506
		.LVL505:
		.L534:
  539 ASS(-5):
				tbnz	w0, #31, .L368
				stp	x29, x30, [sp, -16]!
				mov	x29, sp
				adrp	x1, :got:_imp_InStream;ldr	x1, [x1, :got_lo12:_imp_InStream]
		
				str	w0, [x1]
				sbfiz	x1, x0, 3, 32
				add	x0, x1, w0, sxtw
		.LVL278:
				adrp	x1, :got:_imp_infile;ldr	x1, [x1, :got_lo12:_imp_infile]
		
				add	x0, x1, x0, lsl 5
				ldr	x1, [x0, 8]
				adrp	x0, :got:_imp_INFILE;ldr	x0, [x0, :got_lo12:_imp_INFILE]
		
				str	x1, [x0]
				adrp	x0, .LANCHOR2
				add	x0, x0, :lo12:.LANCHOR2
				add	x0, x0, 256
				bl	check_instream
		.LVL279:
				ldp	x29, x30, [sp], 16
				ret
		.LVL280:
		.L368:
				ret
		.LFE105:
				.align	2
		OUTPUTWORD.44:
		.LVL281:
		.LFB217:
  540     OP = XOR;  LITVAL = VAL1!!VAL
		.LBB116:
				adrp	x0, :got:_imp_OutStream;ldr	x0, [x0, :got_lo12:_imp_OutStream]
		
				mov	w1, 1
				str	w1, [x0]
				adrp	x0, :got:_imp_outfile;ldr	x0, [x0, :got_lo12:_imp_outfile]
		
				ldr	x1, [x0, 296]
				adrp	x0, :got:_imp_OUTFILE;ldr	x0, [x0, :got_lo12:_imp_OUTFILE]
		
				str	x1, [x0]
				adrp	x0, .LANCHOR2
				add	x0, x0, :lo12:.LANCHOR2
				add	x0, x0, 280
				bl	check_outstream
		.LVL320:
		.LBE116:
		.LBE115:
				mov	w19, 10
		.LVL321:
		.L393:
		.LDL99:
		.LBE117:
		.LBE118:
		.LBB124:
				adrp	x0, :got:_imp_OutStream;ldr	x0, [x0, :got_lo12:_imp_OutStream]
		
				mov	w1, 2
				str	w1, [x0]
				adrp	x0, :got:_imp_outfile;ldr	x0, [x0, :got_lo12:_imp_outfile]
		
				ldr	x1, [x0, 584]
				adrp	x0, :got:_imp_OUTFILE;ldr	x0, [x0, :got_lo12:_imp_OUTFILE]
		
				str	x1, [x0]
				adrp	x0, .LANCHOR2
				add	x0, x0, :lo12:.LANCHOR2
				add	x0, x0, 280
				bl	check_outstream
		.LVL332:
		.LBE124:
		.LBE123:
		.LBB154:
				adrp	x0, :got:_imp_OutStream;ldr	x0, [x0, :got_lo12:_imp_OutStream]
		
				str	wzr, [x0]
				adrp	x0, :got:_imp_outfile;ldr	x0, [x0, :got_lo12:_imp_outfile]
		
				ldr	x1, [x0, 8]
				adrp	x0, :got:_imp_OUTFILE;ldr	x0, [x0, :got_lo12:_imp_OUTFILE]
		
				str	x1, [x0]
				adrp	x0, .LANCHOR2
				add	x0, x0, :lo12:.LANCHOR2
				add	x0, x0, 280
				bl	check_outstream
		.LVL360:
		.LBE154:
		.LBE153:
		.LBB158:
				adrp	x0, :got:_imp_OutStream;ldr	x0, [x0, :got_lo12:_imp_OutStream]
		
				mov	w1, 2
				str	w1, [x0]
				adrp	x0, :got:_imp_outfile;ldr	x0, [x0, :got_lo12:_imp_outfile]
		
				ldr	x1, [x0, 584]
				adrp	x0, :got:_imp_OUTFILE;ldr	x0, [x0, :got_lo12:_imp_OUTFILE]
		
				str	x1, [x0]
				adrp	x0, .LANCHOR2
				add	x0, x0, :lo12:.LANCHOR2
				add	x0, x0, 280
				bl	check_outstream
		.LVL363:
		.L413:
		.LBE158:
		.LBE157:
				ldr	w0, [x20, 64]
				eor	w0, w23, w0
				str	w0, [sp, 108]
		.LVL506:
				mov	w28, 1799
		.LBB182:
				adrp	x22, :got:_imp_OutStream;ldr	x22, [x22, :got_lo12:_imp_OutStream]
		
				mov	w23, 2
				str	w23, [x22]
				adrp	x26, :got:_imp_OUTFILE;ldr	x26, [x26, :got_lo12:_imp_OUTFILE]
		
				adrp	x27, :got:_imp_outfile;ldr	x27, [x27, :got_lo12:_imp_outfile]
		
				ldr	x0, [x27, 584]
				str	x0, [x26]
				adrp	x21, .LANCHOR2
				add	x21, x21, :lo12:.LANCHOR2
				add	x25, x21, 280
				mov	x0, x25
				bl	check_outstream
		.LVL633:
		.LBE182:
		.LBE181:
		.LBB192:
				str	wzr, [x22]
				ldr	x0, [x27, 8]
				str	x0, [x26]
				mov	x0, x25
				bl	check_outstream
		.LVL642:
		.LBE192:
		.LBE191:
  541     ->BOP
				b	.L506
		.LVL507:
		.L535:
		.LBB184:
				add	x19, sp, 112
				str	q16, [sp, 112]
				stp	q18, q17, [x19, 16]
				stp	q20, q19, [x19, 48]
				stp	q22, q21, [x19, 80]
				stp	q24, q23, [x19, 112]
				stp	q26, q25, [x19, 144]
				stp	q28, q27, [x19, 176]
				stp	q30, q29, [x19, 208]
				str	q31, [x19, 240]
				mov	x1, x19
				mov	w0, 1
				bl	_imp_openinput
		.LVL635:
		.LBE184:
		.LBE183:
		.LBB186:
				str	q16, [sp, 112]
				stp	q18, q17, [x19, 16]
				stp	q20, q19, [x19, 48]
				stp	q22, q21, [x19, 80]
				stp	q24, q23, [x19, 112]
				stp	q26, q25, [x19, 144]
				stp	q28, q27, [x19, 176]
				stp	q30, q29, [x19, 208]
				str	q31, [x19, 240]
				mov	x1, x19
				mov	w0, w23
				bl	_imp_openinput
		.LVL637:
		.LBE186:
		.LBE185:
  542 ASS(-6):
		.LBB188:
				str	q16, [sp, 112]
				stp	q18, q17, [x19, 16]
				stp	q20, q19, [x19, 48]
				stp	q22, q21, [x19, 80]
				stp	q24, q23, [x19, 112]
				stp	q26, q25, [x19, 144]
				stp	q28, q27, [x19, 176]
				stp	q30, q29, [x19, 208]
				str	q31, [x19, 240]
				mov	x1, x19
				mov	w0, 1
				bl	_imp_openoutput
		.LVL639:
		.LBE188:
		.LBE187:
		.LBB190:
				str	q16, [sp, 112]
				stp	q18, q17, [x19, 16]
				stp	q20, q19, [x19, 48]
				stp	q22, q21, [x19, 80]
				stp	q24, q23, [x19, 112]
				stp	q26, q25, [x19, 144]
				stp	q28, q27, [x19, 176]
				stp	q30, q29, [x19, 208]
				str	q31, [x19, 240]
				mov	x1, x19
				mov	w0, w23
				bl	_imp_openoutput
		.LVL641:
		.LBE190:
		.LBE189:
  543     OP = SLLS;  LITVAL = VAL1<<VAL
				lsl	w1, w23, w1
				str	w1, [sp, 108]
		.LVL508:
				mov	w28, 29960
		.LVL599:
		.L536:
  544     OP = SLHL %IF TYPE # 0
				ldp	w1, w0, [x20, 64]
				cbz	w0, .L627
				mov	w28, 3332
				b	.L529
		.LVL510:
		.L537:
  545     ->NOP
  546 ASS(-7):
  547     OP = SRLS;  LITVAL = VAL1>>VAL
				lsr	w1, w23, w1
				str	w1, [sp, 108]
		.LVL511:
				mov	w28, 29704
				b	.L536
		.LFE221:
				.align	2
		CONDIT.11:
		.LVL601:
		.LFB243:
  548     OP = SRHL %IF TYPE # 0
				ldp	w1, w0, [x20, 64]
				cbz	w0, .L628
				mov	w28, 3076
				b	.L529
		.LVL513:
		.L538:
  549     ->NOP
  550 
		.LBB194:
				bl	_imp_closeinput
		.LVL872:
		.LBE194:
		.LBE193:
				mov	w0, 1
				bl	_imp_SELECTINPUT
		.LVL873:
  551 ASS(-8):                              !TYPE_VAL
  552     TYPE = VAL1
  553     TYPE = 0 %IF TYPE&OPMASK = MACRO; !SAFETY
				and	w0, w23, 61440
				cmp	w0, 40960
				beq	.L539
		.LDL123:
  554     TYPE = 0 %IF TYPE&(OPMASK+FMASK) = FMASK
				and	w0, w23, 63488
				cmp	w0, 2048
				bne	.L646
				str	wzr, [x20, 68]
				b	.L523
		.L646:
				str	w23, [x20, 68]
				b	.L523
		.L541:
				b	.L523
		.LVL593:
		.L625:
  555     ->POP
  556 
  557 ASS(-11):                             !COMPARE
  558     K = INTEGER(Q);  Q = Q+1
				mov	w0, w21
				bl	INTEGER.39
		.LVL514:
				mov	w19, w0
		.LVL515:
				add	w27, w27, 2
		.LVL516:
  559     %IF MODE <= 0 %START
				ldr	w0, [x20, 20]
		.LVL517:
				cmp	w0, 0
				ble	.L542
		.LDL124:
  560        VAL1 = TYPE1 %AND VAL = TYPE %IF TYPE1 # TYPE
				ldr	w0, [x20, 68]
				cmp	w0, w22
				beq	.L545
				str	w0, [x20, 64]
				mov	w23, w22
		.L545:
  561        LITVAL = \3
		.LVL524:
  562        LITVAL = 1 %IF VAL1 < VAL
				ldr	w1, [x20, 64]
				mov	w0, 1
				cmp	w23, w1
				bge	.L648
		.L546:
		.LVL525:
  563        LITVAL = 2 %IF VAL1 > VAL
				beq	.L630
				mov	w0, 2
				b	.L546
		.L630:
				mov	w0, -4
				b	.L546
		.LVL528:
		.L647:
  564        K = K&LITVAL;  K = \0 %IF K # 0
				tst	w0, w19
				csetm	w19, ne
		.LVL526:
				b	.L558
		.LVL527:
		.L648:
		.L547:
  565     %finish %ELSE %UNLESS CREG=16 %AND TYPE1=CTYPE %AND VAL1=CVAL %AND TYPE=VAL=0 %START
				ldr	w0, [x20, 56]
				cmp	w0, 16
				bne	.L543
				ldr	w0, [x20, 36]
				cmp	w0, w22
				bne	.L543
				ldr	w0, [x20, 32]
				cmp	w23, w0
				bne	.L543
				ldp	w0, w1, [x20, 64]
				cmp	w0, 0
				ccmp	w1, w0, 0, ne
				bne	.L558
		.L543:
  566        %IF TYPE1 # REG %START
				cmp	w22, 128
				beq	.L552
  567           SWOP
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				bl	SWOP.23
		.LVL518:
				ldr	w22, [sp, 124]
				ldr	w23, [sp, 120]
  568           %IF TYPE1 # REG %START
				cmp	w22, 128
				bne	.L647
		.LDL125:
  569              LOAD TEMP;  SWOP
		.LBB90:
				bl	_imp_space
		.LVL292:
		.LBE90:
		.LBE89:
				add	x21, sp, 112
				mov	x18, x21
				bl	LOADTEMP.22
		.LVL529:
				mov	x18, x21
				bl	SWOP.23
		.LVL530:
				ldr	w23, [sp, 120]
				ldr	w22, [sp, 124]
  570           %finish %ELSE %START
		.LBB94:
		.LBE94:
		.LBE93:
				mov	w1, 17
				sub	w0, w1, w0
				bl	_imp_spaces
		.LVL303:
		.LBE95:
		.LBE96:
				b	.L552
		.L554:
  571              K = K!!3 %UNLESS K = 3 %OR K = \3
				cmp	w19, 3
				eor	w0, w19, 3
				ccmn	w19, #4, 4, ne
				csel	w19, w0, w19, ne
		.LVL519:
		.L549:
		.L551:
		.L552:
  572           %FINISH
		.LBB68:
				bl	_imp_newline
		.LVL99:
		.LBE68:
		.LBE67:
		.LBB74:
				bl	_imp_newline
		.LVL108:
		.LBE74:
		.LBE73:
		.LBB156:
				bl	_imp_newline
		.LVL362:
		.LBE156:
		.LBE155:
  573        %FINISH
		.LBB70:
				mov	w0, 2
				bl	_imp_newlines
		.LVL101:
		.LBE70:
		.LBE69:
  574        %UNLESS CREG = VAL1 %AND CTYPE = TYPE %AND CVAL = VAL %START
				ldr	w0, [x20, 56]
				cmp	w23, w0
				bne	.L553
				ldr	w1, [x20, 36]
				ldr	w0, [x20, 68]
				cmp	w1, w0
				bne	.L553
				ldr	w1, [x20, 32]
				ldr	w0, [x20, 64]
				cmp	w1, w0
				beq	.L558
		.L553:
  575           CREG = VAL1;  CTYPE = TYPE;  CVAL = VAL
				str	w23, [x20, 56]
				ldp	w0, w1, [x20, 64]
				stp	w0, w1, [x20, 32]
  576           %UNLESS TYPE = VAL = 0 %START
				cmp	w0, 0
				ccmp	w1, w0, 0, ne
				beq	.L554
		.LDL126:
  577              OP = COMP
		.LVL531:
				mov	w0, 2311
				b	.L555
		.L556:
				mov	w0, 2311
				b	.L555
		.LVL535:
		.L559:
  578              %IF TYPE = ATYPE %AND VAL = AVAL %START
				ldr	w2, [x20, 60]
				cmp	w1, w2
				bne	.L556
				ldr	w2, [x20, 44]
				cmp	w0, w2
				bne	.L556
  579                 TYPE = REG;  VAL = ACC
				ldr	w0, [x20, 40]
				mov	w1, 128
				stp	w0, w1, [x20, 64]
  580              %FINISH
  581              %IF TYPE&BMASK # 0 %START
				tbz	x1, 8, .L631
  582                 OP = CLB
		.LVL532:
				mov	w0, 37890
				mov	w0, 37890
				b	.L555
		.LVL534:
		.L631:
  583                 FAULT('I') %UNLESS K = 3 %OR K = \3
				cmp	w19, 3
				ccmn	w19, #4, 4, ne
				beq	.L555
				mov	x18, x20
				mov	w0, 73
				bl	FAULT.45
		.LVL533:
  584              %FINISH
  585           %finish %ELSE %START
  586              OP = LOAD
		.LVL520:
				mov	w0, 2063
		.LVL521:
		.L555:
  587              TYPE = REG;  VAL = VAL1
				mov	w0, 128
				stp	w23, w0, [x20, 64]
  588           %FINISH
  589           PLANT INST(VAL1<<4+OP)
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				add	w0, w0, w23, lsl 4
		.LVL522:
				bl	PLANTINST.25
		.LVL523:
		.L548:
		.L557:
		.L558:
  590        %FINISH
  591     %FINISH
  592     COND = K
				str	w19, [x20, 48]
  593     ->GET
				b	.L502
		.L542:
  594 
  595 ASS(-12):                             !TEST CC
  596     COND = \VAL
				ldr	w0, [x20, 64]
				mvn	w0, w0
				str	w0, [x20, 48]
  597     ->GET
				b	.L502
		.L560:
  598 
  599 ASS(-13):                             !AND,WHILE
  600     %IF MODE > 0 %START
				ldr	w0, [x20, 20]
				cmp	w0, 0
				bgt	.L561
		.LDL127:
  601        SET JUMP(16_1000)
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				mov	w0, 4096
				bl	SETJUMP.26
		.LVL536:
  602     %finish %ELSE %START
				b	.L562
		.L564:
  603        %RETURN %IF COND # 0;          !CONDITION FALSE
				ldr	w0, [x20, 48]
				cbnz	w0, .L497
		.L562:
		.LDL128:
  604     %FINISH
  605     %RETURN %IF Q = QLIM
				adrp	x0, .LANCHOR0+244
				ldr	w0, [x0, #:lo12:.LANCHOR0+244]
				cmp	w0, w21
				bne	.L498
				b	.L497
		.L561:
  606     ->NEW
  607 
  608 ASS(-14):                             !OR
  609     %IF MODE > 0 %START
				ldr	w0, [x20, 20]
				cmp	w0, 0
				bgt	.L565
		.LDL129:
  610        COND = \COND
				ldr	w0, [x20, 48]
				mvn	w0, w0
				str	w0, [x20, 48]
  611        SET JUMP(16_3000)
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				mov	w0, 12288
				bl	SETJUMP.26
		.LVL537:
  612     %finish %ELSE %START
				b	.L498
		.L566:
  613        %RETURN %IF COND = 0;          !CONDITION TRUE
				ldr	w0, [x20, 48]
				cbnz	w0, .L498
				b	.L497
		.L565:
  614     %FINISH
  615     ->NEW
  616 
  617 ASS(-15):                             !IF
  618     SET JUMP(16_2000)
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				mov	w0, 8192
				bl	SETJUMP.26
		.LVL538:
  619     %RETURN
		.L497:
  620 
  621 ASS(-16):                             !ELSE
  622     COND = \0
				mov	w0, -1
				str	w0, [x20, 48]
  623     SET JUMP(16_4000)
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				mov	w0, 16384
				bl	SETJUMP.26
		.LVL541:
  624     %RETURN
				b	.L497
		.L568:
  625 
  626 ASS(-17):                             !IF AFTER ELSE
  627     SET JUMP(16_6000)
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				mov	w0, 24576
				bl	SETJUMP.26
		.LVL542:
  628     %RETURN
				b	.L497
		.L569:
  629 
  630 ASS(-18):                             !MACCALL IF
  631     SET JUMP(16_8000)
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				mov	w0, 32768
				bl	SETJUMP.26
		.LVL543:
  632     %RETURN
				b	.L497
		.L570:
  633 
  634 ASS(-20):                             !HASH
  635     TYPE = TYPE&(UMASK+63)
				ldr	w0, [x20, 68]
				mov	w1, 575
				and	w0, w0, w1
				str	w0, [x20, 68]
  636     ->GET
				b	.L502
		.L571:
  637 
  638 ASS(-21):                             !INDEX
  639     FAULT('I') %IF TYPE1&REGXMASK # 0
				mov	w0, 144
				tst	w22, w0
				bne	.L649
		.L572:
				mov	x18, x20
				mov	w0, 73
				bl	FAULT.45
		.LVL547:
				b	.L572
		.L650:
  640     %IF TYPE&MEMMASK # 0 %START
				ldr	w0, [x20, 68]
				tbz	x0, 6, .L576
  641        %IF MODE > 0 %START
				ldr	w0, [x20, 20]
				cmp	w0, 0
				ble	.L650
		.LDL130:
  642           ZQUERY = 1
				adrp	x19, .LANCHOR0
		.LVL544:
				add	x19, x19, :lo12:.LANCHOR0
				mov	w0, 1
				str	w0, [x19, 304]
  643           LOAD TEMP
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				bl	LOADTEMP.22
		.LVL545:
				ldr	w23, [sp, 120]
				ldr	w22, [sp, 124]
  644           ZQUERY = 0
				str	wzr, [x19, 304]
  645        %finish %ELSE FAULT('A')
		.L573:
		.L576:
				mov	x18, x20
				mov	w0, 65
				bl	FAULT.45
		.LVL548:
  646     %FINISH
  647     %IF TYPE = REG %START
				ldr	w0, [x20, 68]
				cmp	w0, 128
				bne	.L575
				b	.L575
		.LVL549:
		.L651:
  648        TYPE = XMASK+VAL;  VAL = 0
				ldr	w0, [x20, 64]
				add	w0, w0, 16
				stp	wzr, w0, [x20, 64]
		.L575:
  649     %FINISH
  650     ZQUERY = 0
				adrp	x0, .LANCHOR0+304
				str	wzr, [x0, #:lo12:.LANCHOR0+304]
  651     FAULT('I') %IF TYPE1&TYPE&RELMASK # 0
				ldr	w19, [x20, 68]
				and	w0, w19, w22
				tbnz	x0, 5, .L651
		.L577:
				mov	x18, x20
				mov	w0, 73
				bl	FAULT.45
		.LVL550:
				b	.L577
		.LVL551:
		.L578:
  652     TYPE = TYPE1!TYPE!MEMMASK;  VAL = VAL1+VAL
				orr	w0, w19, w22
				orr	w0, w0, 64
				ldr	w1, [x20, 64]
				add	w1, w1, w23
				stp	w1, w0, [x20, 64]
  653     ->POP
				b	.L523
		.LVL546:
		.L649:
  654 
  655 ASS(-22):                             !MINST SEPARATOR
  656     %IF TYPE1&OPMASK = 16_7000 %START
				and	w0, w22, 61440
				cmp	w0, 28672
				beq	.L579
		.LDL131:
  657        %IF TYPE1&16_10 = 0 %START;    !REG-TYPE INST
				tbz	x22, 4, .L582
		.LDL132:
  658           FAULT('I') %IF TYPE # REG
				ldr	w0, [x20, 68]
				cmp	w0, 128
				beq	.L587
				mov	x18, x20
				mov	w0, 73
				bl	FAULT.45
		.LVL554:
				b	.L587
		.L652:
  659        %finish %ELSE %START
  660           VAL = \VAL %AND VAL1 = VAL1!!16_0100 %IF VAL < 0
				ldr	w0, [x20, 64]
				tbz	w0, #31, .L583
				mvn	w0, w0
				str	w0, [x20, 64]
				eor	w23, w23, 256
		.L583:
  661           FAULT('I') %IF TYPE # 0 %OR VAL > 15
				ldr	w0, [x20, 68]
				cbnz	w0, .L586
				ldr	w0, [x20, 64]
				cmp	w0, 15
				ble	.L587
		.L586:
				mov	x18, x20
				mov	w0, 73
				bl	FAULT.45
		.LVL553:
		.L585:
		.L587:
  662        %FINISH
  663        TYPE = TYPE1+16_8000;  VAL = VAL1&16_FF0F+VAL<<4
				add	w22, w22, 32768
				ldr	w0, [x20, 64]
				mov	w1, 65295
				and	w1, w23, w1
				add	w0, w1, w0, lsl 4
				stp	w0, w22, [x20, 64]
  664     %finish %ELSE %IF TYPE1&OPMASK = 16_F000 %START
				cmp	w0, 61440
				bne	.L652
				b	.L523
		.L582:
		.LDL133:
  665        PROGREF %IF VAL1&16_FC0F = 16_0003; !BAL,BTC,BFC
				mov	w0, 64527
				and	w0, w23, w0
				cmp	w0, 3
				beq	.L653
		.L588:
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				bl	PROGREF.27
		.LVL556:
				b	.L588
		.L589:
  666        FORM INST(VAL1)
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				mov	w0, w23
				bl	FORMINST.21
		.LVL552:
  667     %finish %ELSE FAULT('I')
				b	.L523
		.L579:
				mov	x18, x20
				mov	w0, 73
				bl	FAULT.45
		.LVL555:
				b	.L523
		.L653:
  668     ->POP
  669 
  670 ASS(-23):                             !MACHINE INST
  671     SET JUMP(16_1000) %IF COND # 0
				ldr	w0, [x20, 48]
				cbnz	w0, .L654
		.L590:
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				mov	w0, 4096
				bl	SETJUMP.26
		.LVL558:
				b	.L590
		.L591:
  672     PLANT VAL
				mov	x18, x20
				bl	PLANTVAL.1
		.LVL557:
  673     CREG = -1;  ATYPE = -1
				mov	w0, -1
				stp	w0, w0, [x20, 56]
  674     %RETURN
				b	.L497
		.L654:
  675 
  676 ASS(-24):                             !LOAD
  677     LOAD TEMP %IF TYPE # REG
				ldr	w0, [x20, 68]
				cmp	w0, 128
				beq	.L592
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				bl	LOADTEMP.22
		.LVL559:
				ldr	w23, [sp, 120]
				ldr	w22, [sp, 124]
		.L592:
  678     Q = QBASE
				adrp	x0, .LANCHOR0+292
				ldr	w27, [x0, #:lo12:.LANCHOR0+292]
		.LVL560:
  679     ->GET
				b	.L502
		.LVL561:
		.L593:
  680 
  681 ASS(-25):                             !STORE (TYPE1,VAL1 -> TYPE,VAL)
  682     %IF TYPE = REG %START
				ldr	w0, [x20, 68]
				cmp	w0, 128
				beq	.L594
		.LDL134:
  683        SWOP %AND LOAD REG(VAL1) %IF VAL1 # VAL
				ldr	w0, [x20, 64]
				cmp	w0, w23
				beq	.L497
				stp	w23, w22, [sp, 120]
				add	x19, sp, 112
		.LVL567:
				mov	x18, x19
				bl	SWOP.23
		.LVL568:
				mov	x18, x19
				ldr	w0, [sp, 120]
				bl	LOADREG.24
		.LVL569:
				b	.L497
		.LVL570:
		.L597:
  684     %finish %ELSE %START
  685        ATYPE = -1 %IF ATYPE&MEMMASK # 0
				ldr	w1, [x20, 60]
				tbz	x1, 6, .L595
				mov	w1, -1
				str	w1, [x20, 60]
		.L595:
  686        %IF FLAG = 0 %START
				ldr	w1, [x20, 52]
				cbz	w1, .L597
		.LDL135:
  687           %IF VAL1 = ACC %AND ATYPE < 0 %START
				ldr	w1, [x20, 40]
				cmp	w1, w23
				bne	.L601
				ldr	w1, [x20, 60]
				tbz	w1, #31, .L601
  688              K = TYPE&15
		.LVL571:
  689              ATYPE = TYPE %AND AVAL = VAL %IF K = 0 %OR 1<<K&TEMPS = 0
				ands	w2, w0, 15
		.LVL572:
				beq	.L600
				adrp	x1, .LANCHOR1
				ldr	w1, [x1, #:lo12:.LANCHOR1]
				asr	w1, w1, w2
				tbnz	x1, 0, .L601
		.L600:
				str	w0, [x20, 60]
				ldr	w1, [x20, 64]
				str	w1, [x20, 44]
		.L599:
		.LVL573:
		.L601:
  690           %FINISH
  691           OP = STORE;  OP = STB %IF TYPE&BMASK # 0
				tst	x0, 256
				mov	w0, 37378
				mov	w1, 2
				csel	w0, w0, w1, ne
				b	.L598
		.LVL574:
		.L602:
  692        %finish %ELSE %START
  693           CREG = 16;  CTYPE = TYPE;  CVAL = VAL
				mov	w1, 16
				str	w1, [x20, 56]
				ldr	w1, [x20, 64]
				stp	w1, w0, [x20, 32]
  694           OP = AHM
		.LVL562:
				mov	w0, 8450
		.LVL563:
		.L598:
  695        %FINISH
  696        PLANT INST(VAL1<<4+OP)
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				add	w0, w0, w23, lsl 4
		.LVL564:
				bl	PLANTINST.25
		.LVL565:
				b	.L497
		.LVL566:
		.L594:
  697     %FINISH
  698     %RETURN
  699 
  700 ASS(-26):                             !JUMP
  701     SET JUMP(16_1000) %IF INTEGER(NP)&16_F000 = 16_3000; !OR
				adrp	x0, .LANCHOR0+236
				ldr	w0, [x0, #:lo12:.LANCHOR0+236]
				bl	INTEGER.39
		.LVL575:
				and	w0, w0, 61440
				cmp	w0, 12288
				beq	.L655
		.L603:
				stp	w23, w22, [sp, 120]
				add	x18, sp, 112
				mov	w0, 4096
				bl	SETJUMP.26
		.LVL584:
				b	.L603
		.LVL585:
		.L656:
  702     %IF FLAG < 0 %START;              !REPEAT
				ldr	w0, [x20, 52]
				tbz	w0, #31, .L609
  703        FLAG = 0
				str	wzr, [x20, 52]
  704        %IF PASS = 0 %START
				adrp	x0, .LANCHOR1+8
				ldr	w0, [x0, #:lo12:.LANCHOR1+8]
				cbnz	w0, .L609
  705           K = NP;  LITVAL = LOC
				adrp	x0, .LANCHOR0+236
				ldr	w0, [x0, #:lo12:.LANCHOR0+236]
		.LVL576:
				ldr	w21, [x20, 76]
		.LVL577:
				mov	w19, w21
				add	w21, w21, w0
		.LVL578:
		.L605:
  706           %WHILE INTEGER(K)&16_1000 # 0 %CYCLE
				sub	w0, w21, w19
		.LVL579:
				bl	INTEGER.39
		.LVL580:
				tbz	x0, 12, .L656
		.LDL136:
  707              K = K+2;  LITVAL = LITVAL-2
		.LVL581:
				sub	w19, w19, #2
		.LVL582:
  708           %REPEAT
				b	.L605
		.LVL583:
		.L655:
  709           FLAG = 1 %IF LITVAL-VAL < 32
				ldr	w0, [x20, 64]
				sub	w19, w19, w0
		.LVL586:
				cmp	w19, 31
				bgt	.L609
				mov	w0, 1
				str	w0, [x20, 52]
		.L604:
		.L608:
		.LVL587:
		.L609:
  710        %FINISH
  711     %FINISH
  712     PROGREF
				stp	w23, w22, [sp, 120]
				add	x19, sp, 112
				mov	x18, x19
				bl	PROGREF.27
		.LVL588:
  713     PLANT JUMP
				mov	x18, x19
				bl	PLANTJUMP.28
		.LVL589:
  714     %RETURN
				b	.L497
		.LVL590:
		.L610:
		.L616:
  715 
  716 %END;  !ASSEMBLE
  717 
  718 %ROUTINE LOOKUP(%INTEGER CONTROL)
				stp	x29, x30, [sp, -48]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				str	x21, [sp, 32]
				mov	w21, w0
				mov	x20, x18
  719 !ALL DICT OPERATIONS LOCALISED HERE
  720 !CONTROL = 0 (LOOKUP ONLY), 1 (FORWARD OK),
  721 !          2 (REDEF), 3 (DEF),
  722 !          4 (MACPARM), 7 (LABEL)
  723 %INTEGER DP
  724     DP = DEFMIN;  DP = MP+5 %IF CONTROL = 4
		.LVL130:
				cmp	w0, 4
				beq	.L157
				adrp	x0, .LANCHOR0+256
		.LVL131:
				ldr	w19, [x0, #:lo12:.LANCHOR0+256]
				b	.L165
		.LVL132:
		.L157:
				adrp	x0, .LANCHOR0+272
		.LVL133:
				ldr	w19, [x0, #:lo12:.LANCHOR0+272]
				add	w19, w19, 5
				b	.L165
		.LVL134:
		.L179:
  725     
				adrp	x0, :got:_imp_current_file;ldr	x0, [x0, :got_lo12:_imp_current_file]
		
				ldr	x3, [x0]
				adrp	x0, .LC6
				add	x0, x0, :lo12:.LC6
				cmp	x3, 0
				csel	x3, x0, x3, eq
				adrp	x0, :got:_imp_current_line;ldr	x0, [x0, :got_lo12:_imp_current_line]
		
				ldr	w0, [x0]
				cmp	w0, 0
				mov	w4, 725
				csel	w4, w0, w4, ne
				mov	w2, w19
				adrp	x1, .LC8
				add	x1, x1, :lo12:.LC8
				adrp	x0, :got:stderr;ldr	x0, [x0, :got_lo12:stderr]
		
				ldr	x0, [x0]
				bl	fprintf
		.LVL591:
  726 {}    %WHILE INTEGER(DP) # 0 %CYCLE
		.LDL32:
				mov	w0, w19
				bl	INTEGER.39
		.LVL139:
				cbz	w0, .L179
				mov	w0, 1
				bl	exit
		.LVL592:
		.L611:
				b	.L616
		.L612:
				b	.L616
		.L613:
				b	.L616
		.L614:
				b	.L616
		.L615:
				b	.L616
		.L539:
				str	wzr, [x20, 68]
  727 {}       ->YES %IF INTEGER(DP) = TAG1 %AND INTEGER(DP+1) = TAG2
				mov	w0, w19
				bl	INTEGER.39
		.LVL140:
				ldr	w1, [x20, 16]
				cmp	w0, w1
				bne	.L162
				add	w0, w19, 1
				bl	INTEGER.39
		.LVL141:
				ldr	w1, [x20, 12]
				cmp	w0, w1
				bne	.L162
		.LDL33:
  728 {}       DP = DP+4
				add	w19, w19, 4
		.LVL138:
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
				ldp	x23, x24, [sp, 48]
		.LVL539:
				ldp	x25, x26, [sp, 64]
				ldp	x27, x28, [sp, 80]
				ldp	x29, x30, [sp], 144
				ret
		.LVL540:
		.L567:
  729 {}    %REPEAT
		.L165:
  730 
  731 !!%OWNINTEGER P
  732 !!    DP = DP-4
  733 !!REP:DP = DP+4
  734 !!    %LAC* DP; %OPR 640;!SNA; %JMP NO
  735 !!    %SAD TAG1; %OPR 512; %JMP REP
  736 !!    %LAC DP; %TAD #1; %DAC P
  737 !!    %LAC* P; %SAD TAG2; %JMP YES
  738 !!    ->REP
  739 !!NO:
  740     %RETURN %IF CONTROL&1 = 0;        !NO CREATION
				tbnz	x21, 0, .L160
		.LVL135:
		.L156:
  741 NEW:DEFMIN = DEFMIN-4;  DP = DEFMIN
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				ldr	w21, [x0, 256]
		.LVL148:
				sub	w19, w21, #4
		.LVL149:
				str	w19, [x0, 256]
		.LVL150:
  742 !!    %MONITOR 21 %IF DP-QLIM <= 0
  743     !{}%signal 2,1 %IF DP-QLIM <= 0
  744 !!    INTEGER(DP) = TAG1;  INTEGER(DP+1) = TAG2
  745     set INTEGER(DP, TAG1);  set INTEGER(DP+1,  TAG2)
				ldr	w1, [x20, 16]
				mov	w0, w19
				bl	SETINTEGER.8
		.LVL151:
				ldr	w1, [x20, 12]
				sub	w0, w21, #3
				bl	SETINTEGER.8
		.LVL152:
		.L166:
  746 !!SET:INTEGER(DP+2) = TYPE;  INTEGER(DP+3) = VAL
  747 SET:set INTEGER(DP+2, TYPE);  set INTEGER(DP+3, VAL)
				ldr	w1, [x20, 68]
				add	w0, w19, 2
				bl	SETINTEGER.8
		.LVL153:
				ldr	w1, [x20, 64]
				add	w0, w19, 3
				bl	SETINTEGER.8
		.LVL154:
  748     %RETURN
				b	.L156
		.LVL155:
		.L182:
  749 YES:%IF CONTROL&2 = 0 %START;         !NOT DEF CLASS
				tbz	x21, 1, .L180
		.LDL34:
  750        TYPE = INTEGER(DP+2);  VAL = INTEGER(DP+3)
				add	w0, w19, 2
				bl	INTEGER.39
		.LVL145:
				str	w0, [x20, 68]
				add	w0, w19, 3
				bl	INTEGER.39
		.LVL146:
				str	w0, [x20, 64]
  751        %RETURN
				b	.L156
		.L181:
  752     %FINISH
  753     %IF CONTROL = 3 %START
				cmp	w21, 3
				beq	.L181
		.L167:
  754        ->NEW %IF DP-INTEGER(BP) >= 0; !GLOBAL
				adrp	x0, .LANCHOR0+248
				ldr	w0, [x0, #:lo12:.LANCHOR0+248]
				bl	INTEGER.39
		.LVL147:
				cmp	w19, w0
				blt	.L182
		.L160:
		.LDL38:
		.LDL39:
  755        FAULT('D')
				mov	x18, x20
				mov	w0, 68
				bl	FAULT.45
		.LVL156:
  756     %FINISH
  757     ->SET %IF CONTROL # 7
				cmp	w21, 7
				bne	.L166
		.LDL35:
				b	.L166
		.L169:
  758     %IF INTEGER(DP+2)&OPFMASK = FMASK %START
				add	w0, w19, 2
				bl	INTEGER.39
		.LVL142:
				and	w0, w0, 63488
				cmp	w0, 2048
				beq	.L169
		.LDL36:
  759        VAL = INTEGER(DP+3)
				add	w0, w19, 3
				bl	INTEGER.39
		.LVL157:
				str	w0, [x20, 64]
  760        %IF PASS = 0 %START
				adrp	x1, .LANCHOR1+8
				ldr	w1, [x1, #:lo12:.LANCHOR1+8]
				cbz	w1, .L171
		.LDL40:
  761 !!          INTEGER(VAL) = LOC
  762           set INTEGER(VAL, LOC)
				ldr	w1, [x20, 76]
				bl	SETINTEGER.8
		.LVL161:
  763        %finish %ELSE %START
		.L172:
		.L174:
  764           FAULT('P') %AND LOC=INTEGER(VAL) %IF INTEGER(VAL) # LOC
				bl	INTEGER.39
		.LVL158:
				ldr	w1, [x20, 76]
				cmp	w0, w1
				beq	.L174
				mov	x18, x20
				mov	w0, 80
				bl	FAULT.45
		.LVL159:
				ldr	w0, [x20, 64]
				bl	INTEGER.39
		.LVL160:
				str	w0, [x20, 76]
				b	.L174
		.L171:
  765        %FINISH
  766        VAL = LOC
				ldr	w0, [x20, 76]
				str	w0, [x20, 64]
  767     %finish %ELSE %START
				b	.L166
		.LFE232:
				.align	2
		TAG.34:
		.LFB237:
  768        ->NEW %IF DP-INTEGER(BP) >= 0
				adrp	x0, .LANCHOR0+248
				ldr	w0, [x0, #:lo12:.LANCHOR0+248]
				bl	INTEGER.39
		.LVL143:
				cmp	w19, w0
				bge	.L160
		.LDL37:
  769        FAULT('D')
				mov	x18, x20
				mov	w0, 68
				bl	FAULT.45
		.LVL144:
				b	.L166
		.L180:
  770     %FINISH
  771     ->SET
  772 %END
  773 
  774 %ROUTINE TAGREF
				ldp	x19, x20, [sp, 16]
		.LVL136:
				ldr	x21, [sp, 32]
				ldp	x29, x30, [sp], 48
				ret
		.LVL137:
		.L162:
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				str	x19, [sp, 16]
				mov	x19, x18
  775 %OWNINTEGER B=2184, W=24717
  776     %IF TERM = '(' %START
				ldr	w0, [x18, 8]
				cmp	w0, 40
				bne	.L211
  777        TYPE = 0;  VAL = 0
				stp	wzr, wzr, [x18, 64]
  778        %RETURN %IF TAG1 = W
				ldr	w0, [x18, 16]
				mov	w1, 24717
				cmp	w0, w1
				beq	.L210
		.LDL46:
  779        TYPE = BMASK
				mov	w1, 256
				str	w1, [x18, 68]
  780        %RETURN %IF TAG1 = B
				cmp	w0, 2184
				beq	.L210
		.L211:
		.LDL47:
  781     %FINISH
  782     TYPE = LOCTYPE+FMASK+UMASK;  VAL = LABMIN-1
				ldr	w1, [x19, 72]
				add	w1, w1, 2560
				adrp	x0, .LANCHOR0+276
				ldr	w0, [x0, #:lo12:.LANCHOR0+276]
				sub	w0, w0, #1
				stp	w0, w1, [x19, 64]
  783     LOOKUP(1)
				mov	x18, x19
				mov	w0, 1
				bl	LOOKUP.32
		.LVL170:
  784     %IF TYPE&OPFMASK = FMASK %START
				ldr	w0, [x19, 68]
				and	w0, w0, 63488
				cmp	w0, 2048
				bne	.L210
  785        %IF VAL = LABMIN-1 %START
				ldr	w0, [x19, 64]
				adrp	x1, .LANCHOR0+276
				ldr	w1, [x1, #:lo12:.LANCHOR0+276]
				sub	w1, w1, #1
				cmp	w1, w0
				bne	.L213
  786 !!          LABMIN = VAL;  %MONITOR 22 %IF LABMIN = ALMAX
  787           LABMIN = VAL;  !{}%signal 2,2 %IF LABMIN = ALMAX
				adrp	x1, .LANCHOR0+276
				str	w0, [x1, #:lo12:.LANCHOR0+276]
		.L213:
  788        %FINISH
  789        %IF PASS > 0 %START
				adrp	x1, .LANCHOR1+8
				ldr	w1, [x1, #:lo12:.LANCHOR1+8]
				cmp	w1, 0
				ble	.L215
  790           VAL = INTEGER(VAL)
				bl	INTEGER.39
		.LVL171:
				str	w0, [x19, 64]
  791           FAULT('U') %IF VAL = 0
				cbz	w0, .L217
		.L214:
		.L215:
				mov	x18, x19
				mov	w0, 85
				bl	FAULT.45
		.LVL172:
				b	.L215
		.LFE233:
				.align	2
		GETEXP.16:
		.LFB242:
  792        %FINISH
  793        TYPE = TYPE-FMASK
				ldr	w0, [x19, 68]
				sub	w0, w0, #2048
				str	w0, [x19, 68]
  794     %FINISH
  795 %END
  796 
		.L212:
		.L210:
  797 %ROUTINE GET SYM
				stp	x29, x30, [sp, -48]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				str	x21, [sp, 32]
				mov	x21, x18
				ldr	x19, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.L217:
  798     %CYCLE
				ldr	w19, [x20, 240]
				mov	w0, w19
				bl	CHAR.6
		.LVL48:
				str	w0, [x21, 4]
				add	w19, w19, 1
				str	w19, [x20, 240]
  799        SYM = CHAR(GETPOS);  GETPOS = GETPOS+1
				adrp	x20, .LANCHOR0
				add	x20, x20, :lo12:.LANCHOR0
		.L56:
		.LDL7:
  800        %RETURN %IF SYM # ' '
				cmp	w0, 32
				beq	.L56
  801     %REPEAT
  802 %END
  803 
  804 %PREDICATE S(%INTEGER K)
				ldp	x19, x20, [sp, 16]
				ldr	x21, [sp, 32]
				ldp	x29, x30, [sp], 48
				ret
		.LFE234:
				.align	2
		S.33:
		.LVL49:
		.LFB235:
				stp	x29, x30, [sp, -16]!
				mov	x29, sp
  805     %FALSE %UNLESS K = SYM
				ldr	w1, [x18, 4]
				cmp	w1, w0
				beq	.L66
				mov	w0, 0
		.LVL50:
		.LDL8:
  806     GET SYM
				bl	GETSYM.7
		.LVL52:
  807     %TRUE
				mov	w0, 1
				ldp	x29, x30, [sp], 16
				ret
		.LFE235:
				.align	2
		SS.17:
		.LVL53:
		.LFB236:
  808 %END
  809 
				ret
		.LVL51:
		.L66:
  810 %PREDICATE SS(%INTEGER K)
				stp	x29, x30, [sp, -48]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				mov	w20, w0
				mov	x19, x18
  811     %FALSE %UNLESS K = SYM = CHAR(GETPOS)
		.LBB66:
		.LVL54:
				ldr	w21, [x18, 4]
		.LVL55:
				adrp	x0, .LANCHOR0+240
		.LVL56:
				ldr	w22, [x0, #:lo12:.LANCHOR0+240]
				mov	w0, w22
				bl	CHAR.6
		.LVL57:
				cmp	w20, w21
		.LBE66:
				ccmp	w21, w0, 4, eq
				mov	w0, 0
		.LVL58:
		.L68:
				beq	.L71
		.L67:
		.LDL9:
  812     GETPOS = GETPOS+1
				add	w22, w22, 1
				adrp	x0, .LANCHOR0+240
				str	w22, [x0, #:lo12:.LANCHOR0+240]
  813     GET SYM
				mov	x18, x19
				bl	GETSYM.7
		.LVL62:
  814     %TRUE
				mov	w0, 1
				b	.L67
		.LFE236:
				.align	2
		CODESYM.36:
		.LFB238:
  815 %END
  816 
				ldp	x19, x20, [sp, 16]
		.LVL59:
				ldp	x21, x22, [sp, 32]
		.LVL60:
				ldp	x29, x30, [sp], 48
				ret
		.LVL61:
		.L71:
  817 %PREDICATE TAG
				stp	x29, x30, [sp, -112]!
				mov	x29, sp
				add	x0, sp, 112
				str	x0, [sp, 104]
				str	x18, [sp, 88]
  818 %INTEGER J,K
  819     %ROUTINE CODE SYM
				stp	x29, x30, [sp, -48]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				str	x21, [sp, 32]
				mov	x19, x18
  820        SYM = CHAR(GETPOS);  GETPOS = GETPOS+1
				adrp	x20, .LANCHOR0
				add	x20, x20, :lo12:.LANCHOR0
				ldr	w21, [x20, 240]
				mov	w0, w21
				bl	CHAR.6
		.LVL63:
				ldr	x1, [x19]
				str	w0, [x1, 4]
				add	w21, w21, 1
				str	w21, [x20, 240]
  821        K = SYM-'0'
				ldr	x1, [x19]
				ldr	w0, [x1, 4]
				sub	w0, w0, #48
				str	w0, [x19, 12]
  822        %IF K >= 0 %START
				tbnz	w0, #31, .L77
  823           TERM = -1 %AND %RETURN %IF K < 10
				cmp	w0, 9
				bgt	.L80
				mov	w0, -1
				str	w0, [x1, 8]
		.L72:
		.LDL10:
  824           K = SYM-'A'
				ldr	w0, [x1, 4]
				sub	w0, w0, #65
				str	w0, [x19, 12]
  825           %RETURN %IF K >= 0 %AND K < 26 %AND TERM = 0
				cmp	w0, 25
				bls	.L81
		.L73:
		.L77:
				ldr	w0, [x1, 8]
				cbz	w0, .L72
				b	.L77
		.LFE238:
				.align	2
		PACKTRIPLE.35:
		.LFB239:
  826        %FINISH
  827        TERM = SYM
				ldr	w0, [x1, 4]
				str	w0, [x1, 8]
  828     %END
				b	.L72
		.L81:
  829     %ROUTINE PACK TRIPLE
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				str	x19, [sp, 16]
				mov	x19, x18
				ldr	x0, [x18]
				ldr	w0, [x0, 8]
				tbnz	w0, #31, .L83
		.LDL11:
  830        ->T1 %IF TERM < 0
				ldp	x19, x20, [sp, 16]
				ldr	x21, [sp, 32]
				ldp	x29, x30, [sp], 48
				ret
		.L80:
		.LDL14:
  831        J = ((K<<5+K)<<1+K)<<4+K+1111; !K*1073+1111
				ldr	w1, [x18, 12]
				add	w0, w1, w1, lsl 5
				add	w0, w1, w0, lsl 1
				add	w0, w1, w0, lsl 4
				add	w0, w0, 1111
				str	w0, [x18, 8]
  832        CODE SYM
				bl	CODESYM.36
		.LVL64:
  833        ->T2 %IF TERM # 0
				ldr	x0, [x19]
				ldr	w0, [x0, 8]
				cbnz	w0, .L85
		.LDL12:
  834        J = (K<<3+K)<<2+K+111+J;       !J+K*37+111
				ldp	w1, w2, [x19, 8]
				add	w0, w2, w2, lsl 3
				add	w0, w2, w0, lsl 2
				add	w0, w0, 111
				add	w0, w1, w0
				str	w0, [x19, 8]
  835        CODE SYM
				mov	x18, x19
				bl	CODESYM.36
		.LVL65:
  836        ->T3 %IF TERM # 0
				ldr	x0, [x19]
				ldr	w0, [x0, 8]
				cbz	w0, .L89
		.L86:
		.LDL15:
  837        J = J+K+11
				ldp	w0, w1, [x19, 8]
				add	w0, w0, w1
				add	w0, w0, 11
				str	w0, [x19, 8]
  838        CODE SYM
				mov	x18, x19
				bl	CODESYM.36
		.LVL68:
  839        %RETURN
				b	.L82
		.L90:
  840 T1:    J = ((K<<1+K)<<1+K)<<4-K+1;    !K*111+1
				ldr	w1, [x18, 12]
				add	w0, w1, w1, lsl 1
				add	w0, w1, w0, lsl 1
				lsl	w0, w0, 4
				sub	w0, w0, w1
				add	w0, w0, 1
				str	w0, [x18, 8]
  841        CODE SYM
				bl	CODESYM.36
		.LVL67:
		.L85:
  842 T2:    %RETURN %IF TERM > 0
				ldr	x0, [x19]
				ldr	w0, [x0, 8]
				cmp	w0, 0
				ble	.L90
		.L82:
		.LDL16:
  843        J = (K<<2+K)<<1+K+1+J;         !J+K*11+1
				ldp	w1, w2, [x19, 8]
				add	w0, w2, w2, lsl 2
				add	w0, w2, w0, lsl 1
				add	w0, w0, 1
				add	w0, w1, w0
				str	w0, [x19, 8]
  844        CODE SYM
				mov	x18, x19
				bl	CODESYM.36
		.LVL69:
				b	.L86
		.LFE239:
				.align	2
		TAGIF.12:
		.LFB240:
  845 T3:    %RETURN %IF TERM > 0
				ldr	x0, [x19]
				ldr	w0, [x0, 8]
				cmp	w0, 0
				bgt	.L82
		.LDL13:
  846        J = J+K+1
				ldp	w0, w1, [x19, 8]
				add	w0, w0, w1
				add	w0, w0, 1
				str	w0, [x19, 8]
  847        CODE SYM
				mov	x18, x19
				bl	CODESYM.36
		.LVL66:
  848     %END
				b	.L82
		.L83:
  849     K = SYM-'A'
				ldr	w2, [x18, 4]
				sub	w1, w2, #65
				str	w1, [sp, 100]
  850     %FALSE %UNLESS K >= 0 %AND K < 26
				ldr	x19, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.L89:
				mov	w0, 0
				cmp	w1, 25
				bls	.L206
		.L183:
		.LDL41:
  851     %FALSE %IF SYM = 'X' %AND CHAR(GETPOS)&128 # 0
				cmp	w2, 88
				bne	.L185
				adrp	x0, .LANCHOR0+240
				ldr	w0, [x0, #:lo12:.LANCHOR0+240]
				bl	CHAR.6
		.LVL162:
				mov	w1, w0
				mov	w0, 0
				tbz	x1, 7, .L185
				ldp	x19, x20, [sp, 16]
				b	.L183
		.L185:
				stp	x21, x22, [sp, 32]
				stp	x23, x24, [sp, 48]
				str	x25, [sp, 64]
  852     TERM = 0
				str	wzr, [x19, 8]
  853     PACK TRIPLE
				str	wzr, [sp, 96]
				add	x18, sp, 88
				bl	PACKTRIPLE.35
		.LVL163:
  854     TAG1 = J
				ldr	w0, [sp, 96]
				str	w0, [x19, 16]
  855     %CYCLE
  856        J = 0
				mov	w22, 0
				mov	w20, w22
  857        PACK TRIPLE %IF TERM <= 0
				add	x21, sp, 88
				str	w22, [sp, 96]
				mov	x18, x21
				bl	PACKTRIPLE.35
		.LVL164:
				ldr	w20, [sp, 96]
				b	.L187
		.L209:
				ldr	w0, [x19, 8]
				cmp	w0, 0
				ble	.L208
		.L187:
  858        TAG2 = J
				str	w20, [x19, 12]
  859        CODE SYM %WHILE TERM <= 0
				ldr	w1, [x19, 8]
				cmp	w1, 0
				bgt	.L191
		.L188:
				str	w20, [sp, 96]
				mov	x18, x21
				bl	CODESYM.36
		.LVL166:
				ldr	w20, [sp, 96]
		.LDL43:
				ldr	w1, [x19, 8]
				cmp	w1, 0
				ble	.L188
		.L191:
		.LDL44:
  860        %EXIT %UNLESS TERM = QQ
				adrp	x23, .LANCHOR1
				add	x23, x23, :lo12:.LANCHOR1
		.LDL42:
				ldr	w0, [x23, 12]
				cmp	w0, w1
				bne	.L209
		.LDL45:
  861        TYPE = 1;  LOOKUP(0)
				mov	w24, 1
				str	w24, [x19, 68]
				mov	x18, x19
				mov	w0, w22
				bl	LOOKUP.32
		.LVL167:
  862        FAULT('U') %IF TYPE # 0
				mov	w25, 85
				b	.L186
		.L208:
				ldr	w0, [x19, 68]
				cbz	w0, .L192
				mov	x18, x19
				mov	w0, w25
				bl	FAULT.45
		.LVL168:
				b	.L192
		.L207:
  863        TAG1 = VAL
				ldr	w0, [x19, 64]
				str	w0, [x19, 16]
  864        TERM = 0;  CODE SYM
				str	wzr, [x19, 8]
				str	w20, [sp, 96]
				mov	x18, x21
				bl	CODESYM.36
		.LVL165:
  865     %REPEAT
		.L186:
  866     GET SYM %IF TERM = ' '
				cmp	w1, 32
				beq	.L207
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
				ldp	x23, x24, [sp, 48]
				ldr	x25, [sp, 64]
				b	.L183
		.L192:
				mov	x18, x19
				bl	GETSYM.7
		.LVL169:
  867     %TRUE
				mov	w0, 1
		.L184:
				mov	w0, 1
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
				ldp	x23, x24, [sp, 48]
				ldr	x25, [sp, 64]
				b	.L183
		.LFE237:
				.align	2
		TAGREF.13:
		.LFB233:
  868 %END
  869 
				ldp	x29, x30, [sp], 112
				ret
		.L206:
				stp	x19, x20, [sp, 16]
				mov	x19, x18
  870 %PREDICATE TAGIF
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				mov	x19, x18
				adrp	x0, .LANCHOR0+240
				ldr	w20, [x0, #:lo12:.LANCHOR0+240]
				mov	w0, w20
				bl	CHAR.6
		.LVL70:
				mov	w1, w0
				mov	w0, 0
				cmp	w1, 70
				bne	.L91
				add	w0, w20, 1
				bl	CHAR.6
		.LVL71:
				mov	w1, w0
				mov	w0, 0
				cmp	w1, 32
				beq	.L100
		.L91:
  871     %FALSE %UNLESS SYM='I' %AND CHAR(GETPOS)='F' %AND CHAR(GETPOS+1)=' '
				ldr	w1, [x18, 4]
				mov	w0, 0
				cmp	w1, 73
				bne	.L97
		.LDL17:
  872     GETPOS = GETPOS+2
				add	w20, w20, 2
				adrp	x0, .LANCHOR0+240
				str	w20, [x0, #:lo12:.LANCHOR0+240]
  873     GET SYM
				mov	x18, x19
				bl	GETSYM.7
		.LVL72:
  874     %TRUE
				mov	w0, 1
				b	.L91
		.L97:
				ret
		.LFE240:
				.align	2
		QUEUE.9:
		.LVL73:
		.LFB241:
  875 %END
  876 
				ldp	x19, x20, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.L100:
  877 %ROUTINE QUEUE(%INTEGER K)
				stp	x29, x30, [sp, -32]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
  878 !!    INTEGER(QLIM) = K
  879     set INTEGER(QLIM, K)
				adrp	x19, .LANCHOR0
				add	x19, x19, :lo12:.LANCHOR0
				ldr	w20, [x19, 244]
				mov	w1, w0
				mov	w0, w20
		.LVL74:
				bl	SETINTEGER.8
		.LVL75:
  880 !!    QLIM = QLIM+1;  %MONITOR 21 %IF QLIM = DEFMIN
  881     QLIM = QLIM+1;  !{}%signal 2,1 %IF QLIM = DEFMIN
				add	w20, w20, 1
				str	w20, [x19, 244]
  882 %END
  883 
  884 %ROUTINE GET EXP
				ldp	x19, x20, [sp, 16]
				ldp	x29, x30, [sp], 32
				ret
		.LFE241:
				.align	2
		SCANARG.31:
		.LFB246:
				stp	x29, x30, [sp, -64]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				mov	x19, x18
  885 %INTEGER I,NBASE
  886 
  887     NBASE = NP
				adrp	x0, .LANCHOR0+236
				ldr	w21, [x0, #:lo12:.LANCHOR0+236]
		.LVL173:
  888     ->E3 %IF PEND # 0
				ldr	w0, [x18]
				cbz	w0, .L219
		.L220:
  889 E1: NEST(0) %WHILE S('(')
		.LDL49:
				mov	w20, 40
		.L224:
		.LDL74:
				mov	x18, x19
				mov	w0, w20
				bl	S.33
		.LVL222:
				cbnz	w0, .L316
				mov	w0, 0
				bl	NEST.0
		.LVL223:
				b	.L224
		.LVL224:
		.L308:
  890     NEST(-20) %IF S('#')
				mov	x18, x19
				mov	w0, 35
				bl	S.33
		.LVL178:
				cbz	w0, .L303
		.L222:
				mov	w0, -20
				bl	NEST.0
		.LVL181:
				b	.L222
		.L231:
  891     %IF TAG %START
				mov	x18, x19
				bl	TAG.34
		.LVL179:
				cbz	w0, .L220
		.LDL50:
  892 E3:    TAGREF %IF PEND >= 0
				ldr	w0, [x19]
				tbnz	w0, #31, .L227
				mov	x18, x19
				bl	TAGREF.13
		.LVL174:
		.L227:
  893        PEND = 0
				str	wzr, [x19]
  894        %IF TYPE = REG %AND TERM = '(' %START
				ldr	w0, [x19, 68]
				cmp	w0, 128
				bne	.L228
				ldr	w0, [x19, 8]
				cmp	w0, 40
				bne	.L229
  895           TYPE = 0 %IF SAVE&1 = 0;  VAL = VAL+VAL+SAVE
				adrp	x0, .LANCHOR1+4
				ldr	w1, [x0, #:lo12:.LANCHOR1+4]
				tbnz	x1, 0, .L230
				str	wzr, [x19, 68]
		.L230:
				ldr	w0, [x19, 64]
				add	w0, w1, w0, lsl 1
				str	w0, [x19, 64]
		.L228:
  896        %FINISH
  897        FAULT('I') %AND TYPE=0 %IF TYPE&OPMASK # 0
				ldr	w0, [x19, 68]
				tst	w0, 61440
				beq	.L231
				mov	x18, x19
				mov	w0, 73
				bl	FAULT.45
		.LVL175:
				str	wzr, [x19, 68]
  898        %IF MODE # 0 %START
				ldr	w0, [x19, 20]
				cbz	w0, .L235
		.L281:
				ldr	w0, [x19, 20]
				cbnz	w0, .L281
				b	.L236
		.LFE242:
				.align	2
		GETINST.14:
		.LFB244:
  899           %IF TYPE&REGXMASK # 0 %START
		.L232:
		.L234:
		.L235:
				ldr	w0, [x19, 68]
				mov	w1, 144
				tst	w0, w1
				beq	.L235
  900              I = TYPE&15;  I = VAL %IF I = 0
		.LVL182:
				ands	w0, w0, 15
		.LVL183:
				bne	.L233
				ldr	w0, [x19, 64]
		.LVL184:
		.L233:
  901              DUSE = DUSE+1 %IF I = DREG
				ldr	w1, [x19, 28]
				cmp	w0, w1
				bne	.L235
				ldr	w0, [x19, 24]
		.LVL185:
				add	w0, w0, 1
				str	w0, [x19, 24]
				b	.L235
		.LVL186:
		.L302:
  902           %FINISH
  903        %FINISH
  904        %IF TERM = '(' %START
				ldr	w0, [x19, 8]
				cmp	w0, 40
				beq	.L302
		.L236:
		.LDL48:
  905           GET SYM
				mov	x18, x19
				bl	GETSYM.7
		.LVL187:
  906           I = TYPE&31
				ldr	w20, [x19, 68]
				and	w22, w20, 31
		.LVL188:
  907           QUEUE(TYPE-I);  QUEUE(VAL)
				and	w0, w20, -32
				bl	QUEUE.9
		.LVL189:
				ldr	w0, [x19, 64]
				bl	QUEUE.9
		.LVL190:
  908           NEST(-21);  NEST(0)
				mov	w0, -21
				bl	NEST.0
		.LVL191:
				mov	w0, 0
				bl	NEST.0
		.LVL192:
  909           %IF I # 0 %START
				cbz	w22, .L219
  910              QUEUE(REG);  QUEUE(I&15)
				mov	w0, 128
				bl	QUEUE.9
		.LVL193:
				and	w0, w20, 15
				bl	QUEUE.9
		.LVL194:
  911              NEST(-1)
				mov	w0, -1
				bl	NEST.0
		.LVL195:
				b	.L219
		.LVL196:
		.L225:
  912           %FINISH
  913           ->E1
  914        %FINISH
  915     %finish %ELSE %IF '0' <= SYM <= '9' %START
				ldr	w0, [x19, 4]
				sub	w1, w0, #48
				cmp	w1, 9
				bhi	.L225
		.LDL52:
  916        TYPE = 0;  VAL = SYM-'0'
				sub	w0, w0, #48
				stp	w0, wzr, [x19, 64]
  917        %CYCLE
  918           SYM = CHAR(GETPOS)-'0'
				adrp	x22, .LANCHOR0
				add	x22, x22, :lo12:.LANCHOR0
		.L239:
				ldr	w20, [x22, 240]
				mov	w0, w20
				bl	CHAR.6
		.LVL180:
				sub	w0, w0, #48
				str	w0, [x19, 4]
  919           %EXIT %UNLESS 0 <= SYM <= 9
				cmp	w0, 9
				bgt	.L240
		.LDL51:
		.LDL54:
  920           VAL = (VAL<<2+VAL)<<1+SYM
				ldr	w1, [x19, 64]
				add	w1, w1, w1, lsl 2
				add	w1, w0, w1, lsl 1
				str	w1, [x19, 64]
  921           GETPOS = GETPOS+1
				add	w20, w20, 1
				str	w20, [x22, 240]
  922        %REPEAT
				b	.L239
		.L303:
  923        GET SYM
				mov	x18, x19
				bl	GETSYM.7
		.LVL199:
  924     %finish %ELSE %IF SYM = 'X' %START
				cmp	w0, 88
				beq	.L304
		.LDL53:
				b	.L236
		.L304:
				str	x23, [sp, 48]
  925        TYPE = 0;  VAL = 0
				stp	wzr, wzr, [x19, 64]
  926        %CYCLE
  927           SYM = CHAR(GETPOS)-128
				adrp	x22, .LANCHOR0
				add	x22, x22, :lo12:.LANCHOR0
				ldr	w20, [x22, 240]
				mov	w0, w20
				bl	CHAR.6
		.LVL234:
				sub	w1, w0, #128
				str	w1, [x19, 4]
  928           %EXIT %IF SYM < 0
		.LDL55:
				tbnz	w1, #31, .L244
		.LDL77:
  929           SYM = SYM-32 %IF SYM >= 96; !ENSURE UPPER-CASE
				cmp	w1, 95
				ble	.L317
				sub	w1, w0, #160
				str	w1, [x19, 4]
  930           %IF '0' <= SYM <= '9' %OR 'A' <= SYM <= 'F' %START
				cmp	w1, 57
				bgt	.L247
		.L247:
				sub	w0, w1, #65
				cmp	w0, 5
				bls	.L249
		.LDL78:
  931              VAL = VAL<<4+SYM-'0'
				ldr	w0, [x19, 64]
				add	w0, w1, w0, lsl 4
				sub	w0, w0, #48
				str	w0, [x19, 64]
				ldr	w0, [x19, 64]
				add	w0, w1, w0, lsl 4
  932              VAL = VAL-7 %IF SYM >= 'A'
				b	.L250
		.L241:
				sub	w0, w0, #55
				str	w0, [x19, 64]
		.L250:
  933           %finish %ELSE FAULT('H')
				mov	w23, 72
				b	.L243
		.L244:
				mov	x18, x19
				mov	w0, w23
				bl	FAULT.45
		.LVL235:
				b	.L250
		.L229:
  934           GETPOS = GETPOS+1
				add	w20, w20, 1
				str	w20, [x22, 240]
  935        %REPEAT
		.L243:
  936        GET SYM
				mov	x18, x19
				bl	GETSYM.7
		.LVL200:
  937     %finish %ELSE %IF SYM&128 # 0 %START
				tbz	x0, 7, .L241
				ldr	x23, [sp, 48]
				b	.L236
		.L317:
		.L245:
		.LDL56:
  938        TYPE = 0;  VAL = SYM-128
				sub	w0, w0, #128
				stp	w0, wzr, [x19, 64]
  939        GET SYM
				mov	x18, x19
				bl	GETSYM.7
		.LVL197:
  940        %IF MODE >= 0 %AND SYM&128 # 0 %START
				ldr	w0, [x19, 20]
				tbnz	w0, #31, .L236
				ldr	w1, [x19, 4]
				tbz	x1, 7, .L236
  941           VAL = VAL<<8+SYM-128;  GET SYM
				ldr	w0, [x19, 64]
				add	w0, w1, w0, lsl 8
				sub	w0, w0, #128
				str	w0, [x19, 64]
				mov	x18, x19
				bl	GETSYM.7
		.LVL198:
				b	.L236
		.L240:
  942        %FINISH
  943     %finish %ELSE %IF S('.') %START
				mov	x18, x19
				mov	w0, 46
				bl	S.33
		.LVL201:
				cbnz	w0, .L305
		.LDL58:
  944        ->ERR %IF %NOT TAG
				mov	x18, x19
				bl	TAG.34
		.LVL202:
				cbz	w0, .L255
		.LDL57:
  945        TYPE = 0;  VAL = TAG1
				ldr	w0, [x19, 16]
				stp	w0, wzr, [x19, 64]
  946     %finish %ELSE %IF S('*') %START
				b	.L236
		.L305:
				mov	x18, x19
				mov	w0, 42
				bl	S.33
		.LVL203:
				cbnz	w0, .L253
		.LDL59:
  947        TYPE = LOCTYPE&63;  VAL = LOC
				ldp	w0, w1, [x19, 72]
				and	w0, w0, 63
				stp	w1, w0, [x19, 64]
  948        %IF SYM = 'L' %START;          !FOR NOW
				ldr	w0, [x19, 4]
				cmp	w0, 76
				bne	.L236
  949           TYPE = 0;  VAL = LIST %IF TAG
				str	wzr, [x19, 68]
				mov	x18, x19
				bl	TAG.34
		.LVL204:
				cbnz	w0, .L236
				adrp	x0, .LANCHOR1+16
				ldr	w0, [x0, #:lo12:.LANCHOR1+16]
				str	w0, [x19, 64]
				b	.L236
		.L253:
  950        %FINISH
  951     %finish %ELSE %IF SYM = '-' %START
				ldr	w0, [x19, 4]
				cmp	w0, 45
				beq	.L306
		.LDL60:
  952        TYPE = 0;  VAL = 0
				stp	wzr, wzr, [x19, 64]
  953     %finish %ELSE %IF SYM = '\' %START
				cmp	w0, 92
				beq	.L307
		.L255:
		.LDL61:
		.LDL62:
				b	.L236
		.L307:
  954        TYPE = 0;  VAL = \0
				mov	w0, -1
				stp	w0, wzr, [x19, 64]
  955     %finish %ELSE ->ERR
				b	.L236
		.L260:
  956     QUEUE(TYPE);  QUEUE(VAL)
				ldr	w0, [x19, 68]
				bl	QUEUE.9
		.LVL176:
				ldr	w0, [x19, 64]
				bl	QUEUE.9
		.LVL177:
  957 
  958     %WHILE NP # NBASE %CYCLE
				adrp	x0, .LANCHOR0+236
				ldr	w0, [x0, #:lo12:.LANCHOR0+236]
				cmp	w0, w21
				beq	.L259
				cmp	w0, w21
				beq	.L259
		.L262:
  959        %IF INTEGER(NP) < 0 %START
				bl	INTEGER.39
		.LVL207:
				tbnz	w0, #31, .L260
		.LDL65:
  960           QUEUE(INTEGER(NP))
				adrp	x20, .LANCHOR0
				add	x20, x20, :lo12:.LANCHOR0
				ldr	w0, [x20, 236]
				bl	INTEGER.39
		.LVL205:
				bl	QUEUE.9
		.LVL206:
  961        %finish %ELSE %START
		.L261:
		.LDL63:
  962           %EXIT %IF %NOT S(')')
				mov	w22, 41
				b	.L262
		.L316:
				mov	x18, x19
				mov	w0, w22
				bl	S.33
		.LVL208:
				cbnz	w0, .L261
		.L259:
  963        %FINISH
  964        NP = NP+1
				ldr	w0, [x20, 236]
				add	w0, w0, 1
				str	w0, [x20, 236]
  965     %REPEAT
		.LDL64:
  966 
  967     I = 1
		.LVL209:
				mov	w20, 1
				mov	w20, 1
				mov	w20, 1
				mov	w20, 1
				mov	w20, 1
				mov	w20, 1
  968     NEST(-1) %AND ->E8 %IF S('+')
				mov	x18, x19
				mov	w0, 43
				bl	S.33
		.LVL210:
				mov	w20, w0
				cbz	w0, .L263
		.LDL66:
				mov	w0, -1
				bl	NEST.0
		.LVL220:
		.L266:
  969     NEST(-2) %AND ->E8 %IF S('-')
				mov	x18, x19
				mov	w0, 45
				bl	S.33
		.LVL211:
				mov	w20, w0
				cbz	w0, .L308
		.LDL67:
				mov	w0, -2
				bl	NEST.0
		.LVL225:
				b	.L266
		.L309:
  970     NEST(-3) %AND ->E9 %IF S('&')
				mov	x18, x19
				mov	w0, 38
				bl	S.33
		.LVL212:
				cbz	w0, .L309
		.LDL68:
				mov	w0, -3
				bl	NEST.0
		.LVL226:
				b	.L266
		.L310:
  971     NEST(-4) %AND ->E9 %IF S('!')
				mov	x18, x19
				mov	w0, 33
				bl	S.33
		.LVL213:
				cbz	w0, .L310
		.LDL69:
				mov	w0, -4
				bl	NEST.0
		.LVL227:
				b	.L266
		.L311:
  972     NEST(-5) %AND ->E9 %IF S('\')
				mov	x18, x19
				mov	w0, 92
				bl	S.33
		.LVL214:
				cbz	w0, .L311
		.LDL70:
				mov	w0, -5
				bl	NEST.0
		.LVL228:
				b	.L266
		.L312:
  973     NEST(-6) %AND ->E9 %IF SS('<')
				mov	x18, x19
				mov	w0, 60
				bl	SS.17
		.LVL215:
				cbz	w0, .L312
		.LDL71:
				mov	w0, -6
				bl	NEST.0
		.LVL229:
				b	.L266
		.L313:
  974     NEST(-7) %AND ->E9 %IF SS('>')
				mov	x18, x19
				mov	w0, 62
				bl	SS.17
		.LVL216:
				cbz	w0, .L313
		.LDL72:
				mov	w0, -7
				bl	NEST.0
		.LVL230:
				b	.L266
		.L314:
  975     NEST(-8) %AND ->E9 %IF S('_')
				mov	x18, x19
				mov	w0, 95
				bl	S.33
		.LVL217:
				cbz	w0, .L314
		.LDL73:
				mov	w0, -8
				bl	NEST.0
		.LVL231:
				b	.L266
		.LVL232:
		.L315:
  976     %RETURN %IF NP = NBASE
				adrp	x0, .LANCHOR0+236
				ldr	w0, [x0, #:lo12:.LANCHOR0+236]
				cmp	w0, w21
				bne	.L255
  977 ERR:NP = NBASE
				adrp	x0, .LANCHOR0+236
				str	w21, [x0, #:lo12:.LANCHOR0+236]
  978 !!    %MONITOR 19
  979 
  980 E8: I = 0
				mov	w20, 0
				b	.L266
		.L306:
  981 E9: ->E1 %UNLESS MODE = 2 %AND NP+1 = NBASE
				ldr	w0, [x19, 20]
				cmp	w0, 2
				bne	.L219
				adrp	x0, .LANCHOR0+236
				ldr	w0, [x0, #:lo12:.LANCHOR0+236]
				add	w0, w0, 1
				cmp	w0, w21
				beq	.L315
		.LVL221:
		.L219:
		.LDL75:
  982     %IF FLAG = I %THEN FLAG = QLIM %ELSE FLAG = -1
				ldr	w0, [x19, 52]
				cmp	w20, w0
				beq	.L280
		.LDL76:
				mov	w0, -1
				str	w0, [x19, 52]
				b	.L219
		.L280:
				adrp	x0, .LANCHOR0+244
				ldr	w0, [x0, #:lo12:.LANCHOR0+244]
				str	w0, [x19, 52]
				b	.L219
		.LVL233:
		.L249:
  983     ->E1
  984 %END
  985 
  986 %ROUTINE CONDIT(%INTEGER QVAL)
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
		.LVL218:
				ldp	x29, x30, [sp], 64
				ret
		.LVL219:
		.L263:
				stp	x29, x30, [sp, -96]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
				stp	x23, x24, [sp, 48]
				stp	x25, x26, [sp, 64]
				str	x27, [sp, 80]
				mov	w25, w0
				mov	x19, x18
  987 %OWNINTEGER AND=1717, OR=16873
  988 %INTEGER J,K
  989     TRANSF = QSTART;  QSTART = QLIM
				adrp	x0, .LANCHOR0
		.LVL602:
				add	x0, x0, :lo12:.LANCHOR0
				ldr	w1, [x0, 308]
				str	w1, [x0, 312]
				ldr	w1, [x0, 244]
				str	w1, [x0, 308]
  990     J = 0
		.LVL603:
				mov	w23, 0
  991     %CYCLE
  992        GET EXP
				mov	x18, x19
				bl	GETEXP.16
		.LVL620:
  993        %IF S('=') %START
				mov	w22, 61
		.LDL137:
				mov	x18, x19
				mov	w0, w22
				bl	S.33
		.LVL621:
				cbnz	w0, .L680
		.L659:
		.LVL622:
  994           K = 3
				mov	w21, 3
				mov	w20, w21
  995        %finish %ELSE %IF S('#') %START
				mov	w27, 35
				mov	x18, x19
				mov	w0, w27
				bl	S.33
		.LVL605:
				cbz	w0, .L659
		.LDL138:
  996           K = \3
				mov	w26, -4
				b	.L658
		.LVL604:
		.L680:
				mov	w20, w26
  997        %finish %ELSE %IF S('<') %START
				mov	x18, x19
				mov	w0, 60
				bl	S.33
		.LVL606:
				cbz	w0, .L660
		.LDL139:
  998           K = \1;  K = 2 %IF S('=')
				mov	x18, x19
				mov	w0, 61
				bl	S.33
		.LVL611:
				mov	w20, 2
				cmp	w0, 0
				csneg	w20, w20, w20, eq
				b	.L659
		.LVL612:
		.L661:
  999        %finish %ELSE %IF S('>') %START
				mov	x18, x19
				mov	w0, 62
				bl	S.33
		.LVL607:
				cbnz	w0, .L661
		.LDL140:
 1000           K = \2;  K = 1 %IF S('=')
		.LVL608:
				mov	x18, x19
				mov	w0, 61
				bl	S.33
		.LVL609:
				cmp	w0, 0
				mov	w20, -3
				csinc	w20, w20, wzr, ne
				b	.L659
		.LVL610:
		.L660:
 1001        %finish %ELSE %START
 1002           QUEUE(-12)
				mov	w0, -12
				bl	QUEUE.9
		.LVL613:
 1003           ->ANDOR
				b	.L663
		.L664:
 1004        %FINISH
 1005        GET EXP
				mov	x18, x19
				bl	GETEXP.16
		.LVL623:
 1006        QUEUE(-11);  QUEUE(K)
				mov	w24, -11
				mov	w0, w24
				bl	QUEUE.9
		.LVL624:
				mov	w0, w20
				bl	QUEUE.9
		.LVL625:
		.L663:
 1007 ANDOR:
 1008        %EXIT %IF %NOT TAG
		.LDL141:
				mov	x18, x19
				bl	TAG.34
		.LVL626:
				cbz	w0, .L664
		.LDL142:
 1009        %IF TAG1 = AND %AND TAG2 = 0 %START
				ldr	w0, [x19, 16]
				cmp	w0, 1717
				bne	.L665
				ldr	w0, [x19, 12]
				cbnz	w0, .L665
 1010 !!          %MONITOR 19 %IF J < 0
 1011           J = 1;  QUEUE(-13)
		.LVL627:
				mov	w0, -13
				bl	QUEUE.9
		.LVL628:
				mov	w23, 1
 1012        %finish %ELSE %START
				b	.L658
		.LVL629:
		.L679:
 1013 !!          %MONITOR 19 %IF TAG1 # OR %OR J > 0
 1014           J = -1;  QUEUE(-14)
				mov	w0, -14
				bl	QUEUE.9
		.LVL618:
				mov	w23, -1
		.LVL619:
		.L658:
 1015        %FINISH
 1016     %REPEAT
 1017     QUEUE(QVAL) %IF QVAL # 0
				cbnz	w25, .L679
		.L667:
				mov	w0, w25
				bl	QUEUE.9
		.LVL630:
				b	.L667
		.LFE243:
				.align	2
				.global	main
		main:
		.LVL631:
		.LFB199:
 1018     ASSEMBLE
				mov	x18, x19
				bl	ASSEMBLE.18
		.LVL614:
 1019     ATYPE=-1 %AND CREG=-1 %IF J < 0
				tbz	w23, #31, .L657
				mov	w0, -1
				stp	w0, w0, [x19, 56]
 1020 %END
?OR unused
 1021 
		.L670:
		.L657:
 1022 %ROUTINE GET INST
				stp	x29, x30, [sp, -48]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				mov	x19, x18
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
				ldp	x23, x24, [sp, 48]
		.LVL615:
				ldp	x25, x26, [sp, 64]
		.LVL616:
				ldr	x27, [sp, 80]
				ldp	x29, x30, [sp], 96
				ret
		.LVL617:
		.L665:
 1023 %INTEGER I
 1024 !OPMASK VALUES
 1025 !    0100,0110,1100,1101,1110: DOUBLE WORD INSTRUCTIONS
 1026 !    1011,1001,0011,0010,0001: AS ABOVE BUT RELOCATABLE
 1027 !    0101: SINGLE WORD INSTRUCTION
 1028 !    0111: 2 OPERANDS TO COME
 1029 !    1111: 1 OPERAND TO COME
 1030 !    1010: MACRO
 1031     QUEUE(TYPE);  QUEUE(VAL)
				ldr	w0, [x18, 68]
				bl	QUEUE.9
		.LVL236:
				ldr	w0, [x19, 64]
				bl	QUEUE.9
		.LVL237:
 1032     %RETURN %IF TYPE&16_7000 # 16_7000
				ldr	w0, [x19, 68]
				and	w0, w0, 28672
				cmp	w0, 28672
				beq	.L323
		.L318:
		.LDL79:
 1033     %RETURN %IF TERM # ' ';           !NO OPERAND FOLLOWING =>
				ldr	w0, [x19, 8]
				cmp	w0, 32
				bne	.L318
				str	x21, [sp, 32]
 1034     %CYCLE
 1035        GET EXP
				mov	x18, x19
				bl	GETEXP.16
		.LVL238:
 1036        QUEUE(-22)
				mov	w21, -22
				mov	w0, w21
				bl	QUEUE.9
		.LVL239:
 1037        %RETURN %IF %NOT S(',')
				mov	w20, 44
		.L320:
		.LDL80:
		.LDL81:
				mov	x18, x19
				mov	w0, w20
				bl	S.33
		.LVL240:
				cbnz	w0, .L320
				ldr	x21, [sp, 32]
				b	.L318
		.LFE244:
				.align	2
		READLINE.38:
		.LFB245:
 1038     %REPEAT
 1039 %END
?I unused
 1040 
 1041 %ROUTINE READ LINE
				ldp	x19, x20, [sp, 16]
				ldp	x29, x30, [sp], 48
				ret
		.L323:
				stp	x29, x30, [sp, -64]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				mov	x19, x18
 1042 %INTEGER Q
 1043     PUTPOS = STARTPOS
				adrp	x1, .LANCHOR0
				add	x0, x1, :lo12:.LANCHOR0
				ldr	w2, [x0, 280]
				str	w2, [x1, #:lo12:.LANCHOR0]
 1044     %IF MP = 0 %START
				ldr	w20, [x0, 272]
				cbnz	w20, .L360
				stp	x21, x22, [sp, 32]
		.LDL82:
 1045        Q = 0;  PSEUDOLIM = 0
		.LVL241:
				adrp	x0, .LANCHOR0+284
				str	wzr, [x0, #:lo12:.LANCHOR0+284]
 1046        %CYCLE
 1047           READ SYMBOL(SYM)
				add	x21, x18, 4
		.LBB77:
		.LBI77:
 1048           READ SYMBOL(SYM) %AND Q=Q!!128 %IF SYM = ''''
		.LBB75:
		.LBI75:
				eor	w20, w20, 128
		.LVL247:
				b	.L329
		.LVL248:
		.L332:
				ldr	w0, [x19, 4]
				cmp	w0, 39
				beq	.L362
		.LVL251:
		.L329:
 1049           %EXIT %IF SYM = NL
				ldr	w0, [x19, 4]
				cmp	w0, 10
				beq	.L330
		.LDL85:
 1050           SYM = SYM-32 %IF SYM-Q >= 96; !LOWER-CASE -> UPPER-CASE
				sub	w1, w0, w20
				cmp	w1, 95
				ble	.L331
				sub	w0, w0, #32
				str	w0, [x19, 4]
		.L331:
 1051           SYM = SYM+Q
				ldr	w0, [x19, 4]
				add	w0, w20, w0
				str	w0, [x19, 4]
 1052           %EXIT %IF SYM = '/' %AND PSEUDOLIM # 0
				cmp	w0, 47
				bne	.L332
				ldr	w1, [x22, 284]
				cbz	w1, .L333
 1053           %IF SYM = ' ' %START
				cmp	w0, 32
				bne	.L333
		.LDL84:
 1054              PSEUDOLIM = PUTPOS %IF PSEUDOLIM = 0
				ldr	w1, [x22, 284]
				cbnz	w1, .L336
				ldr	w1, [x22]
				str	w1, [x22, 284]
				b	.L336
		.L333:
 1055           %finish %ELSE PSEUDOLIM = 0
				adrp	x22, .LANCHOR0
				add	x22, x22, :lo12:.LANCHOR0
				b	.L328
		.LVL242:
		.L360:
				str	wzr, [x22, 284]
		.L336:
 1056           PUT CHAR(SYM)
				bl	PUTCHAR.37
		.LVL249:
 1057        %REPEAT
		.L328:
 1058        %IF PSEUDOLIM # 0 %START
				adrp	x0, .LANCHOR0+284
				ldr	w0, [x0, #:lo12:.LANCHOR0+284]
		.L353:
				adrp	x0, .LANCHOR0+284
				ldr	w0, [x0, #:lo12:.LANCHOR0+284]
				cbnz	w0, .L353
		.LVL256:
		.L339:
 1059           Q = PUTPOS;  PUTPOS = PSEUDOLIM
				adrp	x20, .LANCHOR0
		.LVL252:
				ldr	w22, [x20, #:lo12:.LANCHOR0]
		.LVL253:
				str	w0, [x20, #:lo12:.LANCHOR0]
 1060           PUT CHAR(NL)
				mov	w0, 10
				bl	PUTCHAR.37
		.LVL254:
 1061           PUTPOS = Q
				str	w22, [x20, #:lo12:.LANCHOR0]
				b	.L339
		.LVL255:
		.L330:
 1062        %FINISH
 1063        %CYCLE
 1064           PUT CHAR(SYM)
				ldr	w0, [x19, 4]
				bl	PUTCHAR.37
		.LVL257:
 1065           %EXIT %IF SYM = NL
				ldr	w0, [x19, 4]
				cmp	w0, 10
				beq	.L338
		.LDL86:
		.LDL87:
 1066           READ SYMBOL(SYM)
		.LVL258:
		.LBB79:
		.LBI79:
 1067        %REPEAT
				b	.L339
		.L338:
 1068        PRINTPOS = STARTPOS
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				ldr	w1, [x0, 280]
				str	w1, [x0, 288]
 1069     %finish %ELSE %START
		.L340:
 1070        GETPOS = INTEGER(MP)
				mov	w0, w20
				bl	INTEGER.39
		.LVL243:
				adrp	x1, .LANCHOR0+240
				str	w0, [x1, #:lo12:.LANCHOR0+240]
 1071        %IF CHAR(GETPOS) = 0 %START
				bl	CHAR.6
		.LVL244:
				cbz	w0, .L361
				stp	x21, x22, [sp, 32]
				str	x23, [sp, 48]
		.LDL83:
 1072           QBASE = MP
				adrp	x20, .LANCHOR0
				add	x20, x20, :lo12:.LANCHOR0
				ldr	w0, [x20, 272]
				str	w0, [x20, 292]
 1073           GETPOS = INTEGER(MP+2)
				add	w0, w0, 2
				bl	INTEGER.39
		.LVL261:
				str	w0, [x20, 240]
 1074           STARTPOS = INTEGER(MP+3)
				ldr	w0, [x20, 272]
				add	w0, w0, 3
				bl	INTEGER.39
		.LVL262:
				str	w0, [x20, 280]
 1075           MP = INTEGER(MP+4)
				ldr	w0, [x20, 272]
				add	w0, w0, 4
				bl	INTEGER.39
		.LVL263:
				adrp	x1, .LANCHOR0+272
				str	w0, [x1, #:lo12:.LANCHOR0+272]
		.L346:
 1076           %IF MP < 0 %START
				tbnz	w0, #31, .L363
 1077              MP = MP-8_700000
				sub	w0, w0, #229376
				adrp	x1, .LANCHOR0+272
				str	w0, [x1, #:lo12:.LANCHOR0+272]
 1078              %WHILE INTEGER(NP)&16_8000 = 0 %CYCLE
				adrp	x20, .LANCHOR0
				add	x20, x20, :lo12:.LANCHOR0
				ldr	w0, [x20, 236]
				bl	INTEGER.39
		.LVL267:
				tbz	x0, 15, .L345
		.LDL88:
 1079                 FAULT('C');  NP = NP+2
				mov	w21, 67
				b	.L344
		.L345:
				mov	x18, x19
				mov	w0, w21
				bl	FAULT.45
		.LVL266:
				ldr	w0, [x20, 236]
				add	w0, w0, 2
				str	w0, [x20, 236]
 1080              %REPEAT
		.L344:
 1081              SET LAB(LOC)
				mov	x18, x19
				ldr	w0, [x19, 76]
				bl	SETLAB.10
		.LVL268:
				ldp	x21, x22, [sp, 32]
				b	.L346
		.L351:
 1082           %FINISH
 1083           PRINTPOS = 0 %IF LIST&2 # 0
				adrp	x0, .LANCHOR1+16
				ldr	w0, [x0, #:lo12:.LANCHOR1+16]
				tbz	x0, 1, .L347
				adrp	x0, .LANCHOR0+288
				str	wzr, [x0, #:lo12:.LANCHOR0+288]
		.L347:
 1084           GET SYM;                    !TERMINATOR
				mov	x18, x19
				bl	GETSYM.7
		.LVL264:
 1085           GET SYM %IF SYM = ';'
				ldr	w0, [x19, 4]
				cmp	w0, 59
				bne	.L324
				mov	x18, x19
				bl	GETSYM.7
		.LVL265:
				b	.L324
		.L363:
				stp	x21, x22, [sp, 32]
 1086           %RETURN
 1087        %FINISH
 1088        PRINTPOS = STARTPOS %IF LIST&2 # 0
				adrp	x0, .LANCHOR1+16
				ldr	w0, [x0, #:lo12:.LANCHOR1+16]
				tbz	x0, 1, .L341
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				ldr	w1, [x0, 280]
				str	w1, [x0, 288]
		.L341:
 1089        QQ = 0
				adrp	x0, .LANCHOR1+12
				str	wzr, [x0, #:lo12:.LANCHOR1+12]
 1090        %CYCLE
 1091           SYM = CHAR(GETPOS);  GETPOS = GETPOS+1
				adrp	x20, .LANCHOR0
				add	x20, x20, :lo12:.LANCHOR0
				ldr	w21, [x20, 240]
				mov	w0, w21
				bl	CHAR.6
		.LVL275:
				str	w0, [x19, 4]
				add	w21, w21, 1
				str	w21, [x20, 240]
 1092           %IF TAG %START
				mov	x18, x19
				bl	TAG.34
		.LVL276:
				cbnz	w0, .L350
 1093              SYM=TERM %AND GETPOS=GETPOS-1 %IF TERM = ' '
				mov	w23, 32
				b	.L349
		.LVL245:
		.L362:
				ldr	w0, [x19, 8]
				cmp	w0, 32
				bne	.L351
				str	w23, [x19, 4]
				ldr	w0, [x20, 240]
				sub	w0, w0, #1
				str	w0, [x20, 240]
				b	.L351
		.L364:
 1094              TYPE = INTEGER(MP);  VAL = GETPOS-1
				ldr	w0, [x20, 272]
				bl	INTEGER.39
		.LVL269:
				ldr	w1, [x20, 240]
				sub	w1, w1, #1
				stp	w1, w0, [x19, 64]
 1095              LOOKUP(4)
				mov	w22, 4
				mov	x18, x19
				mov	w0, w22
				bl	LOOKUP.32
		.LVL270:
 1096              %WHILE TYPE # VAL %CYCLE
				ldp	w1, w0, [x19, 64]
				cmp	w0, w1
				beq	.L350
		.L352:
				ldp	w1, w0, [x19, 64]
				cmp	w1, w0
				bne	.L352
		.L350:
		.LDL90:
 1097                 PUT CHAR(CHAR(TYPE))
				bl	CHAR.6
		.LVL271:
				bl	PUTCHAR.37
		.LVL272:
 1098                 TYPE = TYPE+1
				add	w0, w0, 1
				str	w0, [x19, 68]
 1099              %REPEAT
		.LDL89:
 1100           %FINISH
 1101           PUT CHAR(SYM)
				ldr	w0, [x19, 4]
				bl	PUTCHAR.37
		.LVL273:
 1102 !!          INTEGER(MP) = GETPOS
 1103           set INTEGER(MP, GETPOS)
				ldr	w1, [x20, 240]
				ldr	w0, [x20, 272]
				bl	SETINTEGER.8
		.LVL274:
 1104           %EXIT %IF SYM = NL
				ldr	w0, [x19, 4]
				cmp	w0, 10
				beq	.L364
		.L349:
		.LDL91:
		.LDL92:
 1105        %REPEAT
 1106        QQ = '?'
				adrp	x0, .LANCHOR1+12
				mov	w1, 63
				str	w1, [x0, #:lo12:.LANCHOR1+12]
				ldr	x23, [sp, 48]
				b	.L340
		.LFE245:
				.align	2
		_imp_SELECTINPUT:
		.LVL277:
		.LFB105:
 1107     %FINISH
 1108     QBASE = (PUTPOS+1)>>1
				adrp	x0, .LANCHOR0
				add	x1, x0, :lo12:.LANCHOR0
				ldr	w0, [x0, #:lo12:.LANCHOR0]
				add	w0, w0, 1
				asr	w0, w0, 1
				str	w0, [x1, 292]
 1109     GETPOS = STARTPOS;  GET SYM
				ldr	w0, [x1, 280]
				str	w0, [x1, 240]
				mov	x18, x19
				bl	GETSYM.7
		.LVL260:
 1110 %END
		.L348:
				ldp	x21, x22, [sp, 32]
		.L324:
 1111 
 1112 %ROUTINE SCAN ARG
				stp	x29, x30, [sp, -80]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				stp	x23, x24, [sp, 48]
				str	x25, [sp, 64]
				mov	x23, x18
				mov	w21, 0
				ldp	x19, x20, [sp, 16]
				ldp	x29, x30, [sp], 64
				ret
		.L361:
 1113 !    SET TYPE,VAL TO START,LIM OF ARG IF NOT NULL
 1114 %INTEGER I,J
 1115     %RETURN %IF SYM='I' %AND CHAR(GETPOS)='F' %AND CHAR(GETPOS+1)=' '
				ldr	w19, [x18, 4]
				cmp	w19, 73
				bne	.L104
				adrp	x0, .LANCHOR0+240
				ldr	w25, [x0, #:lo12:.LANCHOR0+240]
				mov	w0, w25
				bl	CHAR.6
		.LVL76:
				cmp	w0, 70
				bne	.L105
				add	w0, w25, 1
				bl	CHAR.6
		.LVL77:
				cmp	w0, 32
				beq	.L103
		.L105:
				stp	x21, x22, [sp, 32]
 1116     I = GETPOS-1;  I = GETPOS %IF SYM = '['
				sub	w25, w25, #1
		.LVL78:
		.L117:
				adrp	x0, .LANCHOR0+240
				ldr	w25, [x0, #:lo12:.LANCHOR0+240]
		.LVL79:
				cmp	w19, 91
				bne	.L122
				stp	x21, x22, [sp, 32]
				b	.L117
		.L122:
				sub	w25, w25, #1
		.LVL80:
 1117     J = 0
 1118     %CYCLE
 1119        %EXIT %IF SYM = NL
				cmp	w19, 10
				beq	.L103
				stp	x21, x22, [sp, 32]
				b	.L117
		.LVL81:
		.L108:
				cmp	w0, 10
				beq	.L111
		.LVL84:
		.L114:
		.LDL20:
 1120        %EXIT %IF (SYM=' ' %OR SYM=',' %OR SYM=';') %AND J<=0
				mov	w24, 32
				cmp	w19, 44
				ccmp	w19, w24, 4, ne
				cset	w0, ne
				cmp	w19, 59
				cset	w1, ne
				tst	w1, w0
				bne	.L108
		.L109:
				cmp	w21, 0
				bgt	.L110
		.L111:
 1121        J = J+1 %IF SYM = '['
				cmp	w19, 91
				bne	.L112
				add	w21, w21, 1
		.LVL82:
 1122        %IF SYM = ']' %START
		.L110:
		.LDL18:
				cmp	w19, 93
				bne	.L110
 1123           J = J-1;  %EXIT %IF J = 0
		.LVL87:
				subs	w21, w21, #1
		.LVL88:
				bne	.L110
 1124        %FINISH
				ldr	w20, [x22, 240]
				mov	w0, w20
				bl	CHAR.6
		.LVL83:
				mov	w19, w0
				str	w0, [x23, 4]
				add	w20, w20, 1
				str	w20, [x22, 240]
 1125        SYM = CHAR(GETPOS);  GETPOS = GETPOS+1
				adrp	x22, .LANCHOR0
				add	x22, x22, :lo12:.LANCHOR0
				b	.L114
		.L104:
 1126     %REPEAT
		.LDL19:
 1127     %IF GETPOS-1 # I %START
				adrp	x0, .LANCHOR0+240
				ldr	w0, [x0, #:lo12:.LANCHOR0+240]
				sub	w0, w0, #1
				cmp	w0, w25
				beq	.L123
		.L116:
				adrp	x0, .LANCHOR0+240
				ldr	w0, [x0, #:lo12:.LANCHOR0+240]
				sub	w0, w0, #1
				cmp	w0, w25
				bne	.L116
		.L115:
 1128        TYPE = I;  VAL = GETPOS-1
				stp	w0, w25, [x23, 64]
		.LDL21:
 1129     %FINISH
 1130     GET SYM %IF SYM = ']'
				cmp	w19, 93
				beq	.L115
				ldp	x21, x22, [sp, 32]
		.LVL85:
		.L103:
				mov	x18, x23
				bl	GETSYM.7
		.LVL89:
		.L106:
 1131 %END
 1132 
				ldp	x21, x22, [sp, 32]
		.LVL90:
				b	.L103
		.LVL91:
		.L123:
				ldp	x21, x22, [sp, 32]
		.LVL92:
				b	.L103
		.LFE246:
				.align	2
		SETACC.40:
		.LFB247:
 1133 
				ldp	x19, x20, [sp, 16]
				ldp	x23, x24, [sp, 48]
				ldr	x25, [sp, 64]
				ldp	x29, x30, [sp], 80
				ret
		.LVL86:
		.L112:
 1134 %ROUTINE SET ACC
 1135 %INTEGER I
 1136     ACC = -1;  ATYPE = -1;  CREG = -1
				mov	w0, -1
				str	w0, [x18, 40]
				stp	w0, w0, [x18, 56]
 1137     I = TEMPS
				adrp	x0, .LANCHOR1
				ldr	w0, [x0, #:lo12:.LANCHOR1]
		.LVL93:
 1138     %RETURN %IF I = 0
				cbnz	w0, .L129
		.L124:
 1139     %CYCLE
 1140        ACC = ACC+1
				add	w1, w1, 1
				str	wzr, [x18, 40]
				b	.L124
		.LFE247:
				.align	2
		BNEST.41:
		.LFB248:
 1141        %RETURN %IF I&1 # 0
				and	w1, w0, 1
				tbnz	x0, 0, .L130
		.L126:
		.LDL22:
		.LDL23:
				tbz	x0, 0, .L126
				str	w1, [x18, 40]
 1142        I = I>>1
				lsr	w0, w0, 1
		.LVL94:
 1143     %REPEAT
		.LDL24:
 1144 %END
 1145 
				b	.L124
		.L130:
 1146 !MAIN PROGRAM
				ret
		.L129:
 1147 
 1148 !RADIX 36 CONSTANTS
 1149 %OWNINTEGER B=2184, IF=9991, ELS=5950, E=5403, FIN=6907, ISH=10490
 1150 %OWNINTEGER JUM=11642, P=17206, PS=17983, DEF=4605, END=6009
 1151 
 1152 %INTEGER I,J,K
 1153 !!%FAULT 19 ->ERR;                      !RECOGNITION ERROR
 1154 !!%FAULT 9 ->BEND;                      !INPUT ENDED
 1155 
 1156     %on %event 9,1 %start
		.LDL143:
 1157        ->err %if event_event = 9
 1158        ->bend %if event_event = 1 %and event_sub = 9
 1159        %stop
 1160     %finish
 1161     
 1162     open input(MAIN, "interdata/test.hal")
				add	x0, x21, 320
				ldr	q16, [x21, 320]
				ldp	q18, q17, [x0, 16]
				ldp	q20, q19, [x0, 48]
				ldp	q22, q21, [x0, 80]
				ldp	q24, q23, [x0, 112]
				ldp	q26, q25, [x0, 144]
				ldp	q28, q27, [x0, 176]
				ldp	q30, q29, [x0, 208]
				ldr	q31, [x0, 240]
		.LVL634:
				add	x20, sp, 1488
				str	q16, [sp, 1488]
				stp	q18, q17, [x20, 16]
				stp	q20, q19, [x20, 48]
				stp	q22, q21, [x20, 80]
				stp	q24, q23, [x20, 112]
				stp	q26, q25, [x20, 144]
				stp	q28, q27, [x20, 176]
				stp	q30, q29, [x20, 208]
				str	q31, [x20, 240]
		.LBB183:
		.LBI183:
 1163     open input(PRE, "interdata/hal70.def")
				add	x0, x21, 576
				ldr	q16, [x21, 576]
				ldp	q18, q17, [x0, 16]
				ldp	q20, q19, [x0, 48]
				ldp	q22, q21, [x0, 80]
				ldp	q24, q23, [x0, 112]
				ldp	q26, q25, [x0, 144]
				ldp	q28, q27, [x0, 176]
				ldp	q30, q29, [x0, 208]
				ldr	q31, [x0, 240]
		.LVL636:
				str	q16, [sp, 1488]
				stp	q18, q17, [x20, 16]
				stp	q20, q19, [x20, 48]
				stp	q22, q21, [x20, 80]
				stp	q24, q23, [x20, 112]
				stp	q26, q25, [x20, 144]
				stp	q28, q27, [x20, 176]
				stp	q30, q29, [x20, 208]
				str	q31, [x20, 240]
		.LBB185:
		.LBI185:
 1164     open output(BIN, "interdata/test.bin")
				add	x0, x21, 832
				ldr	q16, [x21, 832]
				ldp	q18, q17, [x0, 16]
				ldp	q20, q19, [x0, 48]
				ldp	q22, q21, [x0, 80]
				ldp	q24, q23, [x0, 112]
				ldp	q26, q25, [x0, 144]
				ldp	q28, q27, [x0, 176]
				ldp	q30, q29, [x0, 208]
				ldr	q31, [x0, 240]
		.LVL638:
				str	q16, [sp, 1488]
				stp	q18, q17, [x20, 16]
				stp	q20, q19, [x20, 48]
				stp	q22, q21, [x20, 80]
				stp	q24, q23, [x20, 112]
				stp	q26, q25, [x20, 144]
				stp	q28, q27, [x20, 176]
				stp	q30, q29, [x20, 208]
				str	q31, [x20, 240]
		.LBB187:
		.LBI187:
 1165     open output(LIS, "interdata/test.lis")
				add	x0, x21, 1088
				ldr	q16, [x21, 1088]
				ldp	q18, q17, [x0, 16]
				ldp	q20, q19, [x0, 48]
				ldp	q22, q21, [x0, 80]
				ldp	q24, q23, [x0, 112]
				ldp	q26, q25, [x0, 144]
				ldp	q28, q27, [x0, 176]
				ldp	q30, q29, [x0, 208]
				ldr	q31, [x0, 240]
		.LVL640:
				str	q16, [sp, 1488]
				stp	q18, q17, [x20, 16]
				stp	q20, q19, [x20, 48]
				stp	q22, q21, [x20, 80]
				stp	q24, q23, [x20, 112]
				stp	q26, q25, [x20, 144]
				stp	q28, q27, [x20, 176]
				stp	q30, q29, [x20, 208]
				str	q31, [x20, 240]
		.LBB189:
		.LBI189:
 1166     select output(0)
		.LBB191:
		.LBI191:
 1167 
 1168     %CYCLE I = 1,1,SBOUND
 1169        STORE(I) = 0
				str	wzr, [x0], 4
		.LVL644:
 1170     %REPEAT
 1171 !!    CODEPOS = ADDR(STORE(1))
				adrp	x0, STORE.133
				add	x0, x0, :lo12:STORE.133
				add	x1, x0, 126976
				add	x1, x1, 3072
		.LVL643:
		.L682:
		.LDL144:
				cmp	x0, x1
				bne	.L682
		.LDL145:
 1172 {}    CODEPOS = 1
				adrp	x2, .LANCHOR0
				add	x2, x2, :lo12:.LANCHOR0
				mov	w0, 1
		.LVL645:
				str	w0, [x2, 8]
 1173     MACLIM = (CODEPOS+20)<<1
				mov	w0, 42
				str	w0, [x2, 252]
 1174 !!    STORELIM = ADDR(STORE(SBOUND))
 1175 {}    STORELIM = sbound
				mov	w0, 32512
				str	w0, [x2, 316]
 1176     NP = STORELIM
				str	w0, [x2, 236]
 1177     LABLIM = NP-60
				mov	w0, 32452
				str	w0, [x2, 320]
 1178     BP = LABLIM
				str	w0, [x2, 248]
 1179     DEFLIM = BP-(SBOUND>>2)
				mov	w1, 24324
				str	w1, [x2, 264]
 1180     DEFMIN = DEFLIM
				str	w1, [x2, 256]
 1181 !!    INTEGER(BP) = DEFLIM
 1182     set INTEGER(BP, DEFLIM)
				bl	SETINTEGER.8
		.LVL646:
 1183     SELECT INPUT(PRE)
				mov	w0, 2
				bl	_imp_SELECTINPUT
		.LVL647:
 1184 DO PASS:
 1185     STARTPOS = MACLIM
				adrp	x23, .LANCHOR0
				add	x23, x23, :lo12:.LANCHOR0
				ldr	w0, [x23, 252]
				str	w0, [x23, 280]
 1186     MP = 0
				str	wzr, [x23, 272]
 1187     ALMAX = DEFLIM
				ldr	w0, [x23, 264]
				str	w0, [x23, 268]
 1188     LABMIN = LABLIM
				ldr	w0, [x23, 320]
				str	w0, [x23, 276]
 1189     ASSCOND = 1;  SKIP = 0
		.LVL649:
				mov	w28, 0
				mov	w0, 1
				str	w0, [sp, 108]
 1190     LOCTYPE = MEMMASK+RELMASK;  LOC = 0
				mov	w0, 96
				str	w0, [sp, 440]
				str	wzr, [sp, 444]
 1191     SET ACC
				add	x20, sp, 368
		.LVL648:
		.L683:
				mov	x18, x20
				bl	SETACC.40
		.LVL650:
 1192 READ: FSYM = ' ';  FAULTPOS = 0
				mov	w0, 32
				str	w0, [sp, 448]
				str	wzr, [x23, 296]
 1193     READ LINE
				mov	x18, x20
				bl	READLINE.38
		.LVL816:
				b	.L686
		.L860:
 1194 NEXT:
 1195     DREG = -1
				mov	w0, -1
				str	w0, [sp, 396]
 1196     MODE = 0
				str	wzr, [sp, 388]
 1197     PEND = 0;  COND = 0
				str	wzr, [sp, 368]
				str	wzr, [sp, 416]
 1198     QSTART = QBASE;  QLIM = QSTART
				ldr	w0, [x23, 292]
				str	w0, [x23, 308]
				str	w0, [x23, 244]
 1199     FLAG = 0
				str	wzr, [sp, 420]
 1200     %IF S('$') %START
		.LDL146:
				mov	x18, x20
				mov	w0, 36
				bl	S.33
		.LVL703:
				mov	w21, w0
				cbnz	w0, .L870
 1201        ->NEWPAGE %IF SYM = '/'
				ldr	w0, [sp, 372]
				cmp	w0, 47
				beq	.L871
		.LDL176:
 1202        ->ERR %IF %NOT TAG
				mov	x18, x20
				bl	TAG.34
		.LVL704:
				cbz	w0, .L693
		.LDL177:
 1203        ->ASSIF %IF TAG1 = IF
		.LDL154:
				ldr	w19, [sp, 384]
				mov	w0, 9991
				cmp	w19, w0
				beq	.L694
		.LDL178:
 1204        ->ASSELSE %IF TAG1 = ELS
		.LDL156:
				mov	w0, 5950
				cmp	w19, w0
				beq	.L872
		.LDL179:
 1205        ->ASSFIN %IF TAG1 = FIN
		.LDL159:
				mov	w0, 6907
				cmp	w19, w0
				beq	.L873
		.LDL180:
 1206        ->LEND %IF SKIP # 0
				cbnz	w28, .L698
		.LDL181:
 1207        ->DEFINE %IF TAG1 = DEF
		.LDL182:
 1208        ->DEFINE %IF TAG1 = 19625;     !RED
				mov	w0, 4605
				cmp	w19, w0
				mov	w0, 19625
				ccmp	w19, w0, 4, ne
				beq	.L706
		.LDL183:
 1209        ->LISTC %IF TAG1 = 13350;      !LIS
		.LDL161:
				mov	w0, 13350
				cmp	w19, w0
				beq	.L707
		.LDL184:
 1210        ->TEMP %IF TAG1 = 21780;       !TEM
		.LDL162:
				mov	w0, 21780
				cmp	w19, w0
				beq	.L874
		.LDL185:
 1211        ->LOCC %IF TAG1 = 13556;       !LOC
		.LDL186:
 1212        ->LOCC %IF TAG1 = 1917;        !ASS
				cmp	w19, 1917
				mov	w0, 13556
				ccmp	w19, w0, 4, ne
				beq	.L713
		.LDL187:
 1213        ->SAVC %IF TAG1 = 20568;       !SAV
		.LDL164:
				mov	w0, 20568
				cmp	w19, w0
				bne	.L875
		.LDL188:
 1214        ->MACDEF %IF TAG1 = 14111;     !MAC
				mov	w0, 14111
				cmp	w19, w0
				beq	.L862
		.LDL165:
		.LDL168:
 1215        ->BEGIN %IF TAG1 = 2460;       !BEG
				cmp	w19, 2460
				beq	.L863
		.LDL166:
		.LDL169:
 1216        ->BEND %IF TAG1 = END
				mov	w0, 6009
				cmp	w19, w0
				bne	.L864
		.LDL167:
		.LDL170:
 1217        FAULT('U')
				add	x18, sp, 368
				mov	w0, 85
				bl	FAULT.45
		.LVL689:
 1218        ->LEND
				b	.L722
		.L728:
 1219     %FINISH
 1220     ->LEND %IF SKIP # 0 %OR SYM = '/'
				cbnz	w28, .L698
				ldr	w0, [sp, 372]
		.LDL147:
 1221     ->LEND %IF SYM = NL
				cmp	w0, 47
				ccmp	w0, 10, 4, ne
				beq	.L726
		.LDL148:
 1222     %IF TAG %START
				mov	x18, x20
				bl	TAG.34
		.LVL652:
				cbnz	w0, .L727
 1223        ->LABDEF %IF TERM = ':'
				ldr	w0, [sp, 376]
				cmp	w0, 58
				beq	.L728
		.LDL149:
		.LDL171:
 1224        MODE = 1
				mov	w1, 1
				str	w1, [sp, 388]
 1225        ->ASSIGN %IF TERM = '(' %OR SYM = '='
				cmp	w0, 40
				beq	.L729
				ldr	w0, [sp, 372]
				cmp	w0, 61
				beq	.L729
		.LDL150:
		.LDL172:
 1226        ->JUMP %IF TAG1 = JUM %AND (TAG2=P %OR TAG2=PS)
				ldr	w0, [sp, 384]
				mov	w1, 11642
				cmp	w0, w1
				bne	.L733
				ldr	w1, [sp, 380]
				mov	w2, 17983
				cmp	w1, w2
				mov	w2, 17206
				ccmp	w1, w2, 4, ne
				beq	.L858
		.L737:
		.LDL189:
 1227        ->IFC %IF TAG1 = IF
				mov	w1, 9991
				cmp	w0, w1
				beq	.L740
		.LDL190:
		.LDL194:
 1228        ->ELSE %IF TAG1 = ELS %AND TAG2 = E
				mov	w1, 5950
				cmp	w0, w1
				bne	.L876
				ldr	w2, [sp, 380]
				mov	w1, 5403
				cmp	w2, w1
				beq	.L877
		.L743:
		.LDL195:
 1229        ->FINISH %IF TAG1 = FIN %AND TAG2 = ISH
				mov	w1, 6907
				cmp	w0, w1
				bne	.L737
				ldr	w2, [sp, 380]
				mov	w1, 10490
				cmp	w2, w1
				beq	.L880
		.L745:
		.LDL199:
 1230        ->WHILE %IF TAG1 = 25106 %AND TAG2 = 13173
				mov	w1, 25106
				cmp	w0, w1
				bne	.L743
				ldr	w2, [sp, 380]
				mov	w1, 13173
				cmp	w2, w1
				beq	.L859
		.L747:
		.LDL201:
 1231        ->CYCLE %IF TAG1 = 4269 %AND TAG2 = 13173
				mov	w1, 4269
				cmp	w0, w1
				bne	.L745
				ldr	w1, [sp, 380]
				mov	w0, 13173
				cmp	w1, w0
				beq	.L878
		.L748:
		.LDL202:
 1232        ->REPEAT %IF TAG1 = 19637 %AND TAG2 = 5544
				mov	w1, 19637
				cmp	w0, w1
				bne	.L747
				ldr	w1, [sp, 380]
				mov	w0, 5544
				cmp	w1, w0
				bne	.L748
		.LDL197:
 1233        MODE=-2 %AND ->DATA %IF TAG1 = B
				mov	w1, -2
				cmp	w0, 2184
				beq	.L750
				b	.L748
		.L871:
		.LDL191:
				str	w1, [sp, 388]
 1234        TYPE = UMASK;  LOOKUP(0)
				mov	w0, 512
				str	w0, [sp, 436]
				mov	x18, x20
				mov	w0, 0
				bl	LOOKUP.32
		.LVL709:
 1235        ->MACCALL %IF TYPE&OPMASK = MACRO
				ldr	w1, [sp, 436]
				and	w0, w1, 61440
				cmp	w0, 40960
				beq	.L751
		.LDL192:
		.LDL203:
 1236        ->MINST %IF TYPE&OPMASK # 0
				cbz	w0, .L879
		.LDL193:
		.LDL204:
 1237        FAULT('U') %AND ->LEND %IF TYPE&UMASK # 0
				tbnz	x1, 9, .L881
		.LDL205:
				add	x18, sp, 368
				mov	w0, 85
				bl	FAULT.45
		.LVL739:
				b	.L722
		.L884:
 1238        PEND = -1
				mov	w0, -1
				str	w0, [sp, 368]
		.L727:
 1239     %FINISH
				mov	w1, -1
		.L750:
 1240     MODE = -1
 1241 DATA:
 1242     %CYCLE
 1243        GET EXP;  ASSEMBLE
				mov	x18, x20
				bl	GETEXP.16
		.LVL744:
				mov	x18, x20
				bl	ASSEMBLE.18
		.LVL745:
 1244        FAULT('I') %IF TYPE&REGXMASK # 0
				mov	x18, x20
				mov	w0, 73
				bl	FAULT.45
		.LVL740:
				b	.L757
		.LVL741:
		.L766:
				ldr	w1, [sp, 436]
				mov	w0, 144
				tst	w1, w0
				bne	.L884
		.L757:
 1245        I = 1
		.LVL746:
				cmp	w19, 1000
				csinc	w19, w19, wzr, lt
		.L759:
		.LVL748:
				mov	w19, 1
				b	.L758
		.LVL753:
		.L885:
 1246        %IF S('$') %START
				mov	x18, x20
				mov	w0, 36
				bl	S.33
		.LVL747:
				cbnz	w0, .L827
 1247           I = VAL %IF VAL < 1000
				ldr	w19, [sp, 432]
 1248           QLIM = QSTART
				ldr	w0, [x23, 308]
				str	w0, [x23, 244]
 1249           GET EXP;  ASSEMBLE
				mov	x18, x20
				bl	GETEXP.16
		.LVL749:
				mov	x18, x20
				bl	ASSEMBLE.18
		.LVL750:
 1250        %FINISH
 1251        %WHILE I > 0 %CYCLE
		.LDL206:
				cmp	w19, 0
				ble	.L766
		.LVL751:
		.L758:
				subs	w19, w19, #1
		.LVL758:
				beq	.L766
		.LVL759:
		.L767:
 1252           %IF MODE # -1 %START
		.LDL207:
				ldr	w22, [sp, 388]
				cmn	w22, #1
				beq	.L885
 1253              FAULT('T') %IF VAL&16_FF00 # 0
				mov	w25, 84
				b	.L767
		.LVL752:
		.L827:
				mov	x18, x20
				mov	w0, w25
				bl	FAULT.45
		.LVL755:
				b	.L764
		.L887:
				ldr	w21, [sp, 432]
				tst	w21, 65280
				bne	.L886
		.L764:
 1254              %IF MODE = -2 %START
		.LDL208:
				cmn	w22, #2
				bne	.L887
 1255                 J = VAL<<8;  MODE = -3
				mov	w26, -3
				lsl	w24, w21, 8
		.LVL760:
				str	w26, [sp, 388]
 1256              %finish %ELSE %START
				b	.L763
		.L883:
 1257                 VAL = VAL+J;  MODE = -2
				mov	w27, -2
				b	.L771
		.L881:
				add	w21, w24, w21
				str	w21, [sp, 432]
				str	w27, [sp, 388]
 1258                 PLANT VAL;  VAL = VAL&255
				mov	x18, x20
				bl	PLANTVAL.1
		.LVL756:
				ldrb	w0, [sp, 432]
				str	w0, [sp, 432]
		.L763:
 1259              %FINISH
 1260           %finish %ELSE %START
 1261              PLANT VAL
				mov	x18, x20
				bl	PLANTVAL.1
		.LVL754:
				b	.L763
		.L886:
 1262           %FINISH
 1263           I = I-1
		.LVL757:
 1264        %REPEAT
 1265        %EXIT %UNLESS S(',') %OR SYM&128 # 0
				mov	x18, x20
				mov	w0, 44
				bl	S.33
		.LVL742:
				cbnz	w0, .L882
				ldr	w0, [sp, 372]
				tbz	x0, 7, .L883
		.L768:
		.LDL209:
 1266        %IF SYM = NL %START
				ldr	w0, [sp, 372]
				cmp	w0, 10
				bne	.L768
 1267           PRINT LINE %IF PRINTPOS # 0;  READ LINE
				ldr	w0, [x23, 288]
				cbnz	w0, .L888
		.L770:
				mov	x18, x20
				bl	READLINE.38
		.LVL762:
				mov	x18, x20
				bl	PRINTLINE.47
		.LVL763:
				b	.L770
		.LVL764:
		.L866:
 1268           QSTART = QBASE
				ldr	w0, [x23, 292]
				str	w0, [x23, 308]
				b	.L768
		.L888:
 1269        %FINISH
 1270        QLIM = QSTART
				ldr	w0, [x23, 308]
				str	w0, [x23, 244]
 1271     %REPEAT
		.LVL743:
		.L771:
 1272     VAL=J %AND PLANT VAL %IF MODE = -3
				ldr	w0, [sp, 388]
				cmn	w0, #3
				bne	.L710
				str	w24, [sp, 432]
				mov	x18, x20
				bl	PLANTVAL.1
		.LVL761:
				b	.L710
		.L882:
		.L760:
 1273     ->SEND
 1274 
 1275 LABDEF:
 1276     CREG = -1;  ATYPE = -1
				mov	w0, -1
				str	w0, [sp, 424]
				str	w0, [sp, 428]
 1277     GET SYM
				mov	x18, x20
				bl	GETSYM.7
		.LVL690:
 1278     FAULT('C') %AND NP=STORELIM %IF NP # STORELIM
				ldr	w19, [x23, 316]
				ldr	w0, [x23, 236]
				cmp	w0, w19
				beq	.L731
				mov	x18, x20
				mov	w0, 67
				bl	FAULT.45
		.LVL691:
				str	w19, [x23, 236]
		.L731:
 1279     TYPE = LOCTYPE;  VAL = LOC
				ldr	w0, [sp, 440]
				str	w0, [sp, 436]
				ldr	w0, [sp, 444]
				str	w0, [sp, 432]
 1280     LOOKUP(7)
				mov	x18, x20
				mov	w0, 7
				bl	LOOKUP.32
		.LVL692:
 1281     ->NEXT
				b	.L686
		.L729:
 1282 
 1283 ASSIGN:
 1284     PEND = 1
				mov	w0, 1
				str	w0, [sp, 368]
 1285     GET EXP
				mov	x18, x20
				bl	GETEXP.16
		.LVL693:
 1286     ->ERR %IF %NOT S('=')
				mov	x18, x20
				mov	w0, 61
				bl	S.33
		.LVL694:
				cbz	w0, .L736
		.LDL173:
 1287     QUEUE(-25);                       !'STORE'
				mov	w0, -25
				bl	QUEUE.9
		.LVL695:
 1288     %IF INTEGER(QBASE) = REG %START
				ldr	w0, [x23, 292]
				bl	INTEGER.39
		.LVL696:
				cmp	w0, 128
				beq	.L866
		.L773:
 1289        DREG = INTEGER(QBASE+1)
				ldr	w0, [x23, 292]
				add	w0, w0, 1
				bl	INTEGER.39
		.LVL765:
				str	w0, [sp, 396]
 1290        DUSE = 0
				str	wzr, [sp, 392]
				b	.L773
		.L867:
 1291     %FINISH
 1292     QSTART = QLIM;  MODE = 2
				ldr	w0, [x23, 244]
				str	w0, [x23, 308]
				mov	w0, 2
				str	w0, [sp, 388]
 1293     GET EXP
				mov	x18, x20
				bl	GETEXP.16
		.LVL697:
 1294     %IF FLAG # 0 %START
				ldr	w1, [sp, 420]
				cbz	w1, .L781
 1295        %IF DREG<0 %AND FLAG-QSTART=QSTART-QBASE-1 %C
				ldr	w0, [sp, 396]
				tbz	w0, #31, .L775
				ldr	w2, [x23, 308]
				ldr	w0, [x23, 292]
				sub	w1, w1, w2
				sub	w2, w2, w0
				sub	w2, w2, #1
				cmp	w1, w2
				beq	.L867
		.L775:
				bl	INTEGER.39
		.LVL766:
				tbnz	x0, 8, .L775
 1296           %AND INTEGER(QBASE)&BMASK=0 %START
 1297        I = QBASE;  J = QSTART
				ldr	w21, [x23, 292]
		.LVL767:
				ldr	w0, [x23, 308]
		.LVL768:
				mov	w24, w0
				sub	w21, w21, w0
		.LVL769:
		.L776:
 1298        I = I+1 %AND J=J+1 %WHILE INTEGER(I) = INTEGER(J)
				add	w0, w21, w24
		.LVL770:
				bl	INTEGER.39
		.LVL771:
				mov	w19, w0
				mov	w0, w24
				bl	INTEGER.39
		.LVL772:
				cmp	w19, w0
				bne	.L889
		.LVL773:
				add	w24, w24, 1
		.LVL774:
				b	.L776
		.LVL775:
		.L889:
		.LDL210:
 1299        %IF J = FLAG %START
				ldr	w0, [sp, 420]
				cmp	w24, w0
				beq	.L890
		.LDL211:
 1300           %IF INTEGER(QLIM-1) = -2 %START; !MINUS
				adrp	x0, .LANCHOR0+244
				ldr	w0, [x0, #:lo12:.LANCHOR0+244]
				sub	w0, w0, #1
				bl	INTEGER.39
		.LVL776:
				cmn	w0, #2
				beq	.L780
		.LDL212:
 1301              QSTART = J-2
				sub	w0, w24, #2
				adrp	x1, .LANCHOR0+308
				str	w0, [x1, #:lo12:.LANCHOR0+308]
 1302 !!             INTEGER(QSTART) = 0;  INTEGER(QSTART+1) = 0
 1303              set INTEGER(QSTART, 0);  set INTEGER(QSTART+1, 0)
				mov	w1, 0
				bl	SETINTEGER.8
		.LVL777:
				mov	w1, 0
				sub	w0, w24, #1
				bl	SETINTEGER.8
		.LVL778:
 1304           %ELSE
				b	.L781
		.LVL779:
		.L868:
 1305              QSTART = J;  QLIM = QLIM-1
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				str	w24, [x0, 308]
				ldr	w1, [x0, 244]
				sub	w1, w1, #1
				str	w1, [x0, 244]
				b	.L781
		.L780:
 1306           %FINISH
 1307        %finish %ELSE FLAG = 0
				str	wzr, [sp, 420]
				b	.L781
		.L890:
 1308        %finish %ELSE FLAG = 0
				str	wzr, [sp, 420]
		.L774:
		.L781:
 1309     %FINISH
 1310     QUEUE(-24);                       !'LOAD'
				mov	w0, -24
				bl	QUEUE.9
		.LVL698:
		.L739:
 1311 
 1312 CONDQ:
 1313     %IF TAGIF %START
				mov	x18, x20
				bl	TAGIF.12
		.LVL699:
				cbz	w0, .L868
		.L782:
 1314        MODE = MODE+4;  DREG = DREG-16; !SCARIFY
				ldr	w0, [sp, 388]
				add	w0, w0, 4
				str	w0, [sp, 388]
				ldr	w0, [sp, 396]
				sub	w0, w0, #16
				str	w0, [sp, 396]
 1315        CONDIT(0)
				mov	x18, x20
				mov	w0, 0
				bl	CONDIT.11
		.LVL780:
 1316        MODE = MODE-4;  DREG = DREG+16; !RESTORE
				ldr	w0, [sp, 388]
				sub	w0, w0, #4
				str	w0, [sp, 388]
				ldr	w0, [sp, 396]
				add	w0, w0, 16
				str	w0, [sp, 396]
 1317        QLIM = QSTART;  QSTART = TRANSF
				ldr	w0, [x23, 308]
				str	w0, [x23, 244]
				ldr	w0, [x23, 312]
				str	w0, [x23, 308]
				b	.L782
		.L783:
 1318     %FINISH
 1319     ASSEMBLE
				mov	x18, x20
				bl	ASSEMBLE.18
		.LVL700:
 1320     ->SEND
		.L710:
		.LDL174:
 1321 
 1322 JUMP:
 1323     FLAG = TAG2-P;                    !POSITIVE IF SHORT
				sub	w1, w1, #16384
				sub	w1, w1, #822
				str	w1, [sp, 420]
 1324     GET EXP
				mov	x18, x20
				bl	GETEXP.16
		.LVL707:
 1325     QUEUE(-26);                       !'JUMP'
				mov	w0, -26
				bl	QUEUE.9
		.LVL708:
 1326     ->CONDQ
				b	.L739
		.L733:
 1327 
 1328 MINST:
 1329     MODE = -1
				mov	w0, -1
				str	w0, [sp, 388]
 1330     GET INST
				mov	x18, x20
				bl	GETINST.14
		.LVL710:
 1331     QUEUE(-23);                       !'PLANT'
				mov	w0, -23
				bl	QUEUE.9
		.LVL711:
 1332     ->CONDQ
				b	.L739
		.L740:
 1333 
 1334 MACCALL:
 1335     QUEUE(0);                         !(DEFPOS)
				mov	w0, 0
				bl	QUEUE.9
		.LVL733:
 1336     QUEUE(0);                         !SPARE
				mov	w0, 0
				bl	QUEUE.9
		.LVL734:
 1337     QUEUE(0);                         !(CALLPOS)
				mov	w0, 0
				bl	QUEUE.9
		.LVL735:
 1338     QUEUE(STARTPOS)
				adrp	x19, .LANCHOR0
				add	x19, x19, :lo12:.LANCHOR0
				ldr	w0, [x19, 280]
				bl	QUEUE.9
		.LVL736:
 1339     QUEUE(MP)
				ldr	w0, [x19, 272]
				bl	QUEUE.9
		.LVL737:
 1340     J = VAL;  QQ = 0
				ldr	w24, [sp, 432]
		.LVL738:
 1341     %CYCLE
 1342        %EXIT %IF CHAR(J) = NL;        !END OF MAC DEF
		.LDL213:
				mov	w0, w24
				bl	CHAR.6
		.LVL791:
				cmp	w0, 10
				beq	.L783
		.LDL214:
 1343        I = GETPOS-1;                  !SAVE CALLPOS
				mov	x21, x19
				ldr	w22, [x21, 240]
				sub	w22, w22, #1
		.LVL792:
 1344        GETPOS = J;  GET SYM
				add	x19, sp, 368
				b	.L754
		.L879:
				str	w24, [x21, 240]
				mov	x18, x19
				bl	GETSYM.7
		.LVL793:
 1345 !!       %MONITOR 24 %IF %NOT TAG
 1346        TYPE = 0;  VAL = 0
				str	wzr, [sp, 436]
				str	wzr, [sp, 432]
 1347        SCAN ARG
				mov	x18, x19
				bl	SCANARG.31
		.LVL794:
 1348        GET SYM %IF SYM = ','
				mov	x18, x19
				bl	GETSYM.7
		.LVL786:
				b	.L784
		.L788:
				ldr	w0, [sp, 372]
				cmp	w0, 44
				beq	.L893
		.L784:
 1349        J = GETPOS-1;                  !SAVE DEFPOS
				ldr	w24, [x21, 240]
		.LVL795:
				sub	w24, w24, #1
		.LVL796:
 1350        GETPOS = I;  GET SYM;          !RESTORE CALLPOS
				str	w22, [x21, 240]
				mov	x18, x19
				bl	GETSYM.7
		.LVL797:
 1351        SCAN ARG
				mov	x18, x19
				bl	SCANARG.31
		.LVL798:
 1352        GET SYM %IF SYM = ','
				ldr	w0, [sp, 372]
				cmp	w0, 44
				bne	.L788
				mov	x18, x19
				bl	GETSYM.7
		.LVL799:
				b	.L788
		.LVL800:
		.L891:
 1353        QUEUE(TAG1);  QUEUE(TAG2)
				ldr	w0, [sp, 384]
				bl	QUEUE.9
		.LVL787:
				ldr	w0, [sp, 380]
				bl	QUEUE.9
		.LVL788:
 1354        QUEUE(TYPE);  QUEUE(VAL)
				ldr	w0, [sp, 436]
				bl	QUEUE.9
		.LVL789:
				ldr	w0, [sp, 432]
				bl	QUEUE.9
		.LVL790:
 1355     %REPEAT
		.L754:
 1356     QQ = '?'
				adrp	x0, .LANCHOR1+12
				mov	w1, 63
				str	w1, [x0, #:lo12:.LANCHOR1+12]
 1357     GET SYM %IF SYM = ' '
				ldr	w0, [sp, 372]
				cmp	w0, 32
				beq	.L891
		.L786:
				add	x18, sp, 368
				bl	GETSYM.7
		.LVL801:
				b	.L786
		.L892:
 1358     %IF TAGIF %START
				add	x18, sp, 368
				bl	TAGIF.12
		.LVL781:
				cbz	w0, .L892
		.L789:
 1359        CONDIT(-18)
				add	x18, sp, 368
				mov	w0, -18
				bl	CONDIT.11
		.LVL802:
 1360        QLIM = QSTART
				adrp	x0, .LANCHOR0
				add	x0, x0, :lo12:.LANCHOR0
				ldr	w1, [x0, 308]
				str	w1, [x0, 244]
 1361 !!       INTEGER(QBASE+4) = MP+8_700000
 1362        set INTEGER(QBASE+4, MP+8_700000)
				ldr	w1, [x0, 272]
				ldr	w0, [x0, 292]
				add	w1, w1, 229376
				add	w0, w0, 4
				bl	SETINTEGER.8
		.LVL803:
				b	.L789
		.LVL804:
		.L894:
 1363     %FINISH
 1364     QUEUE(0)
				mov	w0, 0
				bl	QUEUE.9
		.LVL782:
 1365     STARTPOS = QLIM<<1
				adrp	x19, .LANCHOR0
				add	x19, x19, :lo12:.LANCHOR0
				ldr	w0, [x19, 244]
				lsl	w0, w0, 1
				str	w0, [x19, 280]
 1366     MP = QBASE
				ldr	w21, [x19, 292]
				str	w21, [x19, 272]
 1367 !!    INTEGER(MP) = J+1;                !START OF BODY
 1368     set INTEGER(MP, J+1);                !START OF BODY
				add	w1, w24, 1
				mov	w0, w21
				bl	SETINTEGER.8
		.LVL783:
 1369 !!    INTEGER(MP+2) = GETPOS-1
 1370     set INTEGER(MP+2, GETPOS-1)
				ldr	w1, [x19, 240]
				sub	w1, w1, #1
				add	w0, w21, 2
				bl	SETINTEGER.8
		.LVL784:
 1371     ->LEND
				b	.L722
		.LVL785:
		.L893:
 1372 
 1373 !CODING OF JUMPS: 1000 (SINGLE INST), 2000 (MAIN IF)
 1374 !                 4000 (ELSE), 6000 (IF AFTER ELSE)
 1375 
 1376 IFC:
 1377     CONDIT(-15)
				mov	x18, x20
				mov	w0, -15
				bl	CONDIT.11
		.LVL712:
 1378     ->SEND
				b	.L710
		.L877:
 1379 
 1380 ELSE:
 1381     ->CERR %IF INTEGER(NP)&16_2000 = 0
				ldr	w0, [x23, 236]
				bl	INTEGER.39
		.LVL713:
				tbz	x0, 13, .L705
		.LDL196:
 1382     QUEUE(0);  QUEUE(0)
				mov	w0, 0
				bl	QUEUE.9
		.LVL714:
				mov	w0, 0
				bl	QUEUE.9
		.LVL715:
 1383     QUEUE(-16);  ASSEMBLE
				mov	w0, -16
				bl	QUEUE.9
		.LVL716:
				mov	x18, x20
				bl	ASSEMBLE.18
		.LVL717:
 1384     ATYPE = -1; CREG = -1
				mov	w0, -1
				str	w0, [sp, 428]
				str	w0, [sp, 424]
 1385     %IF TAGIF %START
				mov	x18, x20
				bl	TAGIF.12
		.LVL718:
				cbnz	w0, .L710
 1386        CONDIT(-17)
				mov	x18, x20
				mov	w0, -17
				bl	CONDIT.11
		.LVL719:
				b	.L710
		.L876:
		.L741:
 1387     %FINISH
 1388     ->SEND
 1389 
 1390 FINISH:
 1391     ->CERR %IF INTEGER(NP)&16_6000 = 0
				ldr	w0, [x23, 236]
				bl	INTEGER.39
		.LVL725:
				tst	w0, 24576
				beq	.L705
		.LDL200:
 1392     I = LOC
				ldr	w19, [sp, 444]
				b	.L790
		.L859:
 1393     %WHILE INTEGER(NP)&16_4000 # 0 %CYCLE
		.LDL215:
				ldr	w0, [x23, 236]
				bl	INTEGER.39
		.LVL807:
				tbz	x0, 14, .L894
 1394        %IF INTEGER(NP)&16_2000 # 0 %START; !IF AFTER ELSE
				ldr	w0, [x23, 236]
				bl	INTEGER.39
		.LVL808:
				tbnz	x0, 13, .L792
		.LDL216:
 1395           SET LAB(I)
				mov	x18, x20
				mov	w0, w19
				bl	SETLAB.10
		.LVL806:
 1396        %finish %ELSE %START
		.L790:
 1397           SET LAB(LOC)
				mov	x18, x20
				ldr	w0, [sp, 444]
				bl	SETLAB.10
		.LVL809:
 1398           I = VAL+4
				ldr	w19, [sp, 432]
		.LVL810:
				add	w19, w19, 4
		.LVL811:
				b	.L790
		.LVL812:
		.L869:
 1399        %FINISH
 1400     %REPEAT
 1401     SET LAB(I)
				mov	x18, x20
				mov	w0, w19
				bl	SETLAB.10
		.LVL805:
 1402     ->SEND
				b	.L710
		.L792:
 1403 
 1404 WHILE:
 1405     I = LOC;  ATYPE = -1;  CREG = -1
				ldr	w19, [sp, 444]
		.LVL726:
				mov	w0, -1
				str	w0, [sp, 428]
				str	w0, [sp, 424]
 1406     CONDIT(-13)
				mov	x18, x20
				mov	w0, -13
				bl	CONDIT.11
		.LVL727:
 1407     NEST(I);  NEST(1)
				mov	w0, w19
				bl	NEST.0
		.LVL728:
				mov	w0, 1
				bl	NEST.0
		.LVL729:
 1408     ->SEND
				b	.L710
		.LVL730:
		.L878:
 1409 
 1410 CYCLE:
 1411     NEST(LOC);  NEST(1)
				ldr	w0, [sp, 444]
				bl	NEST.0
		.LVL731:
				mov	w0, 1
				bl	NEST.0
		.LVL732:
 1412     ATYPE = -1;  CREG = -1
				mov	w0, -1
				str	w0, [sp, 428]
				str	w0, [sp, 424]
 1413     ->SEND
				b	.L710
		.L751:
 1414 
 1415 REPEAT:
 1416     ->CERR %IF INTEGER(NP) # 1
				ldr	w0, [x23, 236]
				bl	INTEGER.39
		.LVL720:
				cmp	w0, 1
				bne	.L705
		.LDL198:
 1417     QUEUE(LOCTYPE);  QUEUE(INTEGER(NP+1))
				ldr	w0, [sp, 440]
				bl	QUEUE.9
		.LVL721:
				ldr	w0, [x23, 236]
				add	w0, w0, 1
				bl	INTEGER.39
		.LVL722:
				bl	QUEUE.9
		.LVL723:
 1418     NP = NP+2
				ldr	w0, [x23, 236]
				add	w0, w0, 2
				str	w0, [x23, 236]
 1419     QUEUE(-26);                       !'JUMP'
				mov	w0, -26
				bl	QUEUE.9
		.LVL724:
 1420     FLAG = -1
				mov	w0, -1
				str	w0, [sp, 420]
 1421     ->CONDQ
				b	.L739
		.L880:
 1422 
 1423 CERR:
 1424     FAULT('C')
				mov	x18, x20
				mov	w0, 67
				bl	FAULT.45
		.LVL685:
 1425     ->LEND
				b	.L797
		.L863:
 1426 
 1427 SEND:
 1428     SET LAB(LOC) %IF INTEGER(NP)&16_1000 # 0
				ldr	w0, [x23, 236]
				bl	INTEGER.39
		.LVL701:
				tbnz	x0, 12, .L869
		.L794:
				mov	x18, x20
				ldr	w0, [sp, 444]
				bl	SETLAB.10
		.LVL813:
				b	.L794
		.L693:
		.LDL217:
 1429     ->LEND %IF SYM = NL
				ldr	w0, [sp, 372]
				cmp	w0, 10
				beq	.L797
		.LDL175:
 1430     ->NEXT %IF S(';')
				mov	x18, x20
				mov	w0, 59
				bl	S.33
		.LVL702:
				cbnz	w0, .L693
		.L686:
 1431 
 1432 ERR:FSYM = 'F';  FAULTPOS = GETPOS-1
				mov	w0, 70
				str	w0, [sp, 448]
				ldr	w0, [x23, 240]
				sub	w0, w0, #1
				str	w0, [x23, 296]
				mov	w0, 70
				str	w0, [sp, 448]
				ldr	w0, [x23, 240]
				sub	w0, w0, #1
				str	w0, [x23, 296]
 1433     PRINTPOS = STARTPOS
				ldr	w0, [x23, 280]
				str	w0, [x23, 288]
				ldr	w0, [x23, 280]
				str	w0, [x23, 288]
				mov	w28, 0
				b	.L795
		.LVL861:
		.L815:
 1434 
 1435 LEND:
 1436     ->READ %IF SKIP # 0 %AND LIST&4 = 0
				cbz	w28, .L726
		.L698:
		.LVL655:
				ldr	x0, [sp, 96]
				ldr	w0, [x0, 16]
				tbz	x0, 2, .L685
		.L726:
				cbz	w28, .L795
		.LVL814:
				ldr	x0, [sp, 96]
				ldr	w0, [x0, 16]
				tbz	x0, 2, .L685
		.L795:
		.LVL860:
 1437     ->READ %IF FSYM = ' ' %AND CHARS = 0 %AND %C
				ldr	w0, [sp, 448]
				cmp	w0, 32
				bne	.L795
				ldr	w0, [x23, 4]
				cbnz	w0, .L795
				ldr	w0, [x23, 288]
				cbz	w0, .L685
				ldr	w0, [x23, 272]
				cbz	w0, .L795
				ldr	x0, [sp, 96]
				ldr	w0, [x0, 16]
				tbz	x0, 1, .L685
				b	.L795
		.LVL656:
		.L694:
 1438      (PRINTPOS = 0 %OR (MP#0 %AND LIST&2=0))
 1439     PRINT LINE
				mov	x18, x20
				bl	PRINTLINE.47
		.LVL815:
 1440     ->READ
		.L685:
 1441 
 1442 ASSIF:
 1443     ASSCOND = ASSCOND<<1
				ldr	w0, [sp, 108]
				lsl	w0, w0, 1
				str	w0, [sp, 108]
		.LVL657:
 1444     ->LEND %IF SKIP # 0
				cbnz	w28, .L698
		.LVL658:
		.L697:
		.LDL155:
 1445 A1: CONDIT(0)
				mov	x18, x20
				mov	w0, 0
				bl	CONDIT.11
		.LVL659:
 1446     SKIP = ASSCOND %IF COND # 0
				ldr	w0, [sp, 416]
				cbz	w0, .L799
		.L800:
		.LVL660:
 1447     PRINT LINE %IF PRINTPOS # 0
				ldr	w0, [x23, 288]
				ldr	w1, [sp, 108]
				mov	w28, w1
				cbz	w0, .L797
		.LVL661:
		.L824:
				mov	x18, x20
				bl	PRINTLINE.47
		.LVL662:
				b	.L797
		.LVL663:
		.L872:
				ldr	w28, [x23, 288]
				cbz	w28, .L726
				mov	w28, w0
				b	.L824
		.LFE199:
				.section	.rodata
				.align	3
				.set	.LANCHOR2,. + 0
		.LC5:
				.byte	33
				.string	"Integer fetch was not aligned at "
		
		
		
		
				.zero	221
		
		
		
		
		__PRETTY_FUNCTION__.53:
				.string	"_imp_SELECTINPUT"
		
		
		
				.zero	7
		__PRETTY_FUNCTION__.85:
				.string	"_imp_SELECTOUTPUT"
		
		
		
				.zero	6
		__PRETTY_FUNCTION__.50:
				.string	"_imp_OUTDEV"
		
		
				.zero	4
		.LC0:
				.byte	18
				.string	"interdata/test.hal"
		
		
		
				.zero	236
		
		
		
		
		.LC1:
				.byte	19
				.string	"interdata/hal70.def"
		
		
		
		
				.zero	235
		
		
		
		
		.LC2:
				.byte	18
				.string	"interdata/test.bin"
		
		
		
				.zero	236
		
		
		
		
		.LC3:
				.byte	18
				.string	"interdata/test.lis"
		
		
		
				.zero	236
		
		
		
		
				.data
				.align	2
				.set	.LANCHOR1,. + 0
		TEMPS.97:
				.word	12
		SAVE.117:
				.word	1
		PASS.93:
				.word	-1
		QQ.106:
				.word	63
		LIST.118:
				.word	-1
				.bss
				.align	3
				.set	.LANCHOR0,. + 0
		PUTPOS.95:
				.zero	4
		CHARS.99:
				.zero	4
		CODEPOS.141:
				.zero	4
		HOLD.52:
				.zero	4
		BINCOUNT.96:
				.zero	4
				.zero	4
		BREC.92:
				.zero	208
		
		
		
		
		CHECK.91:
				.zero	4
		NP.138:
				.zero	4
		GETPOS.100:
				.zero	4
		QLIM.123:
				.zero	4
		BP.136:
				.zero	4
		MACLIM.140:
				.zero	4
		DEFMIN.134:
				.zero	4
		LINES.98:
				.zero	4
		DEFLIM.135:
				.zero	4
		ALMAX.130:
				.zero	4
		MP.131:
				.zero	4
		LABMIN.129:
				.zero	4
		STARTPOS.132:
				.zero	4
		PSEUDOLIM.94:
				.zero	4
		PRINTPOS.104:
				.zero	4
		QBASE.125:
				.zero	4
		FAULTPOS.126:
				.zero	4
		SEQ.51:
				.zero	4
		ZQUERY.66:
				.zero	4
		QSTART.124:
				.zero	4
		TRANSF.101:
				.zero	4
		STORELIM.139:
				.zero	4
		LABLIM.137:
				.zero	4
				.zero	4
		STORE.133:
				.zero	130048
		
		
		
		
				.section	.data.rel.local,"aw"
				.align	3
				.set	.LANCHOR3,. + 0
		sw1_ASS.80:
				.xword	.L610
		
				.xword	.L611
		
				.xword	.L612
		
				.xword	.L613
		
				.xword	.L602
		
				.xword	.L593
		
				.xword	.L591
		
				.xword	.L589
		
				.xword	.L578
		
				.xword	.L571
		
				.xword	.L570
		
				.xword	.L614
		
				.xword	.L569
		
				.xword	.L568
		
				.xword	.L567
		
				.xword	.L566
		
				.xword	.L564
		
				.xword	.L560
		
				.xword	.L559
		
				.xword	.L541
		
				.xword	.L615
		
				.xword	.L616
		
				.xword	.L538
		
				.xword	.L537
		
				.xword	.L535
		
				.xword	.L534
		
				.xword	.L533
		
				.xword	.L532
		
				.xword	.L524
		
				.xword	.L528
		
		.Letext0:
 1448     ->LEND
 1449 
 1450 ASSELSE:
 1451     %IF SKIP = 0 %START
				cbnz	w28, .L860
		.LDL218:
 1452        ->CERR %IF ASSCOND&1 # 0
				ldr	w0, [sp, 108]
				tbnz	x0, 0, .L705
		.LDL157:
 1453        SKIP = ASSCOND
		.LVL664:
 1454     %finish %ELSE %START
		.LDL158:
 1455        ->LEND %IF SKIP # ASSCOND
				ldr	w0, [sp, 108]
				cmp	w28, w0
				bne	.L698
		.LDL219:
 1456        SKIP = 0
				mov	w28, 0
				b	.L726
		.LVL684:
		.L862:
		.LVL817:
				mov	w28, w21
				b	.L726
		.LVL820:
		.L706:
 1457        ->A1 %IF TAGIF
				add	x18, sp, 368
				bl	TAGIF.12
		.LVL818:
				cbz	w0, .L697
		.LDL220:
 1458     %FINISH
 1459     ASSCOND = ASSCOND+1
				add	w0, w0, 1
		.LVL665:
				str	w0, [sp, 108]
				ldr	w0, [sp, 108]
				add	w0, w0, 1
				str	w0, [sp, 108]
		.LVL819:
 1460     ->LEND
				mov	w28, w0
				b	.L797
		.LVL666:
		.L873:
 1461 
 1462 ASSFIN:
 1463     ->CERR %IF ASSCOND = 1
				ldr	w0, [sp, 108]
				cmp	w0, 1
				beq	.L705
		.LDL160:
 1464     ASSCOND = ASSCOND>>1
				ldr	w0, [sp, 108]
				lsr	w0, w0, 1
				str	w0, [sp, 108]
		.LVL667:
 1465     SKIP = 0 %IF SKIP>>1 = ASSCOND
				cmp	w0, w28, lsr 1
				bne	.L797
		.LVL668:
				mov	w28, w21
				b	.L726
		.LVL669:
		.L707:
 1466     ->LEND
 1467 
 1468 DEFINE:
 1469     FAULT('C') %IF NP # STORELIM
				ldr	w1, [x23, 236]
				ldr	w0, [x23, 316]
				cmp	w1, w0
				beq	.L802
				mov	x18, x20
				mov	w0, 67
				bl	FAULT.45
		.LVL821:
		.L802:
 1470     I = TAG1
 1471     %CYCLE
 1472        ->ERR %IF %NOT (TAG %AND S('='))
				mov	w22, 61
				mov	x18, x20
				bl	TAG.34
		.LVL829:
				cbnz	w0, .L736
				mov	x18, x20
				mov	w0, w22
				bl	S.33
		.LVL830:
				cbz	w0, .L736
		.LDL224:
 1473        J = TAG1;  K = TAG2
				ldr	w24, [sp, 384]
		.LVL831:
				ldr	w21, [sp, 380]
		.LVL832:
 1474        %IF TAG %START
				mov	x18, x20
				bl	TAG.34
		.LVL833:
				cbz	w0, .L803
		.LDL225:
 1475           TAGREF
				mov	x18, x20
				bl	TAGREF.13
		.LVL823:
 1476           %IF TYPE&OPMASK # 0 %START
				ldr	w0, [sp, 436]
				tst	w0, 61440
				bne	.L805
		.LDL221:
 1477              GET INST
				mov	x18, x20
				bl	GETINST.14
		.LVL835:
 1478           %finish %ELSE %START
				b	.L804
		.L806:
 1479              PEND = -1;  GET EXP
				mov	w25, -1
				b	.L808
		.LVL822:
		.L803:
				str	w25, [sp, 368]
				mov	x18, x20
				bl	GETEXP.16
		.LVL824:
		.L804:
 1480           %FINISH
 1481        %finish %ELSE GET EXP
				mov	x18, x20
				bl	GETEXP.16
		.LVL834:
				b	.L804
		.L805:
 1482        ASSEMBLE
				mov	x18, x20
				bl	ASSEMBLE.18
		.LVL825:
 1483        TAG1 = J;  TAG2 = K
				str	w24, [sp, 384]
				str	w21, [sp, 380]
 1484        %IF I=DEF %THEN LOOKUP(3) %ELSE LOOKUP(2)
				mov	w0, 4605
				cmp	w19, w0
				beq	.L806
		.LDL222:
				mov	x18, x20
				mov	w0, 2
				bl	LOOKUP.32
		.LVL826:
		.L807:
				mov	x18, x20
				mov	w0, 3
				bl	LOOKUP.32
		.LVL836:
				b	.L807
		.LVL837:
		.L810:
 1485        %EXIT %UNLESS S(',')
				mov	x18, x20
				mov	w0, 44
				bl	S.33
		.LVL827:
				cbz	w0, .L710
		.LDL223:
 1486        QLIM = QSTART
				ldr	w0, [x23, 308]
				str	w0, [x23, 244]
 1487     %REPEAT
		.LVL828:
		.L808:
 1488     ->SEND
 1489 
 1490 NEWPAGE:
 1491     DO NEWLINE %WHILE LINES # 0
				ldr	w0, [x23, 260]
				cbz	w0, .L797
		.L809:
				bl	DONEWLINE.15
		.LVL653:
				ldr	w0, [x23, 260]
				cbnz	w0, .L809
		.L691:
		.LVL654:
		.L797:
		.LDL151:
		.LDL152:
		.LDL153:
				adrp	x0, .LANCHOR0+260
				ldr	w0, [x0, #:lo12:.LANCHOR0+260]
				cbnz	w0, .L809
		.LVL687:
				mov	w28, w0
				b	.L726
		.LVL688:
		.L864:
 1492     ->LEND
 1493 
 1494 LISTC:
 1495     GET EXP;  ASSEMBLE
				mov	x18, x20
				bl	GETEXP.16
		.LVL670:
				mov	x18, x20
				bl	ASSEMBLE.18
		.LVL671:
 1496     LIST = VAL
				ldr	x0, [sp, 96]
				ldr	w1, [sp, 432]
				str	w1, [x0, 16]
 1497     ->SEND
				b	.L710
		.L874:
 1498 
 1499 TEMP:
 1500     I = 0
		.LVL672:
				mov	w19, w28
 1501     %IF SYM # NL %START
				ldr	w0, [sp, 372]
				cmp	w0, 10
				bne	.L861
		.LVL673:
		.L711:
		.LDL163:
 1502        %CYCLE
 1503           GET EXP
				mov	x18, x20
				bl	GETEXP.16
		.LVL841:
 1504           FAULT('I') %IF TYPE # REG
				mov	w25, 73
				ldr	w0, [sp, 436]
				cmp	w0, 128
				beq	.L810
				mov	x18, x20
				mov	w0, w25
				bl	FAULT.45
		.LVL842:
				b	.L810
		.LVL843:
		.L713:
 1505           I = I!1<<VAL
				mov	w22, 1
				ldr	w0, [sp, 432]
				lsl	w0, w22, w0
				orr	w19, w19, w0
		.LVL838:
 1506           %EXIT %UNLESS S(',')
				mov	w21, 44
				b	.L712
		.LVL676:
		.L875:
				mov	x18, x20
				mov	w0, w21
				bl	S.33
		.LVL839:
				cbz	w0, .L711
		.LVL840:
		.L712:
		.LDL226:
 1507        %REPEAT
 1508     %FINISH
 1509     TEMPS = I
				ldr	x0, [sp, 96]
				str	w19, [x0]
 1510     SET ACC
				mov	x18, x20
				bl	SETACC.40
		.LVL674:
 1511     ->SEND
				b	.L710
		.LVL675:
		.L861:
 1512 
 1513 LOCC:
 1514     I = TAG1
 1515     GET EXP;  ASSEMBLE
				mov	x18, x20
				bl	GETEXP.16
		.LVL844:
				mov	x18, x20
				bl	ASSEMBLE.18
		.LVL845:
 1516     %IF TYPE&16_FF80 = 0 %START
				ldr	w0, [sp, 436]
				tst	w0, 65408
				bne	.L895
		.LDL227:
 1517        %IF I = 13556 %START;          !LOC
				mov	w0, 13556
				cmp	w19, w0
				bne	.L812
 1518           OUTPUT RECORD %IF BINCOUNT >= 203
				ldr	w0, [x23, 16]
				cmp	w0, 202
				bgt	.L896
		.L813:
				bl	OUTPUTRECORD.43
		.LVL849:
				b	.L813
		.L897:
 1519           PUT(3) %IF (LOCTYPE!!TYPE)&RELMASK # 0
				ldr	w0, [sp, 440]
				ldr	w1, [sp, 436]
				eor	w0, w0, w1
				tbnz	x0, 5, .L897
		.L814:
				mov	w0, 3
				bl	PUT.42
		.LVL850:
				b	.L814
		.LVL851:
		.L865:
 1520           PUT(5);  PUT WORD(VAL)
				mov	w0, 5
				bl	PUT.42
		.LVL846:
				ldr	w0, [sp, 432]
				bl	PUTWORD.29
		.LVL847:
		.L812:
 1521        %FINISH
 1522        LOCTYPE = TYPE&63+MEMMASK;  LOC = VAL
				ldr	w0, [sp, 436]
				and	w0, w0, 63
				add	w0, w0, 64
				str	w0, [sp, 440]
				ldr	w0, [sp, 432]
				str	w0, [sp, 444]
 1523     %finish %ELSE FAULT('I')
				b	.L710
		.L895:
				mov	x18, x20
				mov	w0, 73
				bl	FAULT.45
		.LVL848:
				b	.L710
		.L896:
 1524     ->SEND
 1525 
 1526 SAVC:
 1527     GET EXP;  ASSEMBLE
				mov	x18, x20
				bl	GETEXP.16
		.LVL705:
				mov	x18, x20
				bl	ASSEMBLE.18
		.LVL706:
 1528     SAVE = VAL
				adrp	x0, .LANCHOR1
				add	x0, x0, :lo12:.LANCHOR1
				str	x0, [sp, 96]
				b	.L685
		.LVL651:
		.L870:
				ldr	x0, [sp, 96]
				ldr	w1, [sp, 432]
				str	w1, [x0, 4]
 1529     ->SEND
				b	.L710
		.L858:
		.L738:
 1530 
 1531 MACDEF:
 1532     ->CERR %IF MP # 0
				adrp	x0, .LANCHOR0+272
				ldr	w0, [x0, #:lo12:.LANCHOR0+272]
				cbz	w0, .L865
		.L705:
		.LDL228:
 1533     ->ERR %IF %NOT TAG
				add	x18, sp, 368
				bl	TAG.34
		.LVL852:
				cbz	w0, .L736
		.LDL229:
 1534     J = TAG1;  K = TAG2
				ldr	w24, [sp, 384]
		.LVL853:
				ldr	w21, [sp, 380]
		.LVL854:
 1535     I = GETPOS-1
				adrp	x0, .LANCHOR0+240
				ldr	w19, [x0, #:lo12:.LANCHOR0+240]
		.LVL855:
				sub	w19, w19, #1
		.LVL862:
 1536     %IF SYM # NL %START
				ldr	w0, [sp, 372]
				cmp	w0, 10
				beq	.L815
 1537        %CYCLE
 1538           ->ERR %IF %NOT TAG
				add	x22, sp, 368
				mov	x18, x22
				bl	TAG.34
		.LVL856:
				cbz	w0, .L736
		.LDL231:
 1539           SCAN ARG
				mov	x18, x22
				bl	SCANARG.31
		.LVL857:
 1540           %EXIT %IF %NOT S(',')
				mov	w25, 44
		.L816:
		.LDL230:
				mov	x18, x22
				mov	w0, w25
				bl	S.33
		.LVL858:
				cbnz	w0, .L816
		.L817:
		.LDL232:
 1541        %REPEAT
 1542     %FINISH
 1543     ->ERR %IF SYM # NL
				ldr	w0, [sp, 372]
				cmp	w0, 10
				beq	.L815
		.LVL859:
		.L736:
		.LDL233:
 1544     TAG1 = J;  TAG2 = K
				str	w24, [sp, 384]
				str	w21, [sp, 380]
 1545     TYPE = MACRO;  VAL = I
				mov	w0, 40960
				str	w0, [sp, 436]
				str	w19, [sp, 432]
 1546     LOOKUP(3)
				add	x18, sp, 368
				mov	w0, 3
				bl	LOOKUP.32
		.LVL863:
 1547     %CYCLE
 1548        PRINT LINE
				add	x21, sp, 368
		.LVL864:
				mov	x18, x21
				bl	PRINTLINE.47
		.LVL867:
 1549        %EXIT %IF S('$') %AND TAG %AND TAG1 = END
				mov	w25, 36
				mov	w22, 6009
				mov	x18, x21
				mov	w0, w25
				bl	S.33
		.LVL868:
				cbnz	w0, .L819
				mov	x18, x21
				bl	TAG.34
		.LVL869:
				cbnz	w0, .L819
				ldr	w0, [sp, 384]
				cmp	w0, w22
				bne	.L819
		.LDL234:
 1550        STARTPOS = PUTPOS
				adrp	x19, .LANCHOR0
		.LVL865:
				add	x19, x19, :lo12:.LANCHOR0
				b	.L818
		.L819:
				ldr	w0, [x19]
 1551        STARTPOS = PSEUDOLIM+1 %IF PSEUDOLIM # 0
				ldr	w2, [x19, 284]
				add	w1, w2, 1
				cmp	w2, 0
				csel	w0, w1, w0, ne
				str	w0, [x19, 280]
		.L820:
 1552        READ LINE
				mov	x18, x21
				bl	READLINE.38
		.LVL866:
 1553     %REPEAT
		.L818:
 1554     PUTPOS = STARTPOS;  PUT CHAR(0)
				adrp	x21, .LANCHOR0
				add	x19, x21, :lo12:.LANCHOR0
				ldr	w0, [x19, 280]
				str	w0, [x21, #:lo12:.LANCHOR0]
				mov	w0, 0
				bl	PUTCHAR.37
		.LVL870:
 1555     STARTPOS = PUTPOS
				ldr	w0, [x21, #:lo12:.LANCHOR0]
				str	w0, [x19, 280]
 1556     MACLIM = STARTPOS
				str	w0, [x19, 252]
 1557     ->LEND
				b	.L722
		.LVL871:
		.L822:
		.LDL235:
 1558 
 1559 %ROUTINE BNEST
				stp	x29, x30, [sp, -48]!
				mov	x29, sp
				stp	x19, x20, [sp, 16]
				stp	x21, x22, [sp, 32]
 1560 !!    BP = BP+4;  %MONITOR 23 %IF BP-NP >= 0
 1561     BP = BP+4;  !{}%signal 2,3 %IF BP-NP >= 0
				adrp	x19, .LANCHOR0
				add	x19, x19, :lo12:.LANCHOR0
				ldr	w20, [x19, 248]
				add	w21, w20, 4
				str	w21, [x19, 248]
 1562 !!    INTEGER(BP-3) = SAVE;  INTEGER(BP-2) = TEMPS
 1563     set INTEGER(BP-3, SAVE);  set INTEGER(BP-2, TEMPS)
				adrp	x22, .LANCHOR1
				add	x0, x22, :lo12:.LANCHOR1
				ldr	w1, [x0, 4]
				add	w0, w20, 1
				bl	SETINTEGER.8
		.LVL95:
				ldr	w1, [x22, #:lo12:.LANCHOR1]
				add	w0, w20, 2
				bl	SETINTEGER.8
		.LVL96:
 1564 !!    INTEGER(BP-1) = MACLIM;  INTEGER(BP) = DEFMIN
 1565     set INTEGER(BP-1, MACLIM);  set INTEGER(BP, DEFMIN)
				ldr	w1, [x19, 252]
				add	w0, w20, 3
				bl	SETINTEGER.8
		.LVL97:
				ldr	w1, [x19, 256]
				mov	w0, w21
				bl	SETINTEGER.8
		.LVL98:
 1566 %END
 1567 
 1568 BEGIN:
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
				ldp	x29, x30, [sp], 48
				ret
		.LFE248:
				.align	2
		DONEWLINE.15:
		.LFB210:
 1569     BNEST
				bl	BNEST.41
		.LVL686:
 1570     ->NEWPAGE %IF SYM # NL
				ldr	w0, [sp, 372]
				cmp	w0, 10
				beq	.L722
 1571     ->LEND
 1572 
 1573 BEND:
 1574     FAULT('C') %IF NP # STORELIM %OR MP # 0
				ldr	w19, [x23, 316]
				ldr	w0, [x23, 236]
				cmp	w0, w19
				bne	.L724
				adrp	x0, .LANCHOR0+272
				ldr	w0, [x0, #:lo12:.LANCHOR0+272]
				cbz	w0, .L821
		.L724:
				add	x18, sp, 368
				mov	w0, 67
				bl	FAULT.45
		.LVL677:
		.L821:
 1575     MP = 0;  NP = STORELIM
				str	wzr, [x23, 272]
				str	w19, [x23, 236]
 1576     %IF BP # LABLIM %START
				ldr	w0, [x23, 248]
				ldr	w1, [x23, 320]
				cmp	w0, w1
				beq	.L822
 1577        SAVE = INTEGER(BP-3);  TEMPS = INTEGER(BP-2)
				sub	w0, w0, #3
				bl	INTEGER.39
		.LVL678:
				adrp	x19, .LANCHOR1
				add	x1, x19, :lo12:.LANCHOR1
				str	w0, [x1, 4]
				ldr	w0, [x23, 248]
				sub	w0, w0, #2
				bl	INTEGER.39
		.LVL679:
				str	w0, [x19, #:lo12:.LANCHOR1]
 1578        MACLIM = INTEGER(BP-1);  STARTPOS = MACLIM
				ldr	w0, [x23, 248]
				sub	w0, w0, #1
				bl	INTEGER.39
		.LVL680:
				str	w0, [x23, 252]
				str	w0, [x23, 280]
 1579        DEFMIN = INTEGER(BP)
				ldr	w0, [x23, 248]
				bl	INTEGER.39
		.LVL681:
				str	w0, [x23, 256]
 1580        SET ACC
				mov	x18, x20
				bl	SETACC.40
		.LVL682:
 1581        BP = BP-4
				ldr	w0, [x23, 248]
				sub	w0, w0, #4
				str	w0, [x23, 248]
 1582        ->LEND %IF BP # LABLIM
				ldr	w1, [x23, 320]
				cmp	w0, w1
				beq	.L822
		.L722:
		.LVL683:
 1583     %FINISH
 1584     CLOSE INPUT;  SELECT INPUT(MAIN)
		.LBB193:
		.LBI193:
 1585     BNEST
				bl	BNEST.41
		.LVL874:
 1586     LIST = 5
				adrp	x0, .LANCHOR1
				add	x0, x0, :lo12:.LANCHOR1
				mov	w1, 5
				str	w1, [x0, 16]
 1587     PASS = PASS+1
				ldr	w1, [x0, 8]
				add	w1, w1, 1
				str	w1, [x0, 8]
 1588     ->DO PASS %IF PASS # 2
				cmp	w1, 2
				bne	.L683
		.LDL236:
 1589 
 1590     OUTPUT RECORD %IF BINCOUNT = 208
				adrp	x0, .LANCHOR0+16
				ldr	w0, [x0, #:lo12:.LANCHOR0+16]
				cmp	w0, 208
				beq	.L898
		.L823:
				bl	OUTPUTRECORD.43
		.LVL883:
				b	.L823
		.LVL884:
		.L799:
 1591     PUT(1)
				mov	w0, 1
				bl	PUT.42
		.LVL875:
 1592     OUTPUT RECORD
				bl	OUTPUTRECORD.43
		.LVL876:
 1593     FAULT('$')
				add	x19, sp, 368
				mov	x18, x19
				mov	w0, 36
				bl	FAULT.45
		.LVL877:
 1594     PRINT LOC;  PRINT LINE
				mov	x18, x19
				bl	PRINTLOC.46
		.LVL878:
				mov	x18, x19
				bl	PRINTLINE.47
		.LVL879:
 1595 
 1596 %ENDOFPROGRAM

 1517 Statements compiled
				mov	w0, 0
				ldp	x29, x30, [sp]
				ldp	x19, x20, [sp, 16]
				ldp	x21, x22, [sp, 32]
				ldp	x23, x24, [sp, 48]
		.LVL880:
				ldp	x25, x26, [sp, 64]
				ldp	x27, x28, [sp, 80]
				add	sp, sp, 1744
		.LVL881:
				ret
		.LVL882:
		.L898:
