3 * (C) Copyright May 7 1995, Edmond J. Breen.
\r
4 * ALL RIGHTS RESERVED.
\r
5 * This code may be copied for personal, non-profit use only.
\r
9 typedef enum { /* Stack Machine Instruction Set */
\r
14 /* If jumps are altered, added to or rearranged,
\r
15 * then check with the routine analyseCode -
\r
16 * in file optomizer.c
\r
19 jmpFint, jmpFlng, jmpFdbl, jmpFptr,
\r
20 jmpTint, jmpTlng, jmpTdbl, jmpTptr,
\r
27 incdouble, decdouble,
\r
28 stodouble, rvaldouble, pushdouble,
\r
29 drefdouble, refdouble,
\r
30 negdouble, adddouble, subdouble, divdouble, multdouble,
\r
31 ltdouble, ledouble, eqdouble, nedouble, gtdouble,
\r
32 gedouble, lordouble, landdouble, notdouble,
\r
33 double2char, double2int, double2long, double2float,
\r
36 stoint, rvalint, pushint,
\r
38 negint, addint, subint, divint, multint,
\r
39 ltint, leint, eqint, neint, gtint,
\r
40 geint, lorint, landint, notint, andint, borint,
\r
41 xorint, modint, lshtint, rshtint, compint,
\r
42 int2uchar, int2ushort, int2ptr, int2double,
\r
46 stouint, rvaluint, pushuint,
\r
48 neguint, adduint, subuint, divuint, multuint,
\r
49 ltuint, leuint, equint, neuint, gtuint,
\r
50 geuint, loruint, notuint, anduint, boruint,
\r
51 xoruint, moduint, lshtuint, rshtuint, compuint,
\r
52 uint2char, uint2ptr, uint2double,
\r
56 stolong, rvallong, pushlong,
\r
58 neglong, addlong, sublong, divlong, multlong,
\r
59 ltlong, lelong, eqlong, nelong, gtlong,
\r
60 gelong, lorlong, landlong, notlong, andlong, borlong,
\r
61 xorlong, modlong, lshtlong, rshtlong, complong,
\r
62 long2char, long2int, long2ptr, long2double,
\r
65 stoulong, rvalulong, pushulong,
\r
66 drefulong, refulong,
\r
67 negulong, addulong, subulong, divulong, multulong,
\r
68 ltulong, leulong, equlong, neulong, gtulong,
\r
69 geulong, lorulong, notulong, andulong, borulong,
\r
70 xorulong, modulong, lshtulong, rshtulong, compulong,
\r
71 ulong2char, ulong2int, ulong2ptr, ulong2double,
\r
73 drefptr, refptr, incptr, decptr,
\r
74 stoptr, rvalptr, pushptr,
\r
75 addptr2int, addint2ptr, subptrint,
\r
77 ltptr, leptr, eqptr, neptr, gtptr,
\r
78 geptr, lorptr, landptr, notptr,
\r
81 drefuchar, drefchar, refchar, neguchar,
\r
84 char2int, char2ptr, char2double,
\r
86 drefushort, drefshort, refshort,
\r
87 rvalshort, stoshort,
\r
90 dreffloat, reffloat,
\r
91 rvalfloat, stofloat,
\r
93 assigntype, stoval, pushval,
\r
94 massign, fmem, mset, minit,
\r
95 refmem, reducear, checkar, checkar2,
\r
96 call, eiccall, endfunc, eicreturn, empty,
\r