summaryrefslogtreecommitdiff
path: root/xcache
diff options
context:
space:
mode:
authorXuefer <xuefer@gmail.com>2013-09-16 03:20:31 +0000
committerXuefer <xuefer@gmail.com>2013-09-16 03:20:31 +0000
commit22523476be28c3dadcec777420791d698bfb667a (patch)
treeb627317d9513ae6c154ab624f4cf0c6057ec4d64 /xcache
parentc7a1b68ae38db653a8bd21f574957513ee5ab8de (diff)
downloadxcache-22523476be28c3dadcec777420791d698bfb667a.tar.gz
xcache-22523476be28c3dadcec777420791d698bfb667a.zip
closes #326: opcode spec info updates for 5.4+
git-svn-id: svn://svn.lighttpd.net/xcache/trunk@1371 c26eb9a1-5813-0410-bd6c-c2e55f420ca7
Diffstat (limited to 'xcache')
-rw-r--r--xcache/xc_opcode_spec.h3
-rw-r--r--xcache/xc_opcode_spec_def.h42
2 files changed, 40 insertions, 5 deletions
diff --git a/xcache/xc_opcode_spec.h b/xcache/xc_opcode_spec.h
index 4237f29..c2cb6c3 100644
--- a/xcache/xc_opcode_spec.h
+++ b/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;
diff --git a/xcache/xc_opcode_spec_def.h b/xcache/xc_opcode_spec_def.h
index 3ac6ede..51b3f96 100644
--- a/xcache/xc_opcode_spec_def.h
+++ b/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 */