Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / vaxc / msysdefs.mud
diff --git a/mim/development/mim/vaxc/msysdefs.mud b/mim/development/mim/vaxc/msysdefs.mud
new file mode 100644 (file)
index 0000000..96343ab
--- /dev/null
@@ -0,0 +1,284 @@
+<NEWTYPE RES-IND ATOM>
+
+<NEWSTRUC LABEL-REF VECTOR
+         LABEL-REF-NAME <OR ATOM SPEC-LABEL ATOM>
+         LABEL-REF-XREFS <LIST [REST XREF-INFO]>
+         LABEL-REF-REL-ADDR FIX
+         LABEL-REF-CODE-PTR FIX
+         LABEL-REF-LOOP-LABEL <OR FALSE AC-STATE>
+         LABEL-REF-PUSH-POINTER <OR FALSE FIX>
+         LABEL-REF-LIVE-VARS <LIST [REST VARTBL]>
+         LABEL-REF-DEAD-VARS <LIST [REST VARTBL]>
+         LABEL-REF-NOT-REAL <OR ATOM FALSE>>
+
+<NEWSTRUC XREF-INFO VECTOR
+         XREF-INFO-LABEL LABEL-REF
+         XREF-INFO-POINT FIX
+         XREF-INFO-SAVED-AC-INFO <OR FALSE AC-STATE>
+         XREF-INFO-STACK-SAVE-CODE <OR FALSE CODEVEC>
+         XREF-INFO-SHORT BOOLEAN
+         XREF-INFO-ADDR FIX
+         XREF-INFO-STATUS ANY
+         XREF-INFO-LILEN FIX
+         XREF-INFO-CP FIX
+         XREF-INFO-SLSTATE <OR FALSE SLOAD-STATE>
+         XREF-INFO-PSAVES <LIST [REST PTN-SAVE]>
+         XREF-INFO-FORCE-LONG BOOLEAN>
+
+<NEWSTRUC CALL-DESCRIPTOR VECTOR
+         CD-DISP-OFFSET FIX
+         CD-NAME ATOM
+         CD-ARGS <VECTOR [REST ARG-DESCRIPTOR]>
+         CD-RESULT <OR FALSE DATUM>
+         CD-FLUSH?-ACS BOOLEAN>
+
+<MSETG RTE-DISPATCH-TABLE-SIZE 200>
+
+<GDECL (RTE-DISP-TABLE) <VECTOR [REST <OR FALSE ATOM>]>>
+
+<NEWSTRUC DATUM VECTOR
+         DATUM-TYPE <OR FALSE ATOM>
+         DATUM-TAC <OR FALSE ATOM>
+         DATUM-VAC ATOM>
+
+<ENV-COND
+ ((ENVIRONMENT MDL) <PUTPROP ARG-DESCRIPTOR DECL '<OR ATOM AC-LDESC>>)
+ (T <PUT-DECL ARG-DESCRIPTOR '<OR ATOM AC-LDESC>>)>
+
+<NEWSTRUC AC-LDESC VECTOR
+         AC-LDESC-KIND ATOM
+         AC-LDESC-TAC <OR FALSE ATOM>
+         AC-LDESC-VAC ATOM>
+
+<GDECL (FRAME-LABEL-TABLE) <LIST [REST SPEC-LABEL]>>
+
+<MSETG CLT-CODE 1>
+
+<MSETG CEQ-CODE 2>
+
+<MSETG CGT-CODE 3>
+
+<GDECL (NCOMP-TABLE COMP-TABLE REVERSE-TABLE) <UVECTOR FIX>>
+
+<GDECL (FLUSH-NEXT) FIX>
+
+<GDECL (PASS-OPS) <UVECTOR [REST FIX]>>
+
+<MSETG MAX-NUMBER-ARGS 40>
+
+<GDECL (ARGVEC) VECTOR>
+
+<GDECL (FUNCTION-DECL) LIST
+       (FUNCTION-NAME) ATOM
+       (ARGLIST-VARS) <LIST [REST VARTBL]>
+       (ICALL-LABELS) <LIST [REST ATOM]>>
+
+<GDECL (TEMP-PATCH) FIX>
+
+<GDECL (CONSTANT-TYPE-AC CONSTANT-COUNT-AC) <OR FALSE AC>>
+
+<MSETG MAX-NUMBER-OPS 200>
+
+<GDECL (OP-APPLY-VECTOR) VECTOR (OP-COUNT) FIX (MIMOP-OBLIST) OBLIST>
+
+<MSETG BAD-OPERATION -1>
+
+<MSETG MAX16C <- <* 1024 32> 1>>
+
+<MSETG MAXP16C <- <* 1024 32 2> 1>>
+
+<MSETG MIN16C <- ,MAX16C>>
+
+<MSETG COND-CODE-ALWAYS
+       0
+       COND-CODE-NEVER
+       1
+       COND-CODE-HI
+       2
+       COND-CODE-LS
+       3
+       COND-CODE-CC
+       4
+       COND-CODE-CS
+       5
+       COND-CODE-NE
+       6
+       COND-CODE-EQ
+       7
+       COND-CODE-VC
+       8
+       COND-CODE-VS
+       9
+       COND-CODE-PL
+       10
+       COND-CODE-MI
+       11
+       COND-CODE-GE
+       12
+       COND-CODE-LT
+       13
+       COND-CODE-GT
+       14
+       COND-CODE-LE
+       15>
+
+<ENV-COND
+ ((ENVIRONMENT MDL) <PUT HINT DECL '<LIST ANY ANY>>)
+ (T <PUT-DECL HINT '<LIST ANY ANY>>)>
+
+<NEWSTRUC AC VECTOR
+         AC-NAME ATOM
+         AC-NUMBER FIX
+         AC-AGE FIX
+         AC-PROT <OR ATOM FALSE>
+         AC-RNUM FIX
+         AC-LLOAD <OR FALSE FIX>
+         AC-LLOAD-EA <OR FALSE EFF-ADDR>
+         AC-VARS <VECTOR [REST LINKVAR]>
+         AC-USE <OR FALSE ATOM>>
+
+<SETG PTR-AC 0>
+
+<MSETG AC-INT 0>
+
+<GDECL (AC-TIME) FIX>
+
+<MSETG STRUCTURED-TYPES [VECTOR LIST RECORD UVECTOR]>
+
+<NEWSTRUC LINKVAR VECTOR
+         LINKVAR-VAR VARTBL
+         LINKVAR-VALUE-STORED BOOLEAN
+         LINKVAR-COUNT-STORED BOOLEAN
+         LINKVAR-TYPE-STORED BOOLEAN
+         LINKVAR-DECL <OR FALSE ATOM>
+         LINKVAR-VALUE-AC <OR FALSE AC>
+         LINKVAR-TYPE-AC <OR FALSE AC>
+         LINKVAR-COUNT-AC <OR FALSE AC>
+         LINKVAR-TYPE-WORD-AC <OR FALSE AC>
+         LINKVAR-POTENTIAL-SAVES <LIST [REST XREF-INFO]>>
+
+<ENV-COND
+ ((ENVIRONMENT MDL)
+  <PUTPROP CACHED-VARIABLES DECL '<VECTOR [REST LINKVAR]>>)
+ (T
+  <PUT-DECL CACHED-VARIABLES '<VECTOR [REST LINKVAR]>>)>
+
+<MSETG CACHE-LENGTH 30>
+
+<ENV-COND
+ ((ENVIRONMENT MDL)
+  <PUTPROP AC-STATE DECL '<VECTOR [REST LINKVAR]>>)
+ (T
+  <PUT-DECL AC-STATE '<VECTOR [REST LINKVAR]>>)>
+
+<GDECL (VARIABLE-CACHE) AC-STATE>
+
+<GDECL (STATUS-AC) <OR FALSE AC>
+       (STATUS-VAR) <OR FALSE VARTBL>
+       (STATUS-TYPE) ATOM>
+
+<GDECL (UNCONDITIONAL-BRANCH) BOOLEAN>
+
+<NEWSTRUC VARTBL VECTOR
+         VARTBL-NAME ATOM
+         VARTBL-LOC <OR FALSE FIX>
+         VARTBL-TYPE <OR FALSE ATOM>
+         VARTBL-RDECL <OR FALSE ATOM>
+         VARTBL-DEAD? <OR FALSE ATOM>
+         VARTBL-TEMP? BOOLEAN
+         VARTBL-TDECL <OR FALSE ATOM>
+         VARTBL-INIT <OR FALSE INITVAL>>
+
+<NEWTYPE SPEC-FALSE LIST>
+
+<NEWTYPE INITVAL VECTOR>
+
+<GDECL (VAR-LIST) <LIST [REST VARTBL]>>
+
+<NEWSTRUC STK-MODEL VECTOR
+         SM-PATCHLOC FIX
+         SM-VARLIST <LIST [REST VARTBL]>
+         SM-KIDS <LIST [REST STK-MODEL]>
+         SM-PARENT <OR FALSE STK-MODEL>
+         SM-SAVED-VAR-POINTER FIX
+         SM-VARS <LIST [REST VARTBL]>>
+
+<GDECL (TOP-MODEL CURRENT-MODEL) STK-MODEL>
+
+<ENV-COND ((ENVIRONMENT MDL) <PUTPROP AC-CHOICES DECL '<OR ATOM AC>>)
+         (T <PUT-DECL AC-CHOICES '<OR ATOM AC>>)>
+
+<NEWSTRUC AC-LOAD-STATE VECTOR
+         ACL-LLOAD <OR FALSE FIX>
+         ACL-LLOAD-EA <OR FALSE EFF-ADDR>>
+
+<ENV-COND
+ ((ENVIRONMENT MDL)
+  <PUTPROP SLOAD-STATE DECL '<VECTOR [REST <OR FALSE AC-LOAD-STATE>]>>)
+ (T
+  <PUT-DECL SLOAD-STATE '<VECTOR [REST <OR FALSE AC-LOAD-STATE>]>>)>
+
+<GDECL (LOOP-VARS) AC-STATE>
+
+<GDECL (RE-GEN-POST RE-GEN-PRE) LIST>
+
+<MSETG INT-LABELS <VECTOR TCOMPERR>>
+
+<NEWSTRUC RECORD-ELEMENT-DESCRIPTOR VECTOR
+         RED-OFFSET-VALUE FIX
+         RED-OFFSET-TYPCNT FIX
+         RED-KIND ATOM
+         RED-BIT-NUMBER FIX
+         RED-SBOOL BOOLEAN
+         RED-LENGTH <OR FALSE FIX>
+         RED-OBJTYP <OR FALSE ATOM>>
+
+
+<GDECL (RECORD-TABLE) <LIST [REST RECORD-DESCRIPTOR]>>
+
+<NEWSTRUC RECORD-DESCRIPTOR VECTOR
+         REC-TYPE-NAME <VECTOR [REST ATOM]> 
+         REC-ELEMENTS <LIST [REST RECORD-ELEMENT-DESCRIPTOR]>
+         REC-STACK BOOLEAN>
+
+<NEWTYPE XGLOC ATOM>
+
+<NEWTYPE XTYPE-C ATOM>
+
+<NEWTYPE XTYPE-W ATOM>
+
+<NEWTYPE XCHANNEL-OP LIST>
+
+<GDECL (TYPE-WORDS) <VECTOR [REST ATOM FIX]>>
+
+<GDECL (MVEC-LIST) LIST (MVEC-OFF) FIX>
+
+<NEWTYPE T$UNBOUND FIX>
+
+<NEWTYPE ADECL VECTOR>
+
+<OR <LOOKUP "LBIND" <ROOT>> <INSERT "LBIND" <ROOT>>> 
+
+<OR <LOOKUP "GBIND" <ROOT>> <INSERT "GBIND" <ROOT>>>
+
+<GDECL (ALL-ACS) <VECTOR [REST AC]>>
+
+<GDECL (ICALL-LEVEL) FIX>
+
+<MSETG LONG-TYPE-MASK <PUTBITS <PUTBITS 0 <BITS 5 31> 1> <BITS 1 21> 1>>
+
+<MSETG SHORT-TYPE-MASK <PUTBITS <PUTBITS 0 <BITS 1 5> 1> <BITS 21 15> 1>>
+
+<MSETG ADDR-MASK <PUTBITS *37777777777* <BITS 2> 0>>
+
+<MSETG NUMVARS-AC 5>
+
+
+<MAPF <>
+      <FUNCTION (MODE-NAME MODE-CODE)
+          <MSETG .MODE-NAME <CHTYPE <LSH .MODE-CODE 4> FIX>>>
+      '[AM-REG AM-LIT AM-INX AM-REGD AM-ADEC AM-AINC AM-AINCD AM-BD AM-BDD
+       AM-WD AM-WDD AM-LD AM-LDD]
+      '[5 0 4 6 7 8 9 10 11 12 13 14 15]> 
+
+<MSETG LIST-NEXT-OFFSET -4>
\ No newline at end of file