source: trunk/opcode_spec_def.h @ 712

Last change on this file since 712 was 712, checked in by moo, 3 years ago

updated from eaccelerator

  • Property svn:eol-style set to native
File size: 17.2 KB
Line 
1static const xc_opcode_spec_t xc_opcode_spec[] = {
2    OPSPEC(    UNUSED,     UNUSED,     UNUSED,     UNUSED) /* 0 NOP                            */
3    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 1 ADD                            */
4    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 2 SUB                            */
5    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 3 MUL                            */
6    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 4 DIV                            */
7    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 5 MOD                            */
8    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 6 SL                             */
9    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 7 SR                             */
10    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 8 CONCAT                         */
11    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 9 BW_OR                          */
12    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 10 BW_AND                         */
13    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 11 BW_XOR                         */
14    OPSPEC(    UNUSED,        STD,     UNUSED,        TMP) /* 12 BW_NOT                         */
15    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 13 BOOL_NOT                       */
16    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 14 BOOL_XOR                       */
17    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 15 IS_IDENTICAL                   */
18    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 16 IS_NOT_IDENTICAL               */
19    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 17 IS_EQUAL                       */
20    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 18 IS_NOT_EQUAL                   */
21    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 19 IS_SMALLER                     */
22    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 20 IS_SMALLER_OR_EQUAL            */
23    OPSPEC(      CAST,        STD,     UNUSED,        TMP) /* 21 CAST                           */
24    OPSPEC(    UNUSED,        STD,     UNUSED,        TMP) /* 22 QM_ASSIGN                      */
25#ifdef ZEND_ENGINE_2
26    OPSPEC(    ASSIGN,        STD,        STD,        VAR) /* 23 ASSIGN_ADD                     */
27    OPSPEC(    ASSIGN,        STD,        STD,        VAR) /* 24 ASSIGN_SUB                     */
28    OPSPEC(    ASSIGN,        STD,        STD,        VAR) /* 25 ASSIGN_MUL                     */
29    OPSPEC(    ASSIGN,        STD,        STD,        VAR) /* 26 ASSIGN_DIV                     */
30    OPSPEC(    ASSIGN,        STD,        STD,        VAR) /* 27 ASSIGN_MOD                     */
31    OPSPEC(    ASSIGN,        STD,        STD,        VAR) /* 28 ASSIGN_SL                      */
32    OPSPEC(    ASSIGN,        STD,        STD,        VAR) /* 29 ASSIGN_SR                      */
33    OPSPEC(    ASSIGN,        STD,        STD,        VAR) /* 30 ASSIGN_CONCAT                  */
34    OPSPEC(    ASSIGN,        STD,        STD,        VAR) /* 31 ASSIGN_BW_OR                   */
35    OPSPEC(    ASSIGN,        STD,        STD,        VAR) /* 32 ASSIGN_BW_AND                  */
36    OPSPEC(    ASSIGN,        STD,        STD,        VAR) /* 33 ASSIGN_BW_XOR                  */
37#else
38    OPSPEC(    UNUSED,        VAR,        STD,        VAR)
39    OPSPEC(    UNUSED,        VAR,        STD,        VAR)
40    OPSPEC(    UNUSED,        VAR,        STD,        VAR)
41    OPSPEC(    UNUSED,        VAR,        STD,        VAR)
42    OPSPEC(    UNUSED,        VAR,        STD,        VAR)
43    OPSPEC(    UNUSED,        VAR,        STD,        VAR)
44    OPSPEC(    UNUSED,        VAR,        STD,        VAR)
45    OPSPEC(    UNUSED,        VAR,        STD,        VAR)
46    OPSPEC(    UNUSED,        VAR,        STD,        VAR)
47    OPSPEC(    UNUSED,        VAR,        STD,        VAR)
48    OPSPEC(    UNUSED,        VAR,        STD,        VAR)
49#endif
50    OPSPEC(    UNUSED,        VAR,     UNUSED,        VAR) /* 34 PRE_INC                        */
51    OPSPEC(    UNUSED,        VAR,     UNUSED,        VAR) /* 35 PRE_DEC                        */
52    OPSPEC(    UNUSED,        VAR,     UNUSED,        TMP) /* 36 POST_INC                       */
53    OPSPEC(    UNUSED,        VAR,     UNUSED,        TMP) /* 37 POST_DEC                       */
54    OPSPEC(    UNUSED,        VAR,        STD,        VAR) /* 38 ASSIGN                         */
55    OPSPEC(    UNUSED,        VAR,        VAR,        VAR) /* 39 ASSIGN_REF                     */
56    OPSPEC(    UNUSED,        STD,     UNUSED,     UNUSED) /* 40 ECHO                           */
57    OPSPEC(    UNUSED,        STD,     UNUSED,        TMP) /* 41 PRINT                          */
58#ifdef ZEND_ENGINE_2
59    OPSPEC(    UNUSED,    JMPADDR,     UNUSED,     UNUSED) /* 42 JMP                            */
60    OPSPEC(    UNUSED,        STD,    JMPADDR,     UNUSED) /* 43 JMPZ                           */
61    OPSPEC(    UNUSED,        STD,    JMPADDR,     UNUSED) /* 44 JMPNZ                          */
62#else
63    OPSPEC(    UNUSED,     OPLINE,     UNUSED,     UNUSED)
64    OPSPEC(    UNUSED,        STD,     OPLINE,     UNUSED)
65    OPSPEC(    UNUSED,        STD,     OPLINE,     UNUSED)
66#endif
67    OPSPEC(    OPLINE,        STD,     OPLINE,     UNUSED) /* 45 JMPZNZ                         */
68#ifdef ZEND_ENGINE_2
69    OPSPEC(    UNUSED,        STD,    JMPADDR,        TMP) /* 46 JMPZ_EX                        */
70    OPSPEC(    UNUSED,        STD,    JMPADDR,        TMP) /* 47 JMPNZ_EX                       */
71#else
72    OPSPEC(    UNUSED,        STD,     OPLINE,        TMP)
73    OPSPEC(    UNUSED,        STD,     OPLINE,        TMP)
74#endif
75    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 48 CASE                           */
76    OPSPEC(       BIT,        STD,     UNUSED,     UNUSED) /* 49 SWITCH_FREE                    */
77    OPSPEC(    UNUSED,        BRK,        STD,     UNUSED) /* 50 BRK                            */
78    OPSPEC(    UNUSED,       CONT,        STD,     UNUSED) /* 51 CONT                           */
79    OPSPEC(    UNUSED,        STD,     UNUSED,        TMP) /* 52 BOOL                           */
80    OPSPEC(    UNUSED,     UNUSED,     UNUSED,        TMP) /* 53 INIT_STRING                    */
81    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 54 ADD_CHAR                       */
82    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 55 ADD_STRING                     */
83    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 56 ADD_VAR                        */
84    OPSPEC(    UNUSED,     UNUSED,     UNUSED,        TMP) /* 57 BEGIN_SILENCE                  */
85    OPSPEC(    UNUSED,        TMP,     UNUSED,     UNUSED) /* 58 END_SILENCE                    */
86    OPSPEC(INIT_FCALL,        STD,        STD,     UNUSED) /* 59 INIT_FCALL_BY_NAME             */
87#ifdef ZEND_ENGINE_2
88    OPSPEC(     FCALL,        STD,     OPLINE,        VAR) /* 60 DO_FCALL                       */
89    OPSPEC(     FCALL,        STD,     OPLINE,        VAR) /* 61 DO_FCALL_BY_NAME               */
90#else
91    OPSPEC(     FCALL,        STD,     UNUSED,        VAR)
92    OPSPEC(     FCALL,        STD,     UNUSED,        VAR)
93#endif
94    OPSPEC(    UNUSED,        STD,     UNUSED,     UNUSED) /* 62 RETURN                         */
95    OPSPEC(    UNUSED,        ARG,     UNUSED,        VAR) /* 63 RECV                           */
96    OPSPEC(    UNUSED,        ARG,        STD,        VAR) /* 64 RECV_INIT                      */
97    OPSPEC(      SEND,        STD,        ARG,     UNUSED) /* 65 SEND_VAL                       */
98    OPSPEC(      SEND,        VAR,        ARG,     UNUSED) /* 66 SEND_VAR                       */
99    OPSPEC(      SEND,        VAR,        ARG,     UNUSED) /* 67 SEND_REF                       */
100#ifdef ZEND_ENGINE_2
101    OPSPEC(    UNUSED,      CLASS,     UNUSED,        VAR) /* 68 NEW                            */
102#else
103    OPSPEC(    UNUSED,        STD,     UNUSED,        VAR)
104#endif
105#ifdef ZEND_ENGINE_2_3
106    OPSPEC(       STD,        STD,        STD,     UNUSED) /* 69 INIT_NS_FCALL_BY_NAME          */
107#else
108    OPSPEC(    UNUSED,        STD,     OPLINE,     UNUSED) /* 69 JMP_NO_CTOR                    */
109#endif
110    OPSPEC(    UNUSED,        TMP,     UNUSED,     UNUSED) /* 70 FREE                           */
111    OPSPEC(       BIT,        STD,        STD,        TMP) /* 71 INIT_ARRAY                     */
112    OPSPEC(       BIT,        STD,        STD,        TMP) /* 72 ADD_ARRAY_ELEMENT              */
113    OPSPEC(    UNUSED,        STD,    INCLUDE,        VAR) /* 73 INCLUDE_OR_EVAL                */
114#ifdef ZEND_ENGINE_2_1
115  /* php 5.1 and up */
116    OPSPEC(    UNUSED,        STD,      FETCH,     UNUSED) /* 74 UNSET_VAR                      */
117    OPSPEC(       STD,        STD,        STD,     UNUSED) /* 75 UNSET_DIM                      */
118    OPSPEC(       STD,        STD,        STD,     UNUSED) /* 76 UNSET_OBJ                      */
119    OPSPEC(       BIT,        STD,     OPLINE,        VAR) /* 77 FE_RESET                       */
120#else
121  /* <= php 5.0 */
122  /* though there is no ISSET_ISEMPTY in php 5.0 it's better to leave it here i guess */
123    OPSPEC(    UNUSED,        STD,     UNUSED,     UNUSED)
124    OPSPEC(    UNUSED,        VAR,        STD,     UNUSED)
125    OPSPEC(    UNUSED,        VAR,      ISSET,        TMP)
126    OPSPEC(       BIT,        STD,     UNUSED,        VAR)
127#endif
128    OPSPEC(        FE,        STD,     OPLINE,        TMP) /* 78 FE_FETCH                       */
129    OPSPEC(    UNUSED,        STD,     UNUSED,     UNUSED) /* 79 EXIT                           */
130    OPSPEC(    UNUSED,        STD,      FETCH,        VAR) /* 80 FETCH_R                        */
131    OPSPEC(     FETCH,        VAR,        STD,        VAR) /* 81 FETCH_DIM_R                    */
132    OPSPEC(    UNUSED,      VAR_2,        STD,        VAR) /* 82 FETCH_OBJ_R                    */
133    OPSPEC(    UNUSED,        STD,      FETCH,        VAR) /* 83 FETCH_W                        */
134    OPSPEC(    UNUSED,        VAR,        STD,        VAR) /* 84 FETCH_DIM_W                    */
135    OPSPEC(    UNUSED,      VAR_2,        STD,        VAR) /* 85 FETCH_OBJ_W                    */
136    OPSPEC(    UNUSED,        STD,      FETCH,        VAR) /* 86 FETCH_RW                       */
137    OPSPEC(    UNUSED,        VAR,        STD,        VAR) /* 87 FETCH_DIM_RW                   */
138    OPSPEC(    UNUSED,      VAR_2,        STD,        VAR) /* 88 FETCH_OBJ_RW                   */
139    OPSPEC(    UNUSED,        STD,      FETCH,        VAR) /* 89 FETCH_IS                       */
140    OPSPEC(    UNUSED,        VAR,        STD,        VAR) /* 90 FETCH_DIM_IS                   */
141    OPSPEC(    UNUSED,      VAR_2,        STD,        VAR) /* 91 FETCH_OBJ_IS                   */
142    OPSPEC(       ARG,        STD,      FETCH,        VAR) /* 92 FETCH_FUNC_ARG                 */
143    OPSPEC(       ARG,        VAR,        STD,        VAR) /* 93 FETCH_DIM_FUNC_ARG             */
144    OPSPEC(       ARG,      VAR_2,        STD,        VAR) /* 94 FETCH_OBJ_FUNC_ARG             */
145    OPSPEC(    UNUSED,        STD,      FETCH,        VAR) /* 95 FETCH_UNSET                    */
146    OPSPEC(    UNUSED,        VAR,        STD,        VAR) /* 96 FETCH_DIM_UNSET                */
147    OPSPEC(    UNUSED,      VAR_2,        STD,        VAR) /* 97 FETCH_OBJ_UNSET                */
148    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 98 FETCH_DIM_TMP_VAR              */
149#ifdef ZEND_ENGINE_2
150    OPSPEC(    UNUSED,     UCLASS,        STD,        TMP) /* 99 FETCH_CONSTANT                 */
151#else
152    OPSPEC(    UNUSED,        STD,     UNUSED,        TMP) /* 99 FETCH_CONSTANT                 */
153#endif
154#ifdef ZEND_ENGINE_2_3
155    OPSPEC(       STD,    JMPADDR,        STD,     UNUSED) /* 100 GOTO                           */
156#else
157    OPSPEC(   DECLARE,        STD,        STD,     UNUSED) /* 100 DECLARE_FUNCTION_OR_CLASS      */
158#endif
159    OPSPEC(       STD,        STD,        STD,        STD) /* 101 EXT_STMT                       */
160    OPSPEC(       STD,        STD,        STD,        STD) /* 102 EXT_FCALL_BEGIN                */
161    OPSPEC(       STD,        STD,        STD,        STD) /* 103 EXT_FCALL_END                  */
162    OPSPEC(    UNUSED,     UNUSED,     UNUSED,     UNUSED) /* 104 EXT_NOP                        */
163    OPSPEC(    UNUSED,        STD,     UNUSED,     UNUSED) /* 105 TICKS                          */
164    OPSPEC(SEND_NOREF,        VAR,        ARG,     UNUSED) /* 106 SEND_VAR_NO_REF                */
165#ifdef ZEND_ENGINE_2
166    OPSPEC(    OPLINE,      CLASS,        STD,     UNUSED) /* 107 CATCH                          */
167    OPSPEC(    UNUSED,        STD,     OPLINE,     UNUSED) /* 108 THROW                          */
168    OPSPEC(    FCLASS,        STD,        STD,      CLASS) /* 109 FETCH_CLASS                    */
169    OPSPEC(    UNUSED,        STD,     UNUSED,        VAR) /* 110 CLONE                          */
170
171    OPSPEC(    UNUSED,        STD,     UNUSED,     UNUSED) /* 111 INIT_CTOR_CALL                 */
172
173    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 112 INIT_METHOD_CALL               */
174    OPSPEC(    UNUSED,     UCLASS,        STD,     UNUSED) /* 113 INIT_STATIC_METHOD_CALL        */
175    OPSPEC(     ISSET,        STD,      FETCH,        TMP) /* 114 ISSET_ISEMPTY_VAR              */
176    OPSPEC(     ISSET,        STD,        STD,        TMP) /* 115 ISSET_ISEMPTY_DIM_OBJ          */
177
178    OPSPEC(    UNUSED,      CLASS,        STD,     UNUSED) /* 116 IMPORT_FUNCTION                */
179    OPSPEC(    UNUSED,      CLASS,        STD,     UNUSED) /* 117 IMPORT_CLASS                   */
180    OPSPEC(    UNUSED,      CLASS,        STD,     UNUSED) /* 118 IMPORT_CONST                   */
181    OPSPEC(       STD,        STD,        STD,        STD) /* 119 OP_119                         */
182    OPSPEC(       STD,        STD,        STD,        STD) /* 120 OP_120                         */
183    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 121 ASSIGN_ADD_OBJ                 */
184    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 122 ASSIGN_SUB_OBJ                 */
185    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 123 ASSIGN_MUL_OBJ                 */
186    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 124 ASSIGN_DIV_OBJ                 */
187    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 125 ASSIGN_MOD_OBJ                 */
188    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 126 ASSIGN_SL_OBJ                  */
189    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 127 ASSIGN_SR_OBJ                  */
190    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 128 ASSIGN_CONCAT_OBJ              */
191    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 129 ASSIGN_BW_OR_OBJ               */
192    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 130 ASSIGN_BW_AND_OBJ              */
193    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 131 ASSIGN_BW_XOR_OBJ              */
194
195    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 132 PRE_INC_OBJ                    */
196    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 133 PRE_DEC_OBJ                    */
197    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 134 POST_INC_OBJ                   */
198    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 135 POST_DEC_OBJ                   */
199    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 136 ASSIGN_OBJ                     */
200    OPSPEC(    UNUSED,        STD,        STD,        STD) /* 137 OP_DATA                        */
201    OPSPEC(    UNUSED,        STD,      CLASS,        TMP) /* 138 INSTANCEOF                     */
202    OPSPEC(    UNUSED,        STD,        STD,      CLASS) /* 139 DECLARE_CLASS                  */
203    OPSPEC(     CLASS,        STD,        STD,      CLASS) /* 140 DECLARE_INHERITED_CLASS        */
204    OPSPEC(    UNUSED,        STD,        STD,     UNUSED) /* 141 DECLARE_FUNCTION               */
205    OPSPEC(    UNUSED,     UNUSED,     UNUSED,     UNUSED) /* 142 RAISE_ABSTRACT_ERROR           */
206#ifdef ZEND_ENGINE_2_3
207    OPSPEC(   DECLARE,        STD,        STD,     UNUSED) /* 143 DECLARE_CONST                  */
208#else
209    OPSPEC(    UNUSED,     UNUSED,     UNUSED,     UNUSED) /* 143 UNDEF-143                      */
210#endif
211#ifdef ZEND_ENGINE_2_3
212    OPSPEC(     IFACE,      CLASS,        STD,     UNUSED) /* 144 ADD_INTERFACE                  */
213#else
214    OPSPEC(     IFACE,      CLASS,      CLASS,     UNUSED) /* 144 ADD_INTERFACE                  */
215#endif
216#ifdef ZEND_ENGINE_2_3
217    OPSPEC(     CLASS,        STD,        STD,     OPLINE) /* 145 DECLARE_INHERITED_CLASS_DELAYED */
218#else
219    OPSPEC(    UNUSED,      CLASS,        STD,     UNUSED) /* 145 VERIFY_INSTANCEOF              */
220#endif
221    OPSPEC(    UNUSED,      CLASS,     UNUSED,     UNUSED) /* 146 VERIFY_ABSTRACT_CLASS          */
222    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 147 ASSIGN_DIM                     */
223    OPSPEC(     ISSET,        STD,        STD,        TMP) /* 148 ISSET_ISEMPTY_PROP_OBJ         */
224    OPSPEC(       STD,     UNUSED,     UNUSED,        STD) /* 149 HANDLE_EXCEPTION               */
225    OPSPEC(       STD,     UNUSED,     UNUSED,        STD) /* 150 USER_OPCODE                    */
226# ifdef ZEND_ENGINE_2_3
227    OPSPEC(    UNUSED,     UNUSED,     UNUSED,     UNUSED) /* 151 UNDEF                          */
228    OPSPEC(    UNUSED,        STD,    JMPADDR,        TMP) /* 152 JMP_SET                        */
229    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 153 DECLARE_LAMBDA_FUNCTION        */
230# else
231    OPSPEC(    UNUSED,     UNUSED,     UNUSED,     UNUSED) /* 151 UNDEF                          */
232    OPSPEC(    UNUSED,     UNUSED,     UNUSED,     UNUSED) /* 152 UNDEF                          */
233    OPSPEC(    UNUSED,     UNUSED,     UNUSED,     UNUSED) /* 153 UNDEF                          */
234# endif
235#endif
236};
Note: See TracBrowser for help on using the repository browser.