--- /dev/null
+<PACKAGE "BITTST">
+
+<ENTRY BIT-TEST-GEN>
+
+<USE "CACS" "CODGEN" "COMCOD" "CHKDCL" "COMPDEC">
+
+<DEFINE BIT-TEST-GEN (N W
+ "OPTIONAL" (NOTF <>) (BRANCH <>) (DIR <>)
+ "AUX" (NN <1 <KIDS .N>>) (SDIR .DIR) (B2 <MAKE:TAG>)
+ (FLS <==? .W FLUSHED>) N2 (IMMEDIATE T)
+ (TY <ISTYPE-GOOD? <RESULT-TYPE .NN>>) REG REG2
+ (CONST <NODE-SUBR .N>))
+ #DECL ((N NN N2) NODE (REG) DATUM)
+ <COND (<==? <LENGTH <KIDS .N>> 2> <SET N2 <2 <KIDS .N>>>)>
+ <SET REG
+ <GEN .NN
+ <DATUM <COND (.TY .TY)
+ (<MEMQ <NODE-TYPE .NN> ,SNODES> DONT-CARE)
+ (ELSE ANY-AC)>
+ ANY-AC>>>
+ <COND (<ASSIGNED? N2>
+ <SET REG2 <GEN .N2 DONT-CARE>>
+ <COND (<TYPE? <DATTYP .REG2> AC>
+ <RET-TMP-AC <DATTYP .REG2> .REG2>
+ <PUT .REG2 ,DATTYP WORD>)>)>
+ <RET-TMP-AC <DATTYP .REG> .REG>
+ <PUT .REG ,DATTYP WORD>
+ <AND .NOTF <SET DIR <NOT .DIR>>>
+ <SET DIR <COND (<AND .BRANCH <NOT .FLS>> <NOT .DIR>) (ELSE .DIR)>>
+ <EMIT
+ <INSTRUCTION
+ <COND (<OR <ASSIGNED? N2>
+ <AND <NOT <0? <CHTYPE <ANDB .CONST 262143> FIX>>>
+ <NOT <0? <CHTYPE <GETBITS .CONST <BITS 18 18>> FIX>>>>>
+ <SET IMMEDIATE <>>
+ <COND (.DIR `TDNN ) (ELSE `TDNE )>)
+ (<0? <CHTYPE <ANDB .CONST 262143> FIX>>
+ <COND (.DIR `TLNN ) (ELSE `TLNE )>)
+ (.DIR `TRNN )
+ (ELSE `TRNE )>
+ <ACSYM <DATVAL .REG>>
+ !<COND (<ASSIGNED? N2> <ADDR:VALUE .REG2>)
+ (<NOT .IMMEDIATE> ([.CONST]))
+ (<0? <CHTYPE <ANDB .CONST 262143> FIX>>
+ (<CHTYPE <GETBITS .CONST <BITS 18 18>> FIX>))
+ (ELSE (.CONST))>>>
+ <RET-TMP-AC .REG>
+ <COND (<AND .BRANCH .FLS> <BRANCH:TAG .BRANCH> FLUSHED)
+ (.BRANCH
+ <BRANCH:TAG .B2>
+ <SET W <MOVE:ARG <REFERENCE .SDIR> .W>>
+ <BRANCH:TAG .BRANCH>
+ <LABEL:TAG .B2>
+ .W)
+ (ELSE
+ <BRANCH:TAG <SET BRANCH <MAKE:TAG>>>
+ <TRUE-FALSE .N .BRANCH .W>)>>
+
+<ENDPACKAGE>
\ No newline at end of file