Move the sources to trunk
[opencv] / apps / cvenv / EiC / MachSet.h
1 /* MachSet.h
2  *
3  *      (C) Copyright May  7 1995, Edmond J. Breen.
4  *                 ALL RIGHTS RESERVED.
5  * This code may be copied for personal, non-profit use only.
6  *
7  */
8
9 typedef enum { /* Stack Machine Instruction Set */
10   halt=400,
11
12   bump,
13
14   /* If jumps are altered, added to or rearranged,
15    * then check with the routine analyseCode -
16    * in file optomizer.c
17    */
18
19   __eicsetjmp, __eiclongjmp,
20
21   jmptab, jmpu,
22   jmpFint, jmpFlng,  jmpFdbl, jmpFptr, jmpFllng,
23   jmpTint, jmpTlng,  jmpTdbl, jmpTptr, jmpTllng,
24   
25
26   dupval,dupdown,
27   lval,
28
29   ixa,
30
31   /* get operators */
32   rvalchar,rvaluchar,
33   rvalshort,rvalushort,
34   rvalint,rvaluint,
35   rvallong,rvalulong,
36   rvalllong,
37   rvalptr,rvaluptr,
38   rvalfloat,rvaldouble,
39
40  
41   /* store operator */
42   stochar,
43   stoshort,
44   stoint,stouint,
45   stolong,stoulong,
46   stollong,stouptr,
47   stoptr,
48   stofloat,stodouble,
49   stoval,
50
51
52   incdouble, decdouble,
53   pushdouble,
54   drefdouble, refdouble,
55   negdouble, adddouble, subdouble, divdouble, multdouble,
56   ltdouble, ledouble, eqdouble, nedouble, gtdouble,
57   gedouble, lordouble, landdouble, notdouble,
58   double2char, double2int, double2long, double2llong, double2float,
59
60
61   incint, decint,
62   pushint,
63   drefint, refint,
64   negint, addint, subint, divint, multint,
65   ltint, leint, eqint, neint, gtint,
66   geint, lorint, landint, notint, andint, borint,
67   xorint, modint, lshtint, rshtint, compint,
68   int2uchar, int2ushort, int2ptr, int2double,
69   int2long, int2llong,
70
71   incuint, decuint,
72     pushuint,
73   drefuint, refuint,
74   neguint, adduint, subuint, divuint, multuint,
75   ltuint, leuint, equint, neuint, gtuint,
76   geuint, loruint, notuint, anduint, boruint,
77   xoruint, moduint, lshtuint, rshtuint, compuint,
78   uint2char, uint2ptr, uint2double,
79   uint2long, uint2llong,
80
81   inclong, declong,
82     pushlong,
83   dreflong, reflong,
84   neglong, addlong, sublong, divlong, multlong,
85   ltlong, lelong, eqlong, nelong, gtlong,
86   gelong, lorlong, landlong, notlong, andlong, borlong,
87   xorlong, modlong, lshtlong, rshtlong, complong,
88   long2char, long2int, long2ptr, long2double,
89   long2llong,
90
91   inculong, deculong,
92     pushulong,
93   drefulong, refulong,
94   negulong, addulong, subulong, divulong, multulong,
95   ltulong, leulong, equlong, neulong, gtulong,
96   geulong, lorulong, notulong, andulong, borulong,
97   xorulong, modulong, lshtulong, rshtulong, compulong,
98   ulong2char, ulong2int, ulong2ptr, ulong2double,
99   ulong2llong,
100
101   incllong, decllong,
102     pushllong,
103   drefllong, refllong,
104   negllong, addllong, subllong, divllong, multllong,
105   ltllong, lellong, eqllong, nellong, gtllong,
106   gellong, lorllong, landllong, notllong, andllong, borllong,
107   xorllong, modllong, lshtllong, rshtllong, compllong,
108   llong2char, llong2int, llong2long, llong2ptr, llong2double,
109   
110
111   drefptr, refptr, incptr, decptr,
112         pushptr,
113   addptr2int, addint2ptr, subptrint,
114   subptr, divptr,
115   ltptr, leptr, eqptr, neptr, gtptr,
116   geptr, lorptr, landptr, notptr,
117   ptr2int, ptr2long,
118
119   drefuchar, drefchar, refchar,  neguchar,
120    
121   
122   char2int, char2ptr, char2double,
123   
124   drefushort, drefshort, refshort,
125    
126   
127   
128   dreffloat, reffloat,
129    
130
131   assigntype,  pushval,
132   massign,  fmem, mset, minit,
133   refmem, reducear, checkar, checkar2,
134   call, eiccall, endfunc, eicreturn, empty,
135
136   lda,
137
138
139   /* unique unsafe pointer instructions */
140     drefuptr, refuptr
141
142
143 } MachSet_t;
144
145
146 #define IsSto_op(x)  ((x) >= stochar && (x)<=stoval)
147
148
149
150
151
152
153
154
155