summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_opcodes.h
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_vm_opcodes.h')
-rw-r--r--Zend/zend_vm_opcodes.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/Zend/zend_vm_opcodes.h b/Zend/zend_vm_opcodes.h
index 9ba87e58be..90f2ea4e51 100644
--- a/Zend/zend_vm_opcodes.h
+++ b/Zend/zend_vm_opcodes.h
@@ -28,9 +28,45 @@
#define ZEND_VM_KIND_GOTO 3
#define ZEND_VM_KIND ZEND_VM_KIND_CALL
+#define ZEND_VM_OP_SPEC 0x00000001
+#define ZEND_VM_OP_CONST 0x00000002
+#define ZEND_VM_OP_TMPVAR 0x00000004
+#define ZEND_VM_OP_TMPVARCV 0x00000008
+#define ZEND_VM_OP_MASK 0x000000f0
+#define ZEND_VM_OP_NUM 0x00000010
+#define ZEND_VM_OP_JMP_ADDR 0x00000020
+#define ZEND_VM_OP_TRY_CATCH 0x00000030
+#define ZEND_VM_OP_LIVE_RANGE 0x00000040
+#define ZEND_VM_OP_THIS 0x00000050
+#define ZEND_VM_OP_NEXT 0x00000060
+#define ZEND_VM_OP_CLASS_FETCH 0x00000070
+#define ZEND_VM_OP_CONSTRUCTOR 0x00000080
+#define ZEND_VM_EXT_VAR_FETCH 0x00010000
+#define ZEND_VM_EXT_ISSET 0x00020000
+#define ZEND_VM_EXT_ARG_NUM 0x00040000
+#define ZEND_VM_EXT_ARRAY_INIT 0x00080000
+#define ZEND_VM_EXT_REF 0x00100000
+#define ZEND_VM_EXT_MASK 0x0f000000
+#define ZEND_VM_EXT_NUM 0x01000000
+#define ZEND_VM_EXT_JMP_ADDR 0x03000000
+#define ZEND_VM_EXT_DIM_OBJ 0x04000000
+#define ZEND_VM_EXT_CLASS_FETCH 0x05000000
+#define ZEND_VM_EXT_CONST_FETCH 0x06000000
+#define ZEND_VM_EXT_TYPE 0x07000000
+#define ZEND_VM_EXT_EVAL 0x08000000
+#define ZEND_VM_EXT_FAST_CALL 0x09000000
+#define ZEND_VM_EXT_FAST_RET 0x0a000000
+#define ZEND_VM_EXT_SRC 0x0b000000
+#define ZEND_VM_EXT_SEND 0x0c000000
+#define ZEND_VM_NO_CONST_CONST 0x40000000
+#define ZEND_VM_COMMUTATIVE 0x80000000
+#define ZEND_VM_OP1_FLAGS(flags) (flags & 0xff)
+#define ZEND_VM_OP2_FLAGS(flags) ((flags >> 8) & 0xff)
+
BEGIN_EXTERN_C()
ZEND_API const char *zend_get_opcode_name(zend_uchar opcode);
+ZEND_API uint32_t zend_get_opcode_flags(zend_uchar opcode);
END_EXTERN_C()
@@ -202,5 +238,18 @@ END_EXTERN_C()
#define ZEND_SPACESHIP 170
#define ZEND_DECLARE_ANON_CLASS 171
#define ZEND_DECLARE_ANON_INHERITED_CLASS 172
+#define ZEND_FETCH_STATIC_PROP_R 173
+#define ZEND_FETCH_STATIC_PROP_W 174
+#define ZEND_FETCH_STATIC_PROP_RW 175
+#define ZEND_FETCH_STATIC_PROP_IS 176
+#define ZEND_FETCH_STATIC_PROP_FUNC_ARG 177
+#define ZEND_FETCH_STATIC_PROP_UNSET 178
+#define ZEND_UNSET_STATIC_PROP 179
+#define ZEND_ISSET_ISEMPTY_STATIC_PROP 180
+#define ZEND_FETCH_CLASS_CONSTANT 181
+#define ZEND_BIND_LEXICAL 182
+#define ZEND_BIND_STATIC 183
+
+#define ZEND_VM_LAST_OPCODE 183
#endif