Fix JMP_FRAMELESS with ZEND_USE_ABS_JMP_ADDR

which is used on 32-bit machines.
This commit is contained in:
Ilija Tovilo 2024-02-07 14:02:27 +01:00
parent 294c9ec36c
commit 49ebfb04ef
No known key found for this signature in database
GPG Key ID: A4F5D403F118200A
3 changed files with 4 additions and 0 deletions

View File

@ -300,6 +300,7 @@ static int zend_jit_trace_may_exit(const zend_op_array *op_array, const zend_op
case ZEND_SWITCH_STRING:
case ZEND_MATCH:
case ZEND_BIND_INIT_STATIC_OR_JMP:
case ZEND_JMP_FRAMELESS:
/* branch opcodes */
return 1;
case ZEND_NEW:

View File

@ -557,6 +557,7 @@ static void zend_file_cache_serialize_op_array(zend_op_array *op_arra
case ZEND_ASSERT_CHECK:
case ZEND_JMP_NULL:
case ZEND_BIND_INIT_STATIC_OR_JMP:
case ZEND_JMP_FRAMELESS:
SERIALIZE_PTR(opline->op2.jmp_addr);
break;
case ZEND_CATCH:
@ -1408,6 +1409,7 @@ static void zend_file_cache_unserialize_op_array(zend_op_array *op_arr
case ZEND_ASSERT_CHECK:
case ZEND_JMP_NULL:
case ZEND_BIND_INIT_STATIC_OR_JMP:
case ZEND_JMP_FRAMELESS:
UNSERIALIZE_PTR(opline->op2.jmp_addr);
break;
case ZEND_CATCH:

View File

@ -579,6 +579,7 @@ static void zend_persist_op_array_ex(zend_op_array *op_array, zend_persistent_sc
case ZEND_ASSERT_CHECK:
case ZEND_JMP_NULL:
case ZEND_BIND_INIT_STATIC_OR_JMP:
case ZEND_JMP_FRAMELESS:
opline->op2.jmp_addr = &new_opcodes[opline->op2.jmp_addr - op_array->opcodes];
break;
case ZEND_CATCH: