2 "These macros generate the codes for basic VAX addressing modes and
3 include some of the hairier cases."
6 <FORM CHTYPE <FORM LSH <FORM ORB ',AM-REG <FORM AC-NUMBER .AC>> 24>
10 <FORM CHTYPE <FORM LSH <FORM ANDB .VAL *77*> 24> EFF-ADDR>>
14 <FORM LSH <FORM ORB ',AM-INX <FORM AC-NUMBER .AC>> 24>
18 <FORM CHTYPE <FORM LSH <FORM ORB ',AM-REGD <FORM AC-NUMBER .AC>> 24>
22 <FORM CHTYPE <FORM LSH <FORM ORB ',AM-ADEC <FORM AC-NUMBER .AC>> 24>
26 <FORM CHTYPE <FORM LSH <FORM ORB ',AM-AINC <FORM AC-NUMBER .AC>> 24>
29 <DEFMAC MA-AINCD ('AC)
30 <FORM CHTYPE <FORM LSH <FORM ORB ',AM-AINCD <FORM AC-NUMBER .AC>> 24>
33 <DEFMAC MA-BD ('AC 'DISP)
34 <FORM CHTYPE <FORM LSH
35 <FORM ORB <FORM LSH <FORM ORB ',AM-BD
36 <FORM AC-NUMBER .AC>> 8>
37 <FORM ANDB .DISP *377*>>
41 <DEFMAC MA-BDD ('AC 'DISP)
42 <FORM CHTYPE <FORM LSH <FORM ORB <FORM LSH <FORM ORB ',AM-BDD
43 <FORM AC-NUMBER .AC>> 8>
44 <FORM ANDB .DISP *377*>> 16> EFF-ADDR>>
46 <DEFMAC MA-WD ('AC 'DISP)
49 <FORM LSH <FORM ORB ',AM-WD <FORM AC-NUMBER .AC>> 24>
51 <COND (<TYPE? .DISP FIX WORD CHARACTER>
53 <ANDB .DISP *177400*>>)
65 <DEFMAC MA-WDD ('AC 'DISP)
66 <FORM CHTYPE <FORM ORB <FORM LSH <FORM ORB ',AM-WDD
67 <FORM AC-NUMBER .AC>> 24>
68 <FORM LSH <FORM ANDB .DISP *377*> 16>
72 <DEFMAC MA-LD ('AC 'DISP)
73 <FORM CHTYPE (<FORM CHTYPE
75 <FORM ORB ',AM-LD <FORM AC-NUMBER .AC>> 24>
77 <FORM CHTYPE <FORM LREV .DISP> EFF-ADDR>) LADDR>>
79 <DEFMAC MA-LDD ('AC 'DISP)
80 <FORM CHTYPE (<FORM CHTYPE
82 <FORM ORB ',AM-LDD <FORM AC-NUMBER .AC>> 24>
84 <FORM CHTYPE <FORM LREV .DISP> EFF-ADDR>) LADDR>>
86 <DEFMAC MA-BYTE-IMM ('VAL)
89 <FORM MA-AINC ',AC-PC>
90 <FORM LSH <FORM ANDB .VAL 255> 16>>
93 <DEFMAC MA-WORD-IMM ('VAL)
96 <FORM MA-AINC ',AC-PC>
98 <COND (<TYPE? .VAL FIX WORD CHARACTER>
99 <ORB <LSH <ANDB .VAL 255> 16>
105 <FORM LSH <FORM ANDB '.V 255> 16>
106 <FORM ANDB '.V 65280>>>)>
110 <DEFMAC MA-LONG-IMM ('VAL)
112 (<FORM CHTYPE <FORM MA-AINC ',AC-PC> EFF-ADDR>
113 <FORM CHTYPE <FORM LREV .VAL> EFF-ADDR>)
117 #DECL ((VAL) <PRIMTYPE FIX>)
118 <SET VAL <CHTYPE .VAL FIX>>
119 <COND (<AND <G=? .VAL 0><L=? .VAL *77*>>
122 <COND (<==? .VAL <CHTYPE <MIN> FIX>>
123 <SET VAL *17777777777*>)
124 (<==? .VAL <CHTYPE <MAX> FIX>>
125 <SET VAL *20000000001*>)>
126 <MA-LONG-IMM .VAL>)>>
129 <CHTYPE <ORB <LSH <ANDB .VAL 255> 24>
130 <LSH <ANDB .VAL 65280> 8>
131 <LSH <ANDB .VAL 16711680> -8>
132 <LSH <ANDB .VAL *37700000000*> -24>>
135 <DEFINE MA-DISP (AC VAL "AUX" (AVAL <ABS .VAL>))
136 #DECL ((VAL AVAL) FIX)
137 <COND (<0? .VAL> <MA-REGD .AC>)
138 (<L=? .AVAL *177*> <MA-BD .AC .VAL>)
139 (<L=? .AVAL *77777*> <MA-WD .AC .VAL>)
140 (ELSE <MA-LD .AC .VAL>)>>
142 <DEFINE MA-DEF-DISP (AC VAL "AUX" (AVAL <ABS .VAL>))
143 #DECL ((VAL AVAL) FIX)
144 <COND (<L=? .AVAL *177*> <MA-BDD .AC .VAL>)
145 (<L=? .AVAL *77777*> <MA-WDD .AC .VAL>)
146 (ELSE <MA-LDD .AC .VAL>)>>
148 <DEFMAC MA-ABS ('ABS)
150 (<FORM CHTYPE <FORM MA-AINCD ',AC-PC> EFF-ADDR>
151 <FORM CHTYPE <FORM LREV .ABS> EFF-ADDR>)