2 "These macros generate the codes for basic VAX addressing modes and
3 include some of the hairier cases."
6 <GFCN
\1aMA-REG ("VALUE" FORM "QUOTE" ANY) AC4>
20 <CALL '
\1aFORM 2 = STACK>
21 <CALL '
\1aFORM 3 = STACK>
23 <CALL '
\1aFORM 3 = STACK>
25 <CALL '
\1aFORM 3 = TEMP9>
29 <COND (<AND <GASSIGNED? MA-REG> <NOT <TYPE? ,MA-REG MACRO>>> <SETG MA-REG <CHTYPE (,MA-REG) MACRO>>)>
32 <GFCN
\1aMA-LIT ("VALUE" FORM "QUOTE" ANY) VAL4>
44 <CALL '
\1aFORM 3 = STACK>
46 <CALL '
\1aFORM 3 = STACK>
48 <CALL '
\1aFORM 3 = TEMP8>
52 <COND (<AND <GASSIGNED? MA-LIT> <NOT <TYPE? ,MA-LIT MACRO>>> <SETG MA-LIT <CHTYPE (,MA-LIT) MACRO>>)>
55 <GFCN
\1aMA-INDX ("VALUE" FORM "QUOTE" ANY) AC4>
69 <CALL '
\1aFORM 2 = STACK>
70 <CALL '
\1aFORM 3 = STACK>
72 <CALL '
\1aFORM 3 = STACK>
74 <CALL '
\1aFORM 3 = TEMP9>
78 <COND (<AND <GASSIGNED? MA-INDX> <NOT <TYPE? ,MA-INDX MACRO>>> <SETG MA-INDX <CHTYPE (,MA-INDX) MACRO>>)>
81 <GFCN
\1aMA-REGD ("VALUE" FORM "QUOTE" ANY) AC4>
95 <CALL '
\1aFORM 2 = STACK>
96 <CALL '
\1aFORM 3 = STACK>
98 <CALL '
\1aFORM 3 = STACK>
100 <CALL '
\1aFORM 3 = TEMP9>
104 <COND (<AND <GASSIGNED? MA-REGD> <NOT <TYPE? ,MA-REGD MACRO>>> <SETG MA-REGD <CHTYPE (,MA-REGD) MACRO>>)>
107 <GFCN
\1aMA-ADEC ("VALUE" FORM "QUOTE" ANY) AC4>
121 <CALL '
\1aFORM 2 = STACK>
122 <CALL '
\1aFORM 3 = STACK>
124 <CALL '
\1aFORM 3 = STACK>
126 <CALL '
\1aFORM 3 = TEMP9>
130 <COND (<AND <GASSIGNED? MA-ADEC> <NOT <TYPE? ,MA-ADEC MACRO>>> <SETG MA-ADEC <CHTYPE (,MA-ADEC) MACRO>>)>
133 <GFCN
\1aMA-AINC ("VALUE" FORM "QUOTE" ANY) AC4>
147 <CALL '
\1aFORM 2 = STACK>
148 <CALL '
\1aFORM 3 = STACK>
150 <CALL '
\1aFORM 3 = STACK>
152 <CALL '
\1aFORM 3 = TEMP9>
156 <COND (<AND <GASSIGNED? MA-AINC> <NOT <TYPE? ,MA-AINC MACRO>>> <SETG MA-AINC <CHTYPE (,MA-AINC) MACRO>>)>
159 <GFCN
\1aMA-AINCD ("VALUE" FORM "QUOTE" ANY) AC4>
173 <CALL '
\1aFORM 2 = STACK>
174 <CALL '
\1aFORM 3 = STACK>
176 <CALL '
\1aFORM 3 = STACK>
178 <CALL '
\1aFORM 3 = TEMP9>
182 <COND (<AND <GASSIGNED? MA-AINCD> <NOT <TYPE? ,MA-AINCD MACRO>>> <SETG MA-AINCD <CHTYPE (,MA-AINCD) MACRO>>)>
185 <GFCN
\1aMA-BD ("VALUE" FORM "QUOTE" ANY "QUOTE" ANY) AC4 DISP5>
203 <CALL '
\1aFORM 2 = STACK>
204 <CALL '
\1aFORM 3 = STACK>
206 <CALL '
\1aFORM 3 = STACK>
212 <CALL '
\1aFORM 3 = STACK>
213 <CALL '
\1aFORM 3 = STACK>
215 <CALL '
\1aFORM 3 = STACK>
217 <CALL '
\1aFORM 3 = TEMP13>
221 <COND (<AND <GASSIGNED? MA-BD> <NOT <TYPE? ,MA-BD MACRO>>> <SETG MA-BD <CHTYPE (,MA-BD) MACRO>>)>
224 <GFCN
\1aMA-BDD ("VALUE" FORM "QUOTE" ANY "QUOTE" ANY) AC4 DISP5>
242 <CALL '
\1aFORM 2 = STACK>
243 <CALL '
\1aFORM 3 = STACK>
245 <CALL '
\1aFORM 3 = STACK>
251 <CALL '
\1aFORM 3 = STACK>
252 <CALL '
\1aFORM 3 = STACK>
254 <CALL '
\1aFORM 3 = STACK>
256 <CALL '
\1aFORM 3 = TEMP13>
260 <COND (<AND <GASSIGNED? MA-BDD> <NOT <TYPE? ,MA-BDD MACRO>>> <SETG MA-BDD <CHTYPE (,MA-BDD) MACRO>>)>
263 <GFCN
\1aMA-WD ("VALUE" FORM "QUOTE" ANY "QUOTE" ANY) AC4 DISP5>
279 <CALL '
\1aFORM 2 = STACK>
280 <CALL '
\1aFORM 3 = STACK>
282 <CALL '
\1aFORM 3 = STACK>
285 <TYPE? DISP5 <TYPE-CODE FIX> + TAG14>
286 <TYPE? DISP5 <TYPE-CODE WORD> + TAG14>
287 <TYPE? DISP5 <TYPE-CODE CHARACTER> - PHRASE13>
289 <LSH DISP5 16 = TEMP15 (TYPE FIX)>
290 <AND DISP5 #WORD *177400* = TEMP16>
292 <OR TEMP15 TEMP16 = TEMP15>
298 <CONS DISP5 () = TEMP16>
300 <CONS 'V TEMP16 = TEMP16>
301 <CONS TEMP16 () = STACK>
309 <CALL '
\1aFORM 3 = STACK>
314 <CALL '
\1aFORM 3 = STACK>
315 <CALL '
\1aFORM 3 = STACK>
316 <CALL '
\1aFORM 3 = TEMP15>
321 <CALL '
\1aFORM 3 = STACK>
322 <CALL '
\1aFORM 3 = STACK>
324 <CALL '
\1aFORM 3 = TEMP15>
328 <COND (<AND <GASSIGNED? MA-WD> <NOT <TYPE? ,MA-WD MACRO>>> <SETG MA-WD <CHTYPE (,MA-WD) MACRO>>)>
331 <GFCN
\1aMA-WDD ("VALUE" FORM "QUOTE" ANY "QUOTE" ANY) AC4 DISP5>
347 <CALL '
\1aFORM 2 = STACK>
348 <CALL '
\1aFORM 3 = STACK>
350 <CALL '
\1aFORM 3 = STACK>
357 <CALL '
\1aFORM 3 = STACK>
359 <CALL '
\1aFORM 3 = STACK>
365 <CALL '
\1aFORM 3 = STACK>
366 <CALL '
\1aFORM 4 = STACK>
368 <CALL '
\1aFORM 3 = TEMP14>
372 <COND (<AND <GASSIGNED? MA-WDD> <NOT <TYPE? ,MA-WDD MACRO>>> <SETG MA-WDD <CHTYPE (,MA-WDD) MACRO>>)>
375 <GFCN
\1aMA-LD ("VALUE" FORM "QUOTE" ANY "QUOTE" ANY) AC4 DISP5>
391 <CALL '
\1aFORM 2 = STACK>
392 <CALL '
\1aFORM 3 = STACK>
394 <CALL '
\1aFORM 3 = STACK>
396 <CALL '
\1aFORM 3 = TEMP11>
397 <CONS TEMP11 () = TEMP11>
404 <CALL '
\1aFORM 2 = STACK>
406 <CALL '
\1aFORM 3 = TEMP14>
407 <CONS TEMP14 () = TEMP14>
408 <PUTREST TEMP11 TEMP14>
413 <CALL '
\1aFORM 3 = TEMP11>
417 <COND (<AND <GASSIGNED? MA-LD> <NOT <TYPE? ,MA-LD MACRO>>> <SETG MA-LD <CHTYPE (,MA-LD) MACRO>>)>
420 <GFCN
\1aMA-LDD ("VALUE" FORM "QUOTE" ANY "QUOTE" ANY) AC4 DISP5>
436 <CALL '
\1aFORM 2 = STACK>
437 <CALL '
\1aFORM 3 = STACK>
439 <CALL '
\1aFORM 3 = STACK>
441 <CALL '
\1aFORM 3 = TEMP11>
442 <CONS TEMP11 () = TEMP11>
449 <CALL '
\1aFORM 2 = STACK>
451 <CALL '
\1aFORM 3 = TEMP14>
452 <CONS TEMP14 () = TEMP14>
453 <PUTREST TEMP11 TEMP14>
458 <CALL '
\1aFORM 3 = TEMP11>
462 <COND (<AND <GASSIGNED? MA-LDD> <NOT <TYPE? ,MA-LDD MACRO>>> <SETG MA-LDD <CHTYPE (,MA-LDD) MACRO>>)>
465 <GFCN
\1aMA-BYTE-IMM ("VALUE" FORM "QUOTE" ANY) VAL4>
475 <CALL '
\1aFORM 2 = STACK>
483 <CALL '
\1aFORM 3 = STACK>
485 <CALL '
\1aFORM 3 = STACK>
486 <CALL '
\1aFORM 3 = STACK>
488 <CALL '
\1aFORM 3 = TEMP10>
492 <COND (<AND <GASSIGNED? MA-BYTE-IMM> <NOT <TYPE? ,MA-BYTE-IMM MACRO>>> <SETG MA-BYTE-IMM <CHTYPE (,MA-BYTE-IMM) MACRO>>)>
495 <GFCN
\1aMA-WORD-IMM ("VALUE" FORM "QUOTE" ANY) VAL4>
505 <CALL '
\1aFORM 2 = STACK>
508 <TYPE? VAL4 <TYPE-CODE FIX> + TAG11>
509 <TYPE? VAL4 <TYPE-CODE WORD> + TAG11>
510 <TYPE? VAL4 <TYPE-CODE CHARACTER> - PHRASE10>
512 <AND VAL4 #WORD *377* = TEMP12>
513 <LSH TEMP12 16 = TEMP12 (TYPE FIX)>
514 <AND VAL4 #WORD *177400* = TEMP13>
516 <OR TEMP12 TEMP13 = TEMP12>
522 <CONS VAL4 () = TEMP13>
524 <CONS 'V TEMP13 = TEMP13>
525 <CONS TEMP13 () = STACK>
535 <CALL '
\1aFORM 3 = STACK>
537 <CALL '
\1aFORM 3 = STACK>
542 <CALL '
\1aFORM 3 = STACK>
543 <CALL '
\1aFORM 3 = STACK>
544 <CALL '
\1aFORM 3 = TEMP12>
549 <CALL '
\1aFORM 3 = STACK>
550 <CALL '
\1aFORM 3 = STACK>
552 <CALL '
\1aFORM 3 = TEMP12>
556 <COND (<AND <GASSIGNED? MA-WORD-IMM> <NOT <TYPE? ,MA-WORD-IMM MACRO>>> <SETG MA-WORD-IMM <CHTYPE (,MA-WORD-IMM) MACRO>>)>
559 <GFCN
\1aMA-LONG-IMM ("VALUE" FORM "QUOTE" ANY) VAL4>
569 <CALL '
\1aFORM 2 = STACK>
571 <CALL '
\1aFORM 3 = TEMP8>
572 <CONS TEMP8 () = TEMP8>
579 <CALL '
\1aFORM 2 = STACK>
581 <CALL '
\1aFORM 3 = TEMP11>
582 <CONS TEMP11 () = TEMP11>
583 <PUTREST TEMP8 TEMP11>
588 <CALL '
\1aFORM 3 = TEMP8>
592 <COND (<AND <GASSIGNED? MA-LONG-IMM> <NOT <TYPE? ,MA-LONG-IMM MACRO>>> <SETG MA-LONG-IMM <CHTYPE (,MA-LONG-IMM) MACRO>>)>
595 <GFCN
\1aMA-IMM ("VALUE" <OR EFF-ADDR LADDR> <PRIMTYPE FIX>) VAL4>
598 <CHTYPE VAL4 <TYPE-CODE FIX> = VAL4>
599 <LESS? VAL4 0 + PHRASE6 (TYPE FIX)>
600 <GRTR? VAL4 63 + PHRASE6 (TYPE FIX)>
601 <AND VAL4 #WORD *77* = TEMP10>
603 <LSH TEMP10 24 = TEMP10 (TYPE FIX)>
604 <CHTYPE TEMP10 <TYPE-CODE EFF-ADDR> = TEMP10>
608 <EQUAL? VAL4 %<CHTYPE <MIN> FIX> - PHRASE13>
609 <SET VAL4 2147483647 (TYPE FIX)>
612 <EQUAL? VAL4 %<CHTYPE <MAX> FIX> - PHRASE14>
613 <SET VAL4 2147483649 (TYPE FIX)>
615 <GVAL 'AM-AINC = TEMP10>
616 <FRAME '
\1aAC-NUMBER>
617 <GVAL 'AC-PC = STACK>
618 <CALL '
\1aAC-NUMBER 1 = TEMP17>
619 <OR TEMP10 TEMP17 = TEMP10>
621 <LSH TEMP10 24 = TEMP10 (TYPE FIX)>
622 <CHTYPE TEMP10 <TYPE-CODE EFF-ADDR> = TEMP10>
623 <CONS TEMP10 () = TEMP10>
627 <CALL '
\1aLREV 1 = TEMP17>
628 <CHTYPE TEMP17 <TYPE-CODE EFF-ADDR> = TEMP17>
629 <CONS TEMP17 () = TEMP17>
630 <PUTREST TEMP10 TEMP17>
632 <CHTYPE TEMP10 <TYPE-CODE LADDR> = TEMP10>
638 <GFCN
\1aLREV ("VALUE" FIX ANY) VAL4>
639 <TEMP TEMP5:FIX TEMP6:FIX>
641 <AND VAL4 #WORD *377* = TEMP5>
642 <LSH TEMP5 24 = TEMP5 (TYPE FIX)>
643 <AND VAL4 #WORD *177400* = TEMP6>
644 <LSH TEMP6 8 = TEMP6 (TYPE FIX)>
645 <OR TEMP5 TEMP6 = TEMP5>
647 <AND VAL4 #WORD *77600000* = TEMP6>
648 <LSH TEMP6 -8 = TEMP6 (TYPE FIX)>
649 <OR TEMP5 TEMP6 = TEMP5>
651 <AND VAL4 #WORD *37700000000* = TEMP6>
653 <LSH TEMP6 -24 = TEMP6 (TYPE FIX)>
654 <OR TEMP5 TEMP6 = TEMP5>
661 <GFCN
\1aMA-DISP ("VALUE" <OR EFF-ADDR LADDR> ANY FIX) AC4 VAL5>
662 <TEMP AVAL6 TEMP12 TEMP14>
665 <LESS? AVAL6 0 - TAG7 (TYPE FIX)>
666 <SUB 0 AVAL6 = AVAL6 (TYPE FIX)>
668 <VEQUAL? VAL5 0 - PHRASE9 (TYPE FIX)>
669 <GVAL 'AM-REGD = TEMP12>
670 <FRAME '
\1aAC-NUMBER>
673 <CALL '
\1aAC-NUMBER 1 = TEMP14>
674 <OR TEMP12 TEMP14 = TEMP12>
676 <LSH TEMP12 24 = TEMP12 (TYPE FIX)>
677 <CHTYPE TEMP12 <TYPE-CODE EFF-ADDR> = TEMP12>
681 <GRTR? AVAL6 127 + PHRASE15 (TYPE FIX)>
682 <GVAL 'AM-BD = TEMP14>
683 <FRAME '
\1aAC-NUMBER>
686 <CALL '
\1aAC-NUMBER 1 = TEMP12>
687 <OR TEMP14 TEMP12 = TEMP14>
689 <LSH TEMP14 8 = TEMP14 (TYPE FIX)>
690 <AND VAL5 #WORD *377* = TEMP12>
692 <OR TEMP14 TEMP12 = TEMP14>
694 <LSH TEMP14 16 = TEMP14 (TYPE FIX)>
695 <CHTYPE TEMP14 <TYPE-CODE EFF-ADDR> = TEMP12>
700 <GRTR? AVAL6 32767 + PHRASE18 (TYPE FIX)>
702 <GVAL 'AM-WD = TEMP14>
703 <FRAME '
\1aAC-NUMBER>
706 <CALL '
\1aAC-NUMBER 1 = TEMP12>
707 <OR TEMP14 TEMP12 = TEMP14>
709 <LSH TEMP14 24 = TEMP14 (TYPE FIX)>
712 <LSH AVAL6 16 = TEMP12 (TYPE FIX)>
713 <AND AVAL6 #WORD *177400* = AVAL6>
714 <OR TEMP12 AVAL6 = TEMP12>
716 <AND TEMP12 #WORD *77777400* = TEMP12>
717 <OR TEMP14 TEMP12 = TEMP14>
719 <CHTYPE TEMP14 <TYPE-CODE EFF-ADDR> = TEMP12>
724 <GVAL 'AM-LD = TEMP14>
725 <FRAME '
\1aAC-NUMBER>
728 <CALL '
\1aAC-NUMBER 1 = TEMP12>
729 <OR TEMP14 TEMP12 = TEMP14>
731 <LSH TEMP14 24 = AVAL6 (TYPE FIX)>
733 <CHTYPE AVAL6 <TYPE-CODE EFF-ADDR> = AVAL6>
734 <CONS AVAL6 () = AVAL6>
738 <CALL '
\1aLREV 1 = TEMP12>
739 <CHTYPE TEMP12 <TYPE-CODE EFF-ADDR> = TEMP12>
740 <CONS TEMP12 () = TEMP12>
741 <PUTREST AVAL6 TEMP12>
743 <CHTYPE AVAL6 <TYPE-CODE LADDR> = TEMP12>
750 <GFCN
\1aMA-DEF-DISP ("VALUE" <OR EFF-ADDR LADDR> ANY FIX) AC4 VAL5>
754 <LESS? AVAL6 0 - TAG7 (TYPE FIX)>
755 <SUB 0 AVAL6 = AVAL6 (TYPE FIX)>
757 <GRTR? AVAL6 127 + PHRASE9 (TYPE FIX)>
758 <GVAL 'AM-BDD = AVAL6>
759 <FRAME '
\1aAC-NUMBER>
762 <CALL '
\1aAC-NUMBER 1 = TEMP12>
763 <OR AVAL6 TEMP12 = AVAL6>
765 <LSH AVAL6 8 = AVAL6 (TYPE FIX)>
766 <AND VAL5 #WORD *377* = TEMP12>
768 <OR AVAL6 TEMP12 = AVAL6>
770 <LSH AVAL6 16 = AVAL6 (TYPE FIX)>
771 <CHTYPE AVAL6 <TYPE-CODE EFF-ADDR> = AVAL6>
775 <GRTR? AVAL6 32767 + PHRASE13 (TYPE FIX)>
777 <GVAL 'AM-WDD = TEMP12>
778 <FRAME '
\1aAC-NUMBER>
781 <CALL '
\1aAC-NUMBER 1 = AVAL6>
782 <OR TEMP12 AVAL6 = TEMP12>
784 <LSH TEMP12 24 = TEMP12 (TYPE FIX)>
785 <AND VAL5 #WORD *377* = AVAL6>
786 <LSH AVAL6 16 = AVAL6 (TYPE FIX)>
787 <OR TEMP12 AVAL6 = TEMP12>
789 <AND VAL5 #WORD *177400* = AVAL6>
791 <OR TEMP12 AVAL6 = TEMP12>
793 <CHTYPE TEMP12 <TYPE-CODE EFF-ADDR> = AVAL6>
798 <GVAL 'AM-LDD = TEMP12>
799 <FRAME '
\1aAC-NUMBER>
802 <CALL '
\1aAC-NUMBER 1 = AVAL6>
803 <OR TEMP12 AVAL6 = TEMP12>
805 <LSH TEMP12 24 = TEMP12 (TYPE FIX)>
806 <CHTYPE TEMP12 <TYPE-CODE EFF-ADDR> = TEMP12>
807 <CONS TEMP12 () = TEMP12>
811 <CALL '
\1aLREV 1 = AVAL6>
812 <CHTYPE AVAL6 <TYPE-CODE EFF-ADDR> = AVAL6>
813 <CONS AVAL6 () = AVAL6>
814 <PUTREST TEMP12 AVAL6>
816 <CHTYPE TEMP12 <TYPE-CODE LADDR> = AVAL6>
823 <GFCN
\1aMA-ABS ("VALUE" FORM "QUOTE" ANY) ABS4>
833 <CALL '
\1aFORM 2 = STACK>
835 <CALL '
\1aFORM 3 = TEMP8>
836 <CONS TEMP8 () = TEMP8>
843 <CALL '
\1aFORM 2 = STACK>
845 <CALL '
\1aFORM 3 = TEMP11>
846 <CONS TEMP11 () = TEMP11>
847 <PUTREST TEMP8 TEMP11>
852 <CALL '
\1aFORM 3 = TEMP8>
856 <COND (<AND <GASSIGNED? MA-ABS> <NOT <TYPE? ,MA-ABS MACRO>>> <SETG MA-ABS <CHTYPE (,MA-ABS) MACRO>>)>