Trailing-Edge
-
PDP-10 Archives
-
SRI_NIC_PERM_FS_1_19910112
-
c/kcc/cccode.h
There are 8 other files named cccode.h in the archive. Click here to see a list.
/* CCCODE.H - Pseudo-code opcode definitions
**
** (c) Copyright Ken Harrenstien 1989
** All changes after v.46, 24-May-1987
** (c) Copyright Ken Harrenstien, SRI International 1985, 1986
** All changes after v.17, 8-Aug-1985
**
** Original version by David Eppstein / Stanford University / 24 May 85
*/
/*
** This file is used to define the PDP-10 pseudo-code instructions
** that KCC generates from a parse tree and stores in the peephole
** buffer. It consists only of calls to the "opcode" macro;
** the macro arguments are:
** opcode(iname, oname, flags)
** where:
** iname - Internal name of the opcode. Always P_xxx.
** oname - Output name; what CCOUT emits to the assembly language
** file for this pseudo-code instruction. This is also
** what is shown in the .PHO debugging output, which is
** why all codes have a string here even if they do
** not correspond to an actual PDP-10 instruction.
**
** The including program is responsible for defining "opcode" in an
** appropriate manner. Currently CCGEN.H uses this to define all P_xxx
** symbols as enums, and CCDATA generates the various tables that the
** P_ values are used to index.
**
** The opcodes are in approximately alphabetical order, but note that
** any newly added ones should go at the end of the list unless
** everything using these definitions is recompiled.
**
** The PF_ flags and PRC_ values are defined in CCGEN.H.
** Note that PF_OPIMB is the sum of PF_OPI,PF_OPM,PF_OPB and is a common
** combination for most arithmetic/logical instructions.
*/
opcode(P_NOP, "--", 0, PRC_ILL, b, c, d) /* Keep this as zero */
opcode(P_CVALUE,"", 0, PRC_ILL, b, c, d)
opcode(P_ADD, "ADD", PF_OPIMB, PRC_RCHG, b, c, d)
opcode(P_ADJBP, "ADJBP", 0, PRC_RCHG, b, c, d)
opcode(P_ADJSP, "ADJSP",PF_EIMM, PRC_RCHG, b, c, d)
opcode(P_AND, "AND", PF_OPIMB, PRC_RCHG, b, c, d)
opcode(P_AOJ, "AOJ", PF_EIMM, PRC_RCHG, b, c, d)
opcode(P_AOS, "AOS", PF_MEMCHG, PRC_RSET, b, c, d)
opcode(P_ASH, "ASH", PF_EIMM, PRC_RCHG, b, c, d)
opcode(P_ASHC, "ASHC", PF_EIMM, PRC_DCHG, b, c, d)
opcode(P_CAI, "CAI", PF_EIMM, PRC_RSAME, b, c, d)
opcode(P_CAM, "CAM", 0, PRC_RSAME, b, c, d)
opcode(P_DFAD, "DFAD", 0, PRC_DCHG, b, c, d)
opcode(P_DFDV, "DFDV", 0, PRC_DCHG, b, c, d)
opcode(P_DFIX, "DFIX", 0, PRC_DSET, b, c, d) /* Simop (clobbers A+1) */
opcode(P_DFMP, "DFMP", 0, PRC_DCHG, b, c, d)
opcode(P_DFSB, "DFSB", 0, PRC_DCHG, b, c, d)
opcode(P_DMOVE, "DMOVE",0, PRC_DSET, b, c, d)
opcode(P_DMOVEM,"DMOVEM",PF_MEMCHG, PRC_DSAME, b, c, d)
opcode(P_DMOVN, "DMOVN",0, PRC_DSET, b, c, d)
opcode(P_DPB, "DPB", PF_MEMCHG, PRC_RSAME, b, c, d)
opcode(P_DSNGL, "DSNGL",0, PRC_DSET, b, c, d) /* Simop (clobbers A+1) */
opcode(P_EQV, "EQV", PF_OPIMB, PRC_RCHG, b, c, d)
opcode(P_FADR, "FADR", PF_OPIMB, PRC_RCHG, b, c, d)
opcode(P_FDVR, "FDVR", PF_OPIMB, PRC_RCHG, b, c, d)
opcode(P_FIX, "FIX", 0, PRC_RSET, b, c, d)
opcode(P_FLTR, "FLTR", 0, PRC_RSET, b, c, d)
opcode(P_FMPR, "FMPR", PF_OPIMB, PRC_RCHG, b, c, d)
opcode(P_FSBR, "FSBR", PF_OPIMB, PRC_RCHG, b, c, d)
opcode(P_FSC, "FSC", PF_EIMM, PRC_RCHG, b, c, d)
opcode(P_HLRE, "HLRE", 0, PRC_RSET, b, c, d)
opcode(P_HLRZ, "HLRZ", 0, PRC_RSET, b, c, d)
opcode(P_HRLM, "HRLM", PF_MEMCHG, PRC_RSAME, b, c, d)
opcode(P_HRRE, "HRRE", 0, PRC_RSET, b, c, d)
opcode(P_HRRM, "HRRM", PF_MEMCHG, PRC_RSAME, b, c, d)
opcode(P_HRRZ, "HRRZ", 0, PRC_RSET, b, c, d)
opcode(P_IBP, "IBP", PF_MEMCHG, PRC_RSAME, b, c, d)
opcode(P_IDIV, "IDIV", PF_OPIMB, PRC_DCHG_RSAME, b, c, d)
opcode(P_IDPB, "IDPB", PF_MEMCHG, PRC_RSAME, b, c, d)
opcode(P_IFIW, "IFIW", 0, PRC_ILL, b, c, d)
opcode(P_ILDB, "ILDB", PF_MEMCHG, PRC_RSET, b, c, d)
opcode(P_IMUL, "IMUL", PF_OPIMB, PRC_RCHG, b, c, d)
opcode(P_IOR, "IOR", PF_OPIMB, PRC_RCHG, b, c, d)
opcode(P_JRST, "JRST", PF_EIMM, PRC_RSAME, b, c, d)
opcode(P_JUMP, "JUMP", PF_EIMM, PRC_RSAME, b, c, d)
opcode(P_LDB, "LDB", 0, PRC_RSET, b, c, d)
opcode(P_LSH, "LSH", PF_EIMM, PRC_RCHG, b, c, d)
opcode(P_LSHC, "LSHC", PF_EIMM, PRC_DCHG, b, c, d)
opcode(P_MOVE, "MOVE", PF_OPI, PRC_RSET, b, c, d)
opcode(P_MOVEM, "MOVEM",PF_MEMCHG, PRC_RSAME, b, c, d)
opcode(P_MOVM, "MOVM", PF_OPI, PRC_RSET, b, c, d)
opcode(P_MOVN, "MOVN", PF_OPI, PRC_RSET, b, c, d)
opcode(P_MOVS, "MOVS", PF_OPI, PRC_RSET, b, c, d)
opcode(P_MUL, "MUL", PF_OPIMB, PRC_DCHG_RSAME, b, c, d)
opcode(P_ORCM, "ORCM", PF_OPIMB, PRC_RCHG, b, c, d)
opcode(P_POP, "POP", PF_MEMCHG, PRC_RCHG, b, c, d)
opcode(P_POPJ, "POPJ", 0, PRC_RCHG, b, c, d)
opcode(P_PTRCNV,"PTRCNV",0, PRC_RCHG, b, c, d) /* Simop */
opcode(P_PUSH, "PUSH", 0, PRC_RCHG, b, c, d)
opcode(P_PUSHJ, "PUSHJ",PF_MEMCHG, PRC_UNKNOWN, b, c, d)
opcode(P_ROT, "ROT", PF_EIMM, PRC_RCHG, b, c, d)
opcode(P_SETCM, "SETCM",PF_OPIMB, PRC_RSET, b, c, d)
opcode(P_SETM, "SETM", PF_OPIMB, PRC_RSET, b, c, d)
opcode(P_SETO, "SETO", PF_OPIMB, PRC_RSET, b, c, d)
opcode(P_SETZ, "SETZ", PF_OPIMB, PRC_RSET, b, c, d)
opcode(P_SKIP, "SKIP", 0, PRC_RSET, b, c, d)
opcode(P_SMOVE, "SMOVE",PF_MEMCHG, PRC_RSAME, b, c, d) /* Simop */
opcode(P_SOJ, "SOJ", PF_EIMM, PRC_RCHG, b, c, d)
opcode(P_SOS, "SOS", PF_MEMCHG, PRC_RSET, b, c, d)
opcode(P_SUB, "SUB", PF_OPIMB, PRC_RCHG, b, c, d)
opcode(P_SUBBP, "SUBBP",0, PRC_DCHG_RSAME, b, c, d) /* Simop (uses A+1) */
opcode(P_TDC, "TDC", 0, PRC_RCHG, b, c, d)
opcode(P_TDN, "TDN", 0, PRC_RSAME, b, c, d)
opcode(P_TDO, "TDO", 0, PRC_RCHG, b, c, d)
opcode(P_TDZ, "TDZ", 0, PRC_RCHG, b, c, d)
opcode(P_TLC, "TLC", PF_EIMM, PRC_RCHG, b, c, d)
opcode(P_TLN, "TLN", PF_EIMM, PRC_RSAME, b, c, d)
opcode(P_TLO, "TLO", PF_EIMM, PRC_RCHG, b, c, d)
opcode(P_TLZ, "TLZ", PF_EIMM, PRC_RCHG, b, c, d)
opcode(P_TRC, "TRC", PF_EIMM, PRC_RCHG, b, c, d)
opcode(P_TRN, "TRN", PF_EIMM, PRC_RSAME, b, c, d)
opcode(P_TRO, "TRO", PF_EIMM, PRC_RCHG, b, c, d)
opcode(P_TRZ, "TRZ", PF_EIMM, PRC_RCHG, b, c, d)
opcode(P_TSC, "TSC", 0, PRC_RCHG, b, c, d)
opcode(P_UFLTR, "UFLTR",0, PRC_RCHG, b, c, d) /* Simop */
opcode(P_UIDIV, "UIDIV",PF_OPI, PRC_DCHG_RSAME, b, c, d) /* Simop */
opcode(P_XMOVEI,"XMOVEI",PF_EIMM, PRC_RSET, b, c, d) /* Unused?? */
opcode(P_XOR, "XOR", PF_OPIMB, PRC_RCHG, b, c, d)