1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-01-11 23:43:19 +00:00

Add an opcodes enum with names for each opcode. (#321)

This is based on the info in `medley/sources/LLCODE`.
This commit is contained in:
Bruce Mitchener 2021-01-31 08:24:28 +07:00 committed by GitHub
parent b09663b3e9
commit 4788031c15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -20,28 +20,268 @@
/* */
/************************************************************************/
enum opcodes {
opc_unused_0 = 0,
opc_CAR = 1,
opc_CDR = 2,
opc_LISP = 3,
opc_NTYPX = 4,
opc_TYPEP = 5,
opc_DTEST = 6,
opc_UNWIND = 7,
opc_FN0 = 8,
opc_FN1 = 9,
opc_FN2 = 10,
opc_FN3 = 11,
opc_FN4 = 12,
opc_FNX = 13,
opc_APPLYFN = 14,
opc_CHECKAPPLY = 15,
opc_RETURN = 16,
opc_BIND = 17,
opc_UNBIND = 18,
opc_DUNBIND = 19,
opc_RPLPTR_N = 20,
opc_GCREF = 21,
opc_ASSOC = 22,
opc_GVAR_ = 23,
opc_RPLACA = 24,
opc_RPLACD = 25,
opc_CONS = 26,
opc_CMLASSOC = 27,
opc_FMEMB = 28,
opc_CMLMEMBER = 29,
opc_FINDKEY = 30,
opc_CREATECELL = 31,
opc_BIN = 32,
opc_BOUT = 33,
opc_POPDISP = 34,
opc_RESTLIST = 35,
opc_MISCN = 36,
opc_unused_37 = 37,
opc_RPLCONS = 38,
opc_LISTGET = 39,
opc_unused_40 = 40,
opc_unused_41 = 41,
opc_unused_42 = 42,
opc_unused_43 = 43,
opc_EVAL = 44,
opc_ENVCALL = 45,
opc_TYPECHECK = 46,
opc_STKSCAN = 47,
opc_BUSBLT = 48,
opc_MISC8 = 49,
opc_UBFLOAT3 = 50,
opc_TYPEMASK_N = 51,
opc_RDPROLOGPTR = 52,
opc_RDPROLOGTAG = 53,
opc_WRTPTRTAG = 54,
opc_WRTPTR0TAG = 55,
opc_MISC7 = 56,
opc_DOVEMISC = 57,
opc_EQL = 58,
opc_DRAWLINE = 59,
opc_STORE_N = 60,
opc_COPY_N = 61,
opc_RAID = 62,
opc_SLRETURN = 63,
opc_IVAR0 = 64,
opc_IVAR1 = 65,
opc_IVAR2 = 66,
opc_IVAR3 = 67,
opc_IVAR4 = 68,
opc_IVAR5 = 69,
opc_IVAR6 = 70,
opc_IVARX = 71,
opc_PVAR0 = 72,
opc_PVAR1 = 73,
opc_PVAR2 = 74,
opc_PVAR3 = 75,
opc_PVAR4 = 76,
opc_PVAR5 = 77,
opc_PVAR6 = 78,
opc_PVARX = 79,
opc_FVAR0 = 80,
opc_FVAR1 = 81,
opc_FVAR2 = 82,
opc_FVAR3 = 83,
opc_FVAR4 = 84,
opc_FVAR5 = 85,
opc_FVAR6 = 86,
opc_FVARX = 87,
opc_PVAR_0 = 88,
opc_PVAR_1 = 89,
opc_PVAR_2 = 90,
opc_PVAR_3 = 91,
opc_PVAR_4 = 92,
opc_PVAR_5 = 93,
opc_PVAR_6 = 94,
opc_PVARX_ = 95,
opc_GVAR = 96,
opc_ARG0 = 97,
opc_IVARX_ = 98,
opc_FVARX_ = 99,
opc_COPY = 100,
opc_MYARGCOUNT = 101,
opc_MYALINK = 102,
opc_ACONST = 103,
opc_NIL = 104,
opc_T = 105,
opc_0 = 106,
opc_1 = 107,
opc_SIC = 108,
opc_SNIC = 109,
opc_SICX = 110,
opc_GCONST = 111,
opc_unused_112 = 112,
opc_READFLAGS = 113,
opc_READRP = 114,
opc_WRITEMAP = 115,
opc_READPRINTERPORT = 116,
opc_WRITEPRINTERPORT = 117,
opc_PILOTBITBLT = 118,
opc_RCLK = 119,
opc_MISC1 = 120,
opc_MISC2 = 121,
opc_RECLAIMCELL = 122,
opc_GCSCAN1 = 123,
opc_GCSCAN2 = 124,
opc_SUBRCALL = 125,
opc_CONTEXTSWITCH = 126,
opc_RETCALL = 127,
opc_JUMP0 = 128,
opc_JUMP1 = 129,
opc_JUMP2 = 130,
opc_JUMP3 = 131,
opc_JUMP4 = 132,
opc_JUMP5 = 133,
opc_JUMP6 = 134,
opc_JUMP7 = 135,
opc_JUMP8 = 136,
opc_JUMP9 = 137,
opc_JUMP10 = 138,
opc_JUMP11 = 139,
opc_JUMP12 = 140,
opc_JUMP13 = 141,
opc_JUMP14 = 142,
opc_JUMP15 = 143,
opc_FJUMP0 = 144,
opc_FJUMP1 = 145,
opc_FJUMP2 = 146,
opc_FJUMP3 = 147,
opc_FJUMP4 = 148,
opc_FJUMP5 = 149,
opc_FJUMP6 = 150,
opc_FJUMP7 = 151,
opc_FJUMP8 = 152,
opc_FJUMP9 = 153,
opc_FJUMP10 = 154,
opc_FJUMP11 = 155,
opc_FJUMP12 = 156,
opc_FJUMP13 = 157,
opc_FJUMP14 = 158,
opc_FJUMP15 = 159,
opc_TJUMP0 = 160,
opc_TJUMP1 = 161,
opc_TJUMP2 = 162,
opc_TJUMP3 = 163,
opc_TJUMP4 = 164,
opc_TJUMP5 = 165,
opc_TJUMP6 = 166,
opc_TJUMP7 = 167,
opc_TJUMP8 = 168,
opc_TJUMP9 = 169,
opc_TJUMP10 = 170,
opc_TJUMP11 = 171,
opc_TJUMP12 = 172,
opc_TJUMP13 = 173,
opc_TJUMP14 = 174,
opc_TJUMP15 = 175,
opc_JUMPX = 176,
opc_JUMPXX = 177,
opc_FJUMPX = 178,
opc_TJUMPX = 179,
opc_NFJUMPX = 180,
opc_NTJUMPX = 181,
opc_AREF1 = 182,
opc_ASET1 = 183,
opc_PVARSETPOP0 = 184,
opc_PVARSETPOP1 = 185,
opc_PVARSETPOP2 = 186,
opc_PVARSETPOP3 = 187,
opc_PVARSETPOP4 = 188,
opc_PVARSETPOP5 = 189,
opc_PVARSETPOP6 = 190,
opc_POP = 191,
opc_POP_N = 192,
opc_ATOMCELL_N = 193,
opc_GETBASEBYTE = 194,
opc_INSTANCEP = 195,
opc_BLT = 196,
opc_MISC10 = 197,
opc_P_MISC2 = 198,
opc_PUTBASEBYTE = 199,
opc_GETBASE_N = 200,
opc_GETBASEPTR_N = 201,
opc_GETBITS_N_FD = 202,
opc_unused_203 = 203,
opc_CMLEQUAL = 204,
opc_PUTBASE_N = 205,
opc_PUTBASEPTR_N = 206,
opc_PUTBITS_N_FD = 207,
opc_ADDBASE = 208,
opc_VAG2 = 209,
opc_HILOC = 210,
opc_LOLOC = 211,
opc_PLUS2 = 212,
opc_DIFFERENCE = 213,
opc_TIMES2 = 214,
opc_QUOTIENT = 215,
opc_IPLUS2 = 216,
opc_IDIFFERENCE = 217,
opc_ITIMES2 = 218,
opc_IQUOTIENT = 219,
opc_IREMAINDER = 220,
opc_IPLUS_N = 221,
opc_IDIFFERENCE_N = 222,
opc_BASE_LESSTHAN = 223,
opc_LLSH1 = 224,
opc_LLSH8 = 225,
opc_LRSH1 = 226,
opc_LRSH8 = 227,
opc_LOGOR2 = 228,
opc_LOGAND2 = 229,
opc_LOGXOR2 = 230,
opc_LSH = 231,
opc_FPLUS2 = 232,
opc_FDIFFERENCE = 233,
opc_FTIMES2 = 234,
opc_FQUOTIENT = 235,
opc_UBFLOAT2 = 236,
opc_UBFLOAT1 = 237,
opc_AREF2 = 238,
opc_ASET2 = 239,
opc_EQ = 240,
opc_IGREATERP = 241,
opc_FGREATERP = 242,
opc_GREATERP = 243,
opc_EQUAL = 244,
opc_MAKENUMBER = 245,
opc_BOXIPLUS = 246,
opc_BOXIDIFFERENCE = 247,
opc_FLOATBLT = 248,
opc_FFTSTEP = 249,
opc_MISC3 = 250,
opc_MISC4 = 251,
opc_UPCTRACE = 252,
opc_SWAP = 253,
opc_NOP = 254,
opc_CL_EQUAL = 255,
/* A couple of aliases */
opc_JUMP = opc_JUMP0,
opc_FJUMP = opc_FJUMP0,
opc_TJUMP = opc_TJUMP0,
};
#define opc_X 000
#define opc_CAR 001
#define opc_CDR 002
#define opc_LISTP 003
#define opc_NTYPEX 004
#define opc_TYPEP 005
#define opc_UNWIND 007
#define opc_FN0 010
#define opc_FN1 011
#define opc_FN2 012
#define opc_FN3 013
#define opc_FN4 014
#define opc_FNX 015
#define opc_APPLY 016
#define opc_RETURN 020
#define opc_UNBIND 022
#define opc_DUNBIND 023
#define opc_SLRETURN 077
#define opc_JUMP 0200
#define opc_FJUMP 0220
#define opc_TJUMP 0240
#define opc_JUMPX 0260
#define opc_JUMPXX 0261
#endif /* OPCODES_H */