Browse Source

closes #326: opcode spec info updates for 5.4+

git-svn-id: svn://svn.lighttpd.net/xcache/trunk@1371 c26eb9a1-5813-0410-bd6c-c2e55f420ca7
3.1
Xuefer 8 years ago
parent
commit
22523476be
  1. 3
      xcache/xc_opcode_spec.h
  2. 42
      xcache/xc_opcode_spec_def.h

3
xcache/xc_opcode_spec.h

@ -25,7 +25,8 @@
OPSPEC(BRK) \
OPSPEC(CONT) \
OPSPEC(INCLUDE) \
OPSPEC(ASSIGN)
OPSPEC(ASSIGN) \
OPSPEC(FETCHTYPE)
#define OPSPECS_DEF_ENUM(name) OPSPEC_##name,
typedef enum { OPSPECS(OPSPECS_DEF_ENUM) OPSPEC_DUMMY } xc_op_spec_t;

42
xcache/xc_opcode_spec_def.h

@ -113,36 +113,66 @@ static const xc_opcode_spec_t xc_opcode_spec[] = {
OPSPEC( BIT, STD, STD, TMP) /* 71 INIT_ARRAY */
OPSPEC( BIT, STD, STD, TMP) /* 72 ADD_ARRAY_ELEMENT */
OPSPEC( UNUSED, STD, INCLUDE, VAR) /* 73 INCLUDE_OR_EVAL */
OPSPEC( UNUSED, STD, FETCH, UNUSED) /* 74 UNSET_VAR */
#ifdef ZEND_ENGINE_2_1
/* php 5.1 and up */
# ifdef ZEND_ENGINE_2_4
OPSPEC( FETCHTYPE, STD, STD, UNUSED) /* 74 UNSET_VAR */
# else
OPSPEC( UNUSED, STD, FETCH, UNUSED) /* 74 UNSET_VAR */
# endif
OPSPEC( STD, STD, STD, UNUSED) /* 75 UNSET_DIM */
OPSPEC( STD, STD, STD, UNUSED) /* 76 UNSET_OBJ */
OPSPEC( BIT, STD, OPLINE, VAR) /* 77 FE_RESET */
#else
/* <= php 5.0 */
OPSPEC( UNUSED, STD, UNUSED, UNUSED) /* 74 UNSET_VAR */
/* though there is no ISSET_ISEMPTY in php 5.0 it's better to leave it here i guess */
OPSPEC( UNUSED, VAR, STD, UNUSED) /* 75 UNSET_DIM_OBJ */
OPSPEC( UNUSED, VAR, ISSET, TMP) /* 76 UNUSED */
#endif
OPSPEC( UNUSED, VAR, STD, UNUSED)
OPSPEC( UNUSED, VAR, ISSET, TMP)
OPSPEC( BIT, STD, UNUSED, VAR) /* 77 FE_RESET */
#endif
OPSPEC( FE, STD, OPLINE, TMP) /* 78 FE_FETCH */
OPSPEC( UNUSED, STD, UNUSED, UNUSED) /* 79 EXIT */
#ifdef ZEND_ENGINE_2_4
OPSPEC( FETCHTYPE, STD, STD, VAR) /* 80 FETCH_R */
#else
OPSPEC( UNUSED, STD, FETCH, VAR) /* 80 FETCH_R */
#endif
OPSPEC( FETCH, VAR, STD, VAR) /* 81 FETCH_DIM_R */
OPSPEC( UNUSED, VAR_2, STD, VAR) /* 82 FETCH_OBJ_R */
#ifdef ZEND_ENGINE_2_4
OPSPEC( FETCHTYPE, STD, STD, VAR) /* 83 FETCH_W */
#else
OPSPEC( UNUSED, STD, FETCH, VAR) /* 83 FETCH_W */
#endif
OPSPEC( UNUSED, VAR, STD, VAR) /* 84 FETCH_DIM_W */
OPSPEC( UNUSED, VAR_2, STD, VAR) /* 85 FETCH_OBJ_W */
#ifdef ZEND_ENGINE_2_4
OPSPEC( FETCHTYPE, STD, STD, VAR) /* 86 FETCH_RW */
#else
OPSPEC( UNUSED, STD, FETCH, VAR) /* 86 FETCH_RW */
#endif
OPSPEC( UNUSED, VAR, STD, VAR) /* 87 FETCH_DIM_RW */
OPSPEC( UNUSED, VAR_2, STD, VAR) /* 88 FETCH_OBJ_RW */
#ifdef ZEND_ENGINE_2_4
OPSPEC( FETCHTYPE, STD, STD, VAR) /* 89 FETCH_IS */
#else
OPSPEC( UNUSED, STD, FETCH, VAR) /* 89 FETCH_IS */
#endif
OPSPEC( UNUSED, VAR, STD, VAR) /* 90 FETCH_DIM_IS */
OPSPEC( UNUSED, VAR_2, STD, VAR) /* 91 FETCH_OBJ_IS */
#ifdef ZEND_ENGINE_2_4
OPSPEC( ARG, STD, STD, VAR) /* 92 FETCH_FUNC_ARG */
#else
OPSPEC( ARG, STD, FETCH, VAR) /* 92 FETCH_FUNC_ARG */
#endif
OPSPEC( ARG, VAR, STD, VAR) /* 93 FETCH_DIM_FUNC_ARG */
OPSPEC( ARG, VAR_2, STD, VAR) /* 94 FETCH_OBJ_FUNC_ARG */
#ifdef ZEND_ENGINE_2_4
OPSPEC( FETCHTYPE, STD, STD, VAR) /* 95 FETCH_UNSET */
#else
OPSPEC( UNUSED, STD, FETCH, VAR) /* 95 FETCH_UNSET */
#endif
OPSPEC( UNUSED, VAR, STD, VAR) /* 96 FETCH_DIM_UNSET */
OPSPEC( UNUSED, VAR_2, STD, VAR) /* 97 FETCH_OBJ_UNSET */
OPSPEC( UNUSED, STD, STD, VAR) /* 98 FETCH_DIM_TMP_VAR */
@ -193,7 +223,11 @@ static const xc_opcode_spec_t xc_opcode_spec[] = {
# else
OPSPEC( UNUSED, UCLASS, STD, UNUSED) /* 113 INIT_STATIC_METHOD_CALL */
# endif
# ifdef ZEND_ENGINE_2_4
OPSPEC( ISSET, STD, STD, TMP) /* 114 ISSET_ISEMPTY_VAR */
# else
OPSPEC( ISSET, STD, FETCH, TMP) /* 114 ISSET_ISEMPTY_VAR */
# endif
OPSPEC( ISSET, STD, STD, TMP) /* 115 ISSET_ISEMPTY_DIM_OBJ */
OPSPEC( UNUSED, CLASS, STD, UNUSED) /* 116 IMPORT_FUNCTION */

Loading…
Cancel
Save