(by rrh) Added three extra data types: GFLOAT, HFLOAT and OCTA
[unix-history] / usr / src / old / pcc / c2.vax / c22.c
index ec53580..f56f999 100644 (file)
@@ -1,6 +1,6 @@
-static char sccsid[] = "@(#)c22.c 4.1 %G%";
+static char sccsid[] = "@(#)c22.c 4.2 %G%";
 #include "c2.h"
 #include "c2.h"
-/* char c22[] = "@(#)c22.c 1.10 80/03/14 10:27:37"; */
+/* char c22[] = "@(#)c22.c 4.2 %G%"; */
 #define readonly
 
 readonly char revbr[] = {
 #define readonly
 
 readonly char revbr[] = {
@@ -8,296 +8,18 @@ readonly char revbr[] = {
        JNE, JEQ, JHI, JLO, JHIS, JLOS,
        JBS, JBC, JLBS, JLBC, JBSC, JBCC, JBSS, JBCS };
 
        JNE, JEQ, JHI, JLO, JHIS, JLOS,
        JBS, JBC, JLBS, JLBC, JBSC, JBCC, JBSS, JBCS };
 
-/* cursed be the preprocessor, whose impotence and stupidity
-/* prevented this table being macro-generated from ../as/instrs
-*/
+#define        TYPB    BYTE
+#define        TYPW    WORD
+#define        TYPL    LONG
+#define        TYPQ    QUAD
+#define        TYPO    OCTA
+#define        TYPF    FFLOAT
+#define        TYPD    DFLOAT
+#define        TYPG    GFLOAT
+#define        TYPH    HFLOAT
 
 readonly struct optab optab[] = {
 
 readonly struct optab optab[] = {
-"jbr",JBR,
-"jeql",T(CBR,JEQ),
-"jneq",T(CBR,JNE),
-"jleq",T(CBR,JLE),
-"jgeq",T(CBR,JGE),
-"jlss",T(CBR,JLT),
-"jgtr",T(CBR,JGT),
-"jbc",T(CBR,JBC),
-"jbs",T(CBR,JBS),
-"jlequ",T(CBR,JLOS),
-"jgequ",T(CBR,JHIS),
-"jlssu",T(CBR,JLO),
-"jgtru",T(CBR,JHI),
-"jlbc",T(CBR,JLBC),
-"jlbs",T(CBR,JLBS),
-"jbcc",T(CBR,JBCC),
-"jbsc",T(CBR,JBSC),
-"jbcs",T(CBR,JBCS),
-"jbss",T(CBR,JBSS),
-"acbb",T(ACB,BYTE),
-"acbd",T(ACB,DOUBLE),
-"acbf",T(ACB,FLOAT),
-"acbl",T(ACB,LONG),
-"acbw",T(ACB,WORD),
-"addb2",T(ADD,U(BYTE,OP2)),
-"addb3",T(ADD,U(BYTE,OP3)),
-"addd2",T(ADD,U(DOUBLE,OP2)),
-"addd3",T(ADD,U(DOUBLE,OP3)),
-"addf2",T(ADD,U(FLOAT,OP2)),
-"addf3",T(ADD,U(FLOAT,OP3)),
-"addl2",T(ADD,U(LONG,OP2)),
-"addl3",T(ADD,U(LONG,OP3)),
-"addw2",T(ADD,U(WORD,OP2)),
-"addw3",T(ADD,U(WORD,OP3)),
-"aobleq",AOBLEQ,
-"aoblss",AOBLSS,
-"ashl",T(ASH,LONG),
-"ashq",T(ASH,QUAD),
-"bbc",T(CBR,JBC),
-"bbcc",T(CBR,JBCC),
-"bbcci",T(CBR,JBCC),
-"bbcs",T(CBR,JBCS),
-"bbs",T(CBR,JBS),
-"bbsc",T(CBR,JBSC),
-"bbss",T(CBR,JBSS),
-"bbssi",T(CBR,JBSS),
-"bcc",T(CBR,JHIS),
-"bcs",T(CBR,JLO),
-"beql",T(CBR,JEQ),
-"beqlu",T(CBR,JEQ),
-"bgeq",T(CBR,JGE),
-"bgequ",T(CBR,JHIS),
-"bgtr",T(CBR,JGT),
-"bgtru",T(CBR,JHI),
-"bicb2",T(BIC,U(BYTE,OP2)),
-"bicb3",T(BIC,U(BYTE,OP3)),
-"bicl2",T(BIC,U(LONG,OP2)),
-"bicl3",T(BIC,U(LONG,OP3)),
-"bicw2",T(BIC,U(WORD,OP2)),
-"bicw3",T(BIC,U(WORD,OP3)),
-"bisb2",T(BIS,U(BYTE,OP2)),
-"bisb3",T(BIS,U(BYTE,OP3)),
-"bisl2",T(BIS,U(LONG,OP2)),
-"bisl3",T(BIS,U(LONG,OP3)),
-"bisw2",T(BIS,U(WORD,OP2)),
-"bisw3",T(BIS,U(WORD,OP3)),
-"bitb",T(BIT,BYTE),
-"bitl",T(BIT,LONG),
-"bitw",T(BIT,WORD),
-"blbs",T(CBR,JLBS),
-"blbc",T(CBR,JLBC),
-"bleq",T(CBR,JLE),
-"blequ",T(CBR,JLOS),
-"blss",T(CBR,JLT),
-"blssu",T(CBR,JLO),
-"bneq",T(CBR,JNE),
-"bnequ",T(CBR,JNE),
-"brb",JBR,
-"brw",JBR,
-"bvc",T(CBR,0),
-"bvs",T(CBR,0),
-"callg",CALLS,
-"calls",CALLS,
-"caseb",T(CASE,BYTE),
-"casel",T(CASE,LONG),
-"casew",T(CASE,WORD),
-"clrb",T(CLR,BYTE),
-"clrd",T(CLR,DOUBLE),
-"clrf",T(CLR,FLOAT),
-"clrl",T(CLR,LONG),
-"clrq",T(CLR,QUAD),
-"clrw",T(CLR,WORD),
-"cmpb",T(CMP,BYTE),
-"cmpd",T(CMP,DOUBLE),
-"cmpf",T(CMP,FLOAT),
-"cmpl",T(CMP,LONG),
-"cmpw",T(CMP,WORD),
-"cvtbd",T(CVT,U(BYTE,DOUBLE)),
-"cvtbf",T(CVT,U(BYTE,FLOAT)),
-"cvtbl",T(CVT,U(BYTE,LONG)),
-"cvtbw",T(CVT,U(BYTE,WORD)),
-"cvtdb",T(CVT,U(DOUBLE,BYTE)),
-"cvtdf",T(CVT,U(DOUBLE,FLOAT)),
-"cvtdl",T(CVT,U(DOUBLE,LONG)),
-"cvtdw",T(CVT,U(DOUBLE,WORD)),
-"cvtfb",T(CVT,U(FLOAT,BYTE)),
-"cvtfd",T(CVT,U(FLOAT,DOUBLE)),
-"cvtfl",T(CVT,U(FLOAT,LONG)),
-"cvtfw",T(CVT,U(FLOAT,WORD)),
-"cvtlb",T(CVT,U(LONG,BYTE)),
-"cvtld",T(CVT,U(LONG,DOUBLE)),
-"cvtlf",T(CVT,U(LONG,FLOAT)),
-"cvtlw",T(CVT,U(LONG,WORD)),
-"cvtrdl",T(CVT,U(DOUBLE,LONG)),
-"cvtrfl",T(CVT,U(FLOAT,LONG)),
-"cvtwb",T(CVT,U(WORD,BYTE)),
-"cvtwd",T(CVT,U(WORD,DOUBLE)),
-"cvtwf",T(CVT,U(WORD,FLOAT)),
-"cvtwl",T(CVT,U(WORD,LONG)),
-"decb",T(DEC,BYTE),
-"decl",T(DEC,LONG),
-"decw",T(DEC,WORD),
-"divb2",T(DIV,U(BYTE,OP2)),
-"divb3",T(DIV,U(BYTE,OP3)),
-"divd2",T(DIV,U(DOUBLE,OP2)),
-"divd3",T(DIV,U(DOUBLE,OP3)),
-"divf2",T(DIV,U(FLOAT,OP2)),
-"divf3",T(DIV,U(FLOAT,OP3)),
-"divl2",T(DIV,U(LONG,OP2)),
-"divl3",T(DIV,U(LONG,OP3)),
-"divw2",T(DIV,U(WORD,OP2)),
-"divw3",T(DIV,U(WORD,OP3)),
-"extv",T(EXTV,LONG),
-"extzv",T(EXTZV,LONG),
-"incb",T(INC,BYTE),
-"incl",T(INC,LONG),
-"incw",T(INC,WORD),
-"insv",T(INSV,-1),
-"jmp",JMP,
-"mcomb",T(COM,BYTE),
-"mcoml",T(COM,LONG),
-"mcomw",T(COM,WORD),
-"mnegb",T(NEG,BYTE),
-"mnegd",T(NEG,DOUBLE),
-"mnegf",T(NEG,FLOAT),
-"mnegl",T(NEG,LONG),
-"mnegw",T(NEG,WORD),
-"movab",T(MOVA,BYTE),
-"movad",T(MOVA,DOUBLE),
-"movaf",T(MOVA,FLOAT),
-"moval",T(MOVA,LONG),
-"movaq",T(MOVA,QUAD),
-"movaw",T(MOVA,WORD),
-"movb",T(MOV,BYTE),
-"movd",T(MOV,DOUBLE),
-"movf",T(MOV,FLOAT),
-"movl",T(MOV,LONG),
-"movq",T(MOV,QUAD),
-"movw",T(MOV,WORD),
-"movzbl",T(MOVZ,U(BYTE,LONG)),
-"movzbw",T(MOVZ,U(BYTE,WORD)),
-"movzwl",T(MOVZ,U(WORD,LONG)),
-"mulb2",T(MUL,U(BYTE,OP2)),
-"mulb3",T(MUL,U(BYTE,OP3)),
-"muld2",T(MUL,U(DOUBLE,OP2)),
-"muld3",T(MUL,U(DOUBLE,OP3)),
-"mulf2",T(MUL,U(FLOAT,OP2)),
-"mulf3",T(MUL,U(FLOAT,OP3)),
-"mull2",T(MUL,U(LONG,OP2)),
-"mull3",T(MUL,U(LONG,OP3)),
-"mulw2",T(MUL,U(WORD,OP2)),
-"mulw3",T(MUL,U(WORD,OP3)),
-"pushab",T(PUSHA,BYTE),
-"pushad",T(PUSHA,DOUBLE),
-"pushaf",T(PUSHA,FLOAT),
-"pushal",T(PUSHA,LONG),
-"pushaq",T(PUSHA,QUAD),
-"pushaw",T(PUSHA,WORD),
-"pushl",T(PUSH,LONG),
-"ret",T(JBR,RET),
-"sobgeq",SOBGEQ,
-"sobgtr",SOBGTR,
-"subb2",T(SUB,U(BYTE,OP2)),
-"subb3",T(SUB,U(BYTE,OP3)),
-"subd2",T(SUB,U(DOUBLE,OP2)),
-"subd3",T(SUB,U(DOUBLE,OP3)),
-"subf2",T(SUB,U(FLOAT,OP2)),
-"subf3",T(SUB,U(FLOAT,OP3)),
-"subl2",T(SUB,U(LONG,OP2)),
-"subl3",T(SUB,U(LONG,OP3)),
-"subw2",T(SUB,U(WORD,OP2)),
-"subw3",T(SUB,U(WORD,OP3)),
-"tstb",T(TST,BYTE),
-"tstd",T(TST,DOUBLE),
-"tstf",T(TST,FLOAT),
-"tstl",T(TST,LONG),
-"tstw",T(TST,WORD),
-"xorb2",T(XOR,U(BYTE,OP2)),
-"xorb3",T(XOR,U(BYTE,OP3)),
-"xorl2",T(XOR,U(LONG,OP2)),
-"xorl3",T(XOR,U(LONG,OP3)),
-"xorw2",T(XOR,U(WORD,OP2)),
-"xorw3",T(XOR,U(WORD,OP3)),
-"movc3",MOVC3,
-".globl",EROU,
-".text",TEXT,
-".data",DATA,
-".bss",BSS,
-".align",ALIGN,
-".word",WGEN,
-".long",LGEN,
-".set",SET,
-".lcomm",LCOMM,
-".comm",COMM,
-".end",END,
-"rsb",T(JBR,RSB),
-"jsb",JSB,
-"mfpr",T(MFPR,LONG),
-"mtpr",T(MTPR,LONG),
-"prober",T(PROBER,BYTE),
-"probew",T(PROBEW,BYTE),
-"adawi",0,
-"addp4",0,
-"addp6",0,
-"adwc",0,
-"ashp",0,
-"bicpsw",0,
-"bispsw",0,
-"bpt",0,
-"bsbb",0,
-"bsbw",0,
-"chme",0,
-"chmk",0,
-"chms",0,
-"chmu",0,
-"cmpc3",0,
-"cmpc5",0,
-"cmpp3",0,
-"cmpp4",0,
-"cmpv",0,
-"cmpzv",0,
-"crc",0,
-"cvtlp",0,
-"cvtpl",0,
-"cvttp",0,
-"cvtpt",0,
-"cvtps",0,
-"cvtsp",0,
-"divp",0,
-"editpc",0,
-"ediv",0,
-"emodd",0,
-"emodf",0,
-"emul",0,
-"ffc",0,
-"ffs",0,
-"halt",0,
-"index",0,
-"insque",0,
-"ldpctx",0,
-"locc",0,
-"matchc",0,
-"movc5",0,
-"movp",0,
-"movpsl",0,
-"movtc",0,
-"movtuc",0,
-"mulp",0,
-"nop",0,
-"polyd",0,
-"polyf",0,
-"popr",0,
-"pushr",0,
-"rei",0,
-"remque",0,
-"rotl",0,
-"sbwc",0,
-"scanc",0,
-"skpc",0,
-"spanc",0,
-"subp4",0,
-"subp6",0,
-"svpctx",0,
-"xfc",0,
-"escd",0,
-"esce",0,
-"escf",0,
-       0,      0};
+
+#include "./instrs.c2"
+
+0,     0};