summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_opcodes.h
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-12-11 01:45:26 +0300
committerDmitry Stogov <dmitry@zend.com>2015-12-11 01:45:26 +0300
commitdc368109932fbde3b6edc2c59ff7edd4f01cfe4c (patch)
tree34ad64429adf877193102b75fb6e6d6cc777e9a9 /Zend/zend_vm_opcodes.h
parentfc2cedfb1d9a391773d2236c178c839bad2ed657 (diff)
downloadphp-git-dc368109932fbde3b6edc2c59ff7edd4f01cfe4c.tar.gz
Use more compact description encoding schema to free some bits
Diffstat (limited to 'Zend/zend_vm_opcodes.h')
-rw-r--r--Zend/zend_vm_opcodes.h47
1 files changed, 25 insertions, 22 deletions
diff --git a/Zend/zend_vm_opcodes.h b/Zend/zend_vm_opcodes.h
index 8d156a98d2..358afc6fe1 100644
--- a/Zend/zend_vm_opcodes.h
+++ b/Zend/zend_vm_opcodes.h
@@ -31,33 +31,36 @@
#define ZEND_VM_OP1_SPEC 0x00000001
#define ZEND_VM_OP1_CONST 0x00000002
#define ZEND_VM_OP1_TMPVAR 0x00000004
-#define ZEND_VM_OP1_NUM 0x00000008
-#define ZEND_VM_OP1_JMP_ADDR 0x00000010
-#define ZEND_VM_OP1_TRY_CATCH 0x00000020
+#define ZEND_VM_OP1_MASK 0x000000f0
+#define ZEND_VM_OP1_NUM 0x00000010
+#define ZEND_VM_OP1_JMP_ADDR 0x00000020
+#define ZEND_VM_OP1_TRY_CATCH 0x00000030
#define ZEND_VM_OP1_LIVE_RANGE 0x00000040
#define ZEND_VM_OP2_SPEC 0x00000100
#define ZEND_VM_OP2_CONST 0x00000200
#define ZEND_VM_OP2_TMPVAR 0x00000400
-#define ZEND_VM_OP2_NUM 0x00000800
-#define ZEND_VM_OP2_JMP_ADDR 0x00001000
-#define ZEND_VM_OP2_TRY_CATCH 0x00002000
+#define ZEND_VM_OP2_MASK 0x0000f000
+#define ZEND_VM_OP2_NUM 0x00001000
+#define ZEND_VM_OP2_JMP_ADDR 0x00002000
+#define ZEND_VM_OP2_TRY_CATCH 0x00003000
#define ZEND_VM_OP2_LIVE_RANGE 0x00004000
-#define ZEND_VM_EXT_NUM 0x00010000
-#define ZEND_VM_EXT_VAR 0x00020000
-#define ZEND_VM_EXT_JMP_ADDR 0x00040000
-#define ZEND_VM_EXT_DIM_OBJ 0x00080000
-#define ZEND_VM_EXT_CLASS_FETCH 0x00100000
-#define ZEND_VM_EXT_CONST_FETCH 0x00200000
-#define ZEND_VM_EXT_VAR_FETCH 0x00400000
-#define ZEND_VM_EXT_ARRAY_INIT 0x00800000
-#define ZEND_VM_EXT_TYPE 0x01000000
-#define ZEND_VM_EXT_EVAL 0x02000000
-#define ZEND_VM_EXT_FAST_CALL 0x04000000
-#define ZEND_VM_EXT_FAST_RET 0x08000000
-#define ZEND_VM_EXT_ISSET 0x10000000
-#define ZEND_VM_EXT_ARG_NUM 0x20000000
-#define ZEND_VM_EXT_REF 0x40000000
-#define ZEND_VM_EXT_SRC 0x80000000
+#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 0xff000000
+#define ZEND_VM_EXT_NUM 0x01000000
+#define ZEND_VM_EXT_VAR 0x02000000
+#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
BEGIN_EXTERN_C()