+++ /dev/null
-/* MachSet.h
- *
- * (C) Copyright May 7 1995, Edmond J. Breen.
- * ALL RIGHTS RESERVED.
- * This code may be copied for personal, non-profit use only.
- *
- */
-
-typedef enum { /* Stack Machine Instruction Set */
- halt=400,
-
- bump,
-
- /* If jumps are altered, added to or rearranged,
- * then check with the routine analyseCode -
- * in file optomizer.c
- */
-
- __eicsetjmp, __eiclongjmp,
-
- jmptab, jmpu,
- jmpFint, jmpFlng, jmpFdbl, jmpFptr, jmpFllng,
- jmpTint, jmpTlng, jmpTdbl, jmpTptr, jmpTllng,
-
-
- dupval,dupdown,
- lval,
-
- ixa,
-
- /* get operators */
- rvalchar,rvaluchar,
- rvalshort,rvalushort,
- rvalint,rvaluint,
- rvallong,rvalulong,
- rvalllong,
- rvalptr,rvaluptr,
- rvalfloat,rvaldouble,
-
-
- /* store operator */
- stochar,
- stoshort,
- stoint,stouint,
- stolong,stoulong,
- stollong,stouptr,
- stoptr,
- stofloat,stodouble,
- stoval,
-
-
- incdouble, decdouble,
- pushdouble,
- drefdouble, refdouble,
- negdouble, adddouble, subdouble, divdouble, multdouble,
- ltdouble, ledouble, eqdouble, nedouble, gtdouble,
- gedouble, lordouble, landdouble, notdouble,
- double2char, double2int, double2long, double2llong, double2float,
-
-
- incint, decint,
- pushint,
- drefint, refint,
- negint, addint, subint, divint, multint,
- ltint, leint, eqint, neint, gtint,
- geint, lorint, landint, notint, andint, borint,
- xorint, modint, lshtint, rshtint, compint,
- int2uchar, int2ushort, int2ptr, int2double,
- int2long, int2llong,
-
- incuint, decuint,
- pushuint,
- drefuint, refuint,
- neguint, adduint, subuint, divuint, multuint,
- ltuint, leuint, equint, neuint, gtuint,
- geuint, loruint, notuint, anduint, boruint,
- xoruint, moduint, lshtuint, rshtuint, compuint,
- uint2char, uint2ptr, uint2double,
- uint2long, uint2llong,
-
- inclong, declong,
- pushlong,
- dreflong, reflong,
- neglong, addlong, sublong, divlong, multlong,
- ltlong, lelong, eqlong, nelong, gtlong,
- gelong, lorlong, landlong, notlong, andlong, borlong,
- xorlong, modlong, lshtlong, rshtlong, complong,
- long2char, long2int, long2ptr, long2double,
- long2llong,
-
- inculong, deculong,
- pushulong,
- drefulong, refulong,
- negulong, addulong, subulong, divulong, multulong,
- ltulong, leulong, equlong, neulong, gtulong,
- geulong, lorulong, notulong, andulong, borulong,
- xorulong, modulong, lshtulong, rshtulong, compulong,
- ulong2char, ulong2int, ulong2ptr, ulong2double,
- ulong2llong,
-
- incllong, decllong,
- pushllong,
- drefllong, refllong,
- negllong, addllong, subllong, divllong, multllong,
- ltllong, lellong, eqllong, nellong, gtllong,
- gellong, lorllong, landllong, notllong, andllong, borllong,
- xorllong, modllong, lshtllong, rshtllong, compllong,
- llong2char, llong2int, llong2long, llong2ptr, llong2double,
-
-
- drefptr, refptr, incptr, decptr,
- pushptr,
- addptr2int, addint2ptr, subptrint,
- subptr, divptr,
- ltptr, leptr, eqptr, neptr, gtptr,
- geptr, lorptr, landptr, notptr,
- ptr2int, ptr2long,
-
- drefuchar, drefchar, refchar, neguchar,
-
-
- char2int, char2ptr, char2double,
-
- drefushort, drefshort, refshort,
-
-
-
- dreffloat, reffloat,
-
-
- assigntype, pushval,
- massign, fmem, mset, minit,
- refmem, reducear, checkar, checkar2,
- call, eiccall, endfunc, eicreturn, empty,
-
- lda,
-
-
- /* unique unsafe pointer instructions */
- drefuptr, refuptr
-
-
-} MachSet_t;
-
-
-#define IsSto_op(x) ((x) >= stochar && (x)<=stoval)
-
-
-
-
-
-
-
-
-