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.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/Zend/zend_vm_opcodes.h b/Zend/zend_vm_opcodes.h
index a9d5b49648..c0297ad3c5 100644
--- a/Zend/zend_vm_opcodes.h
+++ b/Zend/zend_vm_opcodes.h
@@ -27,7 +27,12 @@
#define ZEND_VM_KIND_SWITCH 2
#define ZEND_VM_KIND_GOTO 3
#define ZEND_VM_KIND_HYBRID 4
-#define ZEND_VM_KIND ZEND_VM_KIND_CALL
+/* HYBRID requires support for computed GOTO and global register variables*/
+#if (defined(__GNUC__) && defined(HAVE_GCC_GLOBAL_REGS))
+# define ZEND_VM_KIND ZEND_VM_KIND_HYBRID
+#else
+# define ZEND_VM_KIND ZEND_VM_KIND_CALL
+#endif
#define ZEND_VM_OP_SPEC 0x00000001
#define ZEND_VM_OP_CONST 0x00000002