5 <USE "CACS" "CODGEN" "COMCOD" "CHKDCL" "COMPDEC">
7 <DEFINE BIT-TEST-GEN (N W
8 "OPTIONAL" (NOTF <>) (BRANCH <>) (DIR <>)
9 "AUX" (NN <1 <KIDS .N>>) (SDIR .DIR) (B2 <MAKE:TAG>)
10 (FLS <==? .W FLUSHED>) N2 (IMMEDIATE T)
11 (TY <ISTYPE-GOOD? <RESULT-TYPE .NN>>) REG REG2
12 (CONST <NODE-SUBR .N>))
13 #DECL ((N NN N2) NODE (REG) DATUM)
14 <COND (<==? <LENGTH <KIDS .N>> 2> <SET N2 <2 <KIDS .N>>>)>
17 <DATUM <COND (.TY .TY)
18 (<MEMQ <NODE-TYPE .NN> ,SNODES> DONT-CARE)
22 <SET REG2 <GEN .N2 DONT-CARE>>
23 <COND (<TYPE? <DATTYP .REG2> AC>
24 <RET-TMP-AC <DATTYP .REG2> .REG2>
25 <PUT .REG2 ,DATTYP WORD>)>)>
26 <RET-TMP-AC <DATTYP .REG> .REG>
27 <PUT .REG ,DATTYP WORD>
28 <AND .NOTF <SET DIR <NOT .DIR>>>
29 <SET DIR <COND (<AND .BRANCH <NOT .FLS>> <NOT .DIR>) (ELSE .DIR)>>
32 <COND (<OR <ASSIGNED? N2>
33 <AND <NOT <0? <CHTYPE <ANDB .CONST 262143> FIX>>>
34 <NOT <0? <CHTYPE <GETBITS .CONST <BITS 18 18>> FIX>>>>>
36 <COND (.DIR `TDNN ) (ELSE `TDNE )>)
37 (<0? <CHTYPE <ANDB .CONST 262143> FIX>>
38 <COND (.DIR `TLNN ) (ELSE `TLNE )>)
42 !<COND (<ASSIGNED? N2> <ADDR:VALUE .REG2>)
43 (<NOT .IMMEDIATE> ([.CONST]))
44 (<0? <CHTYPE <ANDB .CONST 262143> FIX>>
45 (<CHTYPE <GETBITS .CONST <BITS 18 18>> FIX>))
48 <COND (<AND .BRANCH .FLS> <BRANCH:TAG .BRANCH> FLUSHED)
51 <SET W <MOVE:ARG <REFERENCE .SDIR> .W>>
56 <BRANCH:TAG <SET BRANCH <MAKE:TAG>>>
57 <TRUE-FALSE .N .BRANCH .W>)>>