X-Git-Url: https://jxself.org/git/?p=pdp10-muddle.git;a=blobdiff_plain;f=mim%2Fdevelopment%2Fmim%2Fvaxc%2Flsac.mud;fp=mim%2Fdevelopment%2Fmim%2Fvaxc%2Flsac.mud;h=6d878ceaeea6d6b15b85a3af27355f021e08a894;hp=0000000000000000000000000000000000000000;hb=d73ace3f3292e320b461b8fcd2e9f5dc5d9684d7;hpb=d530283ea60fb0ddcc28e9c5bd072456afe06e07 diff --git a/mim/development/mim/vaxc/lsac.mud b/mim/development/mim/vaxc/lsac.mud new file mode 100644 index 0000000..6d878ce --- /dev/null +++ b/mim/development/mim/vaxc/lsac.mud @@ -0,0 +1,720 @@ + +> + +) "AUX" VAR CMOD) + #DECL ((NAME) (TEMP) BOOLEAN) + + <> <> <> .TEMP <> <>> VARTBL>>) + (T )> + + + + )>> + )>)> + )> + .VAR> + +)) + #DECL ((NAME) ATOM (VALUE) ) + + .NAME> + + )>> + ,VAR-LIST> + .VAR?> + +) + > + + >)> + + > + +) + > + + >> ,VAR-LIST>> + +)) + #DECL ((VAR) VARTBL) + + + >>> + +> + +> + +> + +> + +> + + 0 ()> STK-MODEL>> + +> + + + > + +> + +)> + + > + +> + )> + >> + +) + "AUX" (OFF ) (CMOD ,CURRENT-MODEL) VARS) + #DECL ((VAR) VARTBL (IOFF) FIX) + > ) + (>) + ()>> + + > + > + + >> + ) + ( 1>> (.VAR)>)>)> + > + ) + (<0? .OFF> ) + (T )>> + +> + + > + ,AC-STORE-OPT + > 2>>> + .DEST .MODE> + ) + (ELSE .DEST .MODE>)>> + +> + + > + ,AC-STORE-OPT + > 2>>> + .DEST DOUBLE> + ) + (ELSE + + + .DEST DOUBLE>)>> + +) (WILL-DIE-LIES? <>) + "AUX" DADDR (VAR ) VAC TAC (STOREV <>) + (STORET <>) (STOREC <>) SVEC KIND) + #DECL ((LVAR) LINKVAR (XREF) (SVEC) CODEVEC) + + + + > + >>) + (ELSE + + > + > + >> + <==? + >>> + .VAC> + > + .DADDR> + >> + + + ) + (> + >> + )> + > + + + )> + > + > + + + > + > + ) + (> + > + )>)> + >>> + > + + >)>)>> + +) + + COUNT-VALUE) + (.STOREC TYPE-COUNT) + (.STOREV TYPE-VALUE) + (TYPE)>) + (<==? .STORET TYPE-COUNT> + ) + (ELSE + COUNT-VALUE) + (.STOREV VALUE) + (.STOREC COUNT)>)>> + +)) + #DECL ((LVAR) LINKVAR) + > + >> + + >>> + ) + (T + > + + > + + + ) + (> + ) + (> ) + ()>)>)> + .KIND> + +)) + #DECL ((DCL) ATOM (ADDR) EFF-ADDR) + + .ADDR LONG .EXTRA>) + (> + ,TYPE-LENGTHS>>> + .ADDR LONG .EXTRA>) + (ELSE .ADDR WORD>)>> + +>) + "AUX" TAC VAC LVAR) + > + + T> + '[WORD FIX]>> + > + >) + (T + > + > LONG> + >>)>) + (>> + + T> + ) + (> + > + <==? .VAC>> + + + >) + (T + .TAC>)>) + (T + > + > + + + >> + <>>) + (T + > + )>)> + .AC .RES>)> + .AC> + +) (USE? T) + "AUX" LVAR NOAC? TAC VAC TAC1 TAC2 (MODE .IMODE)) + #DECL ((VAR) VARTBL (MODE) ATOM (MODIFY?) BOOLEAN (AC-TYPE) AC-CHOICES + (DCL?) (USE?) BOOLEAN) + )> + >> + >> >) + (<==? .MODE VALUE> + + > + > + <==? .VAC> + > + > + + >) + (>)> + .TAC> + ) + (T + + )>)>) + (> + >) + (ELSE >)>) + (<==? .MODE TYPE> + > + >) + (> + > + >> + >) + (ELSE >)>) + (<==? .MODE COUNT> + >) + (> + >) + (> + >) + (ELSE >)>) + (<==? .MODE TYPE-WORD> + > + >) + (> + > + >> + WORD> + + )> + > + >> + WORD> + + )> + > + >> + + + WORD> + )> + >) + (ELSE >)>) + ()> + + <==? .IMODE VALUE> + + > + > + >>> + + + >> + ) + (ELSE >)>> + > + > + > + > + .TAC) + ( + > + + + > + > + .TAC) + (ELSE + > + > + .NOAC?)>> + + + + .VAC) + (> + > + .VAC) + (ELSE .VAC)>) + (.VAC)>) + (ELSE + > + + .FAC) + (ELSE )>)>> + + .MODE>) + (<==? .MODE DOUBLE> + >) + (ELSE >)>> + + + >> + > + >> + >) + (> + >> + >) + (> + >> + >) + (> + >> + >)>)> + .AC> + >> + +) "AUX" PAC) + #DECL ((AC-MODE) AC-CHOICES) + )> + ) + (>) + (> + + >)> + .PAC) + ()> + + >)>)> + .PAC> + +> + +) BEST-AC2) + #DECL ((ACS) ) + + > + <==? .MODE DOUBLE>>> + )> + > + >)> + 2) (ELSE 1)>>> + + + >> + )> + + + )> + )> + > + >> + + > + >>>> + + )> + )> + > + + >>> + + )>>> + )> + .BEST-AC> + + + + LONG> + > + > + + > + +) (SAVE? <>)) + #DECL ((AC) AC (FLUSH) BOOLEAN (SAVE?) ) + + + )>> + > + )>> + +> + + LONG> + ) + (ELSE )> + .FAC> + +> + > + > + >) + (ELSE + > + > + >)>> + +) (ALREADY? <>) + "AUX" (LVAR ) TAC FAC DCL CAC + (SAFE? ) (RLVAR <>) + (TSTORED? + >) + (CLEAR-TYPE? <>) (CLEAR-COUNT? <>)) + #DECL ((VAR) VARTBL (AC) AC (MODE) ATOM (MODIFY?) BOOLEAN) + + > + > + >>> + + >) + (ELSE T>)>) + ( > ) + (> + > + ) + ()> + + + ) + ()> > + >)>) + (<==? .MODE TYPE> + + WORD> + + >)>) + (> + LONG> + ) + ()>) + (<==? .MODE COUNT> WORD>) + (<==? .MODE TYPE-WORD> + LONG>) + (ELSE + > + + LONG> + WORD>) + (ELSE LONG>)>) + (> + > + > + WORD> + + >)> + WORD>) + ()>) + ()> + + + )>) + (<==? .MODE VALUE> LONG>)> + >>) + ;( > + >>)> + >)> + >)>)>> + + <==? .AC .MODE>) (ELSE T)>> + +) "AUX" LVAR TAC) + #DECL ((VAR) VARTBL (KIND) ATOM) + > + >> + 1>>> + )> + + ) + ()>> + +) + "AUX" LVAR TAC) + #DECL ((VAR) VARTBL (KIND) ATOM (MODE) ATOM) + + > + > + >>> + 1>>> + )> + + ) + ( + <==? .MODE TYPEMODE> + <==? .MODE TYPEWORD>> + > + >> + 1>>> + )> + + ) + ()>> + +) "AUX" LVAR TAC) + #DECL ((VAR) VARTBL (KIND) ATOM) + > + >> + 1>>> + )> + + ) + ()>> + + >> ,ALL-ACS>> + +>> + + + > + ,PUSH-TEMPS >)>> + +> ) + (> + LONG> + ) + (ELSE )>> + +) + >)> + > + > LONG> + ) + ( LONG>)>) + (ELSE + DOUBLE>)>> + +)) + #DECL ((VAR) VARTBL) + > + >> + > + <==? <+ 1> >> + DOUBLE> + + ) + (ELSE + LONG>)> + ) + ( + + > + DOUBLE> + ) + (ELSE + LONG>)>) + (> + + WORD> + WORD>) + ( LONG>)>) + (>> + WORD> + + > + WORD> + )>) + ()> + + LONG>)>> + + + + + > + >) + (ELSE + + > + + > + >)> + > + .NAC> + + + + > + ) + (ELSE + + > + >)> + + >)> + > + + .NAC> + + >> + + + )>> + >> + + + > +