source: branches/1.3/opcode_spec_def.h @ 626

Last change on this file since 626 was 626, checked in by moo, 5 years ago

merged r562-572 from trunk

  • Property svn:eol-style set to native
File size: 16.6 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,        STD) /* 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
150#ifdef ZEND_ENGINE_2
151    OPSPEC(    UNUSED,     UCLASS,        STD,        TMP) /* 99 FETCH_CONSTANT                 */
152#else
153    OPSPEC(    UNUSED,        STD,     UNUSED,        TMP) /* 99 FETCH_CONSTANT                 */
154#endif
155    OPSPEC(   DECLARE,        STD,        STD,     UNUSED) /* 100 DECLARE_FUNCTION_OR_CLASS      */
156    OPSPEC(       STD,        STD,        STD,        STD) /* 101 EXT_STMT                       */
157    OPSPEC(       STD,        STD,        STD,        STD) /* 102 EXT_FCALL_BEGIN                */
158    OPSPEC(       STD,        STD,        STD,        STD) /* 103 EXT_FCALL_END                  */
159    OPSPEC(    UNUSED,     UNUSED,     UNUSED,     UNUSED) /* 104 EXT_NOP                        */
160    OPSPEC(    UNUSED,        STD,     UNUSED,     UNUSED) /* 105 TICKS                          */
161    OPSPEC(SEND_NOREF,        VAR,        ARG,     UNUSED) /* 106 SEND_VAR_NO_REF                */
162#ifdef ZEND_ENGINE_2
163    OPSPEC(    OPLINE,      CLASS,        STD,     UNUSED) /* 107 CATCH                          */
164    OPSPEC(    UNUSED,        STD,     OPLINE,     UNUSED) /* 108 THROW                          */
165    OPSPEC(    FCLASS,        STD,        STD,      CLASS) /* 109 FETCH_CLASS                    */
166    OPSPEC(    UNUSED,        STD,     UNUSED,        VAR) /* 110 CLONE                          */
167    OPSPEC(    UNUSED,        STD,     UNUSED,     UNUSED) /* 111 INIT_CTOR_CALL                 */
168    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 112 INIT_METHOD_CALL               */
169    OPSPEC(    UNUSED,     UCLASS,        STD,     UNUSED) /* 113 INIT_STATIC_METHOD_CALL        */
170    OPSPEC(     ISSET,        STD,      FETCH,        TMP) /* 114 ISSET_ISEMPTY_VAR              */
171    OPSPEC(     ISSET,        STD,        STD,        TMP) /* 115 ISSET_ISEMPTY_DIM_OBJ          */
172    OPSPEC(    UNUSED,      CLASS,        STD,     UNUSED) /* 116 IMPORT_FUNCTION                */
173    OPSPEC(    UNUSED,      CLASS,        STD,     UNUSED) /* 117 IMPORT_CLASS                   */
174    OPSPEC(    UNUSED,      CLASS,        STD,     UNUSED) /* 118 IMPORT_CONST                   */
175    OPSPEC(       STD,        STD,        STD,        STD) /* 119 OP_119                         */
176    OPSPEC(       STD,        STD,        STD,        STD) /* 120 OP_120                         */
177    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 121 ASSIGN_ADD_OBJ                 */
178    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 122 ASSIGN_SUB_OBJ                 */
179    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 123 ASSIGN_MUL_OBJ                 */
180    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 124 ASSIGN_DIV_OBJ                 */
181    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 125 ASSIGN_MOD_OBJ                 */
182    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 126 ASSIGN_SL_OBJ                  */
183    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 127 ASSIGN_SR_OBJ                  */
184    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 128 ASSIGN_CONCAT_OBJ              */
185    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 129 ASSIGN_BW_OR_OBJ               */
186    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 130 ASSIGN_BW_AND_OBJ              */
187    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 131 ASSIGN_BW_XOR_OBJ              */
188    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 132 PRE_INC_OBJ                    */
189    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 133 PRE_DEC_OBJ                    */
190    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 134 POST_INC_OBJ                   */
191    OPSPEC(    UNUSED,        STD,        STD,        TMP) /* 135 POST_DEC_OBJ                   */
192    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 136 ASSIGN_OBJ                     */
193    OPSPEC(    UNUSED,        STD,        STD,        STD) /* 137 OP_DATA                        */
194    OPSPEC(    UNUSED,        STD,      CLASS,        TMP) /* 138 INSTANCEOF                     */
195    OPSPEC(    UNUSED,        STD,        STD,      CLASS) /* 139 DECLARE_CLASS                  */
196    OPSPEC(     CLASS,        STD,        STD,      CLASS) /* 140 DECLARE_INHERITED_CLASS        */
197    OPSPEC(    UNUSED,        STD,        STD,     UNUSED) /* 141 DECLARE_FUNCTION               */
198    OPSPEC(    UNUSED,     UNUSED,     UNUSED,     UNUSED) /* 142 RAISE_ABSTRACT_ERROR           */
199#ifdef ZEND_ENGINE_2_3
200    OPSPEC(   DECLARE,        STD,        STD,     UNUSED) /* 143 DECLARE_CONST                  */
201#else
202    OPSPEC(    UNUSED,        STD,     UNUSED,     UNUSED) /* 143 START_NAMESPACE                */
203#endif
204    OPSPEC(     IFACE,      CLASS,      CLASS,     UNUSED) /* 144 ADD_INTERFACE                  */
205    OPSPEC(    UNUSED,      CLASS,        STD,     UNUSED) /* 145 VERIFY_INSTANCEOF              */
206    OPSPEC(    UNUSED,      CLASS,     UNUSED,     UNUSED) /* 146 VERIFY_ABSTRACT_CLASS          */
207    OPSPEC(    UNUSED,        STD,        STD,        VAR) /* 147 ASSIGN_DIM                     */
208    OPSPEC(     ISSET,        STD,        STD,        TMP) /* 148 ISSET_ISEMPTY_PROP_OBJ         */
209    OPSPEC(       STD,     UNUSED,     UNUSED,        STD) /* 149 HANDLE_EXCEPTION               */
210# ifdef ZEND_ENGINE_2_3
211    OPSPEC(       STD,     UNUSED,     UNUSED,        STD) /* 150 ZEND_USER_OPCODE               */
212    OPSPEC(    UNUSED,     UNUSED,     UNUSED,     UNUSED) /* 151 UNDEF                          */
213    OPSPEC(    UNUSED,        STD,    JMPADDR,     UNUSED) /* 152 JMP_SET                        */
214    OPSPEC(    UNUSED,        STD,        STD,     UNUSED) /* 153 DECLARE_LAMBDA_FUNCTION        */
215# endif
216#endif
217};
Note: See TracBrowser for help on using the repository browser.