@@ -1069,7 +1069,7 @@ function skip_extra_spec_function($op1, $op2, $extra_spec) {
1069
1069
}
1070
1070
1071
1071
function is_hot_handler ($ hot , $ op1 , $ op2 , $ extra_spec ) {
1072
- if ($ hot === 'HOT_ ' ) {
1072
+ if ($ hot === 'HOT_ ' || $ hot === ' INLINE_ ' ) {
1073
1073
return true ;
1074
1074
} else if ($ hot === 'HOT_NOCONST_ ' ) {
1075
1075
return ($ op1 !== 'CONST ' );
@@ -1099,8 +1099,7 @@ function is_cold_handler($hot, $op1, $op2, $extra_spec) {
1099
1099
}
1100
1100
1101
1101
function is_inline_hybrid_handler ($ name , $ hot , $ op1 , $ op2 , $ extra_spec ) {
1102
- return $ name == "ZEND_RETURN " ;
1103
- //return $hot && is_hot_handler($hot, $op1, $op2, $extra_spec);
1102
+ return ($ hot === 'INLINE_ ' );
1104
1103
}
1105
1104
1106
1105
// Generates opcode handler
@@ -2391,6 +2390,7 @@ function gen_vm($def, $skel) {
2391
2390
foreach ($ in as $ line ) {
2392
2391
++$ lineno ;
2393
2392
if (strpos ($ line ,"ZEND_VM_HANDLER( " ) === 0 ||
2393
+ strpos ($ line ,"ZEND_VM_INLINE_HANDLER( " ) === 0 ||
2394
2394
strpos ($ line ,"ZEND_VM_HOT_HANDLER( " ) === 0 ||
2395
2395
strpos ($ line ,"ZEND_VM_HOT_NOCONST_HANDLER( " ) === 0 ||
2396
2396
strpos ($ line ,"ZEND_VM_HOT_SEND_HANDLER( " ) === 0 ||
@@ -2400,7 +2400,7 @@ function gen_vm($def, $skel) {
2400
2400
strpos ($ line ,"ZEND_VM_COLD_CONSTCONST_HANDLER( " ) === 0 ) {
2401
2401
// Parsing opcode handler's definition
2402
2402
if (preg_match (
2403
- "/^ZEND_VM_(HOT_|HOT_OBJ_|HOT_SEND_|HOT_NOCONST_|COLD_|COLD_CONST_|COLD_CONSTCONST_)?HANDLER\(\s*([0-9]+)\s*,\s*([A-Z_]+)\s*,\s*([A-Z_|]+)\s*,\s*([A-Z_|]+)\s*(,\s*([A-Z_|]+)\s*)?(,\s*SPEC\(([A-Z_|=,]+)\)\s*)?\)/ " ,
2403
+ "/^ZEND_VM_(HOT_|INLINE_| HOT_OBJ_|HOT_SEND_|HOT_NOCONST_|COLD_|COLD_CONST_|COLD_CONSTCONST_)?HANDLER\(\s*([0-9]+)\s*,\s*([A-Z_]+)\s*,\s*([A-Z_|]+)\s*,\s*([A-Z_|]+)\s*(,\s*([A-Z_|]+)\s*)?(,\s*SPEC\(([A-Z_|=,]+)\)\s*)?\)/ " ,
2404
2404
$ line ,
2405
2405
$ m ) == 0 ) {
2406
2406
die ("ERROR ( $ def: $ lineno): Invalid ZEND_VM_HANDLER definition. \n" );
@@ -2443,13 +2443,14 @@ function gen_vm($def, $skel) {
2443
2443
$ helper = null ;
2444
2444
$ list [$ lineno ] = array ("handler " =>$ handler );
2445
2445
} else if (strpos ($ line ,"ZEND_VM_TYPE_SPEC_HANDLER( " ) === 0 ||
2446
+ strpos ($ line ,"ZEND_VM_INLINE_TYPE_SPEC_HANDLER( " ) === 0 ||
2446
2447
strpos ($ line ,"ZEND_VM_HOT_TYPE_SPEC_HANDLER( " ) === 0 ||
2447
2448
strpos ($ line ,"ZEND_VM_HOT_NOCONST_TYPE_SPEC_HANDLER( " ) === 0 ||
2448
2449
strpos ($ line ,"ZEND_VM_HOT_SEND_TYPE_SPEC_HANDLER( " ) === 0 ||
2449
2450
strpos ($ line ,"ZEND_VM_HOT_OBJ_TYPE_SPEC_HANDLER( " ) === 0 ) {
2450
2451
// Parsing opcode handler's definition
2451
2452
if (preg_match (
2452
- "/^ZEND_VM_(HOT_|HOT_OBJ_|HOT_SEND_|HOT_NOCONST_)?TYPE_SPEC_HANDLER\(\s*([A-Z_]+)\s*,\s*((?:[^(,]|\([^()]*|(?R)*\))*),\s*([A-Za-z_]+)\s*,\s*([A-Z_|]+)\s*,\s*([A-Z_|]+)\s*(,\s*([A-Z_|]+)\s*)?(,\s*SPEC\(([A-Z_|=,]+)\)\s*)?\)/ " ,
2453
+ "/^ZEND_VM_(HOT_|INLINE_| HOT_OBJ_|HOT_SEND_|HOT_NOCONST_)?TYPE_SPEC_HANDLER\(\s*([A-Z_]+)\s*,\s*((?:[^(,]|\([^()]*|(?R)*\))*),\s*([A-Za-z_]+)\s*,\s*([A-Z_|]+)\s*,\s*([A-Z_|]+)\s*(,\s*([A-Z_|]+)\s*)?(,\s*SPEC\(([A-Z_|=,]+)\)\s*)?\)/ " ,
2453
2454
$ line ,
2454
2455
$ m ) == 0 ) {
2455
2456
die ("ERROR ( $ def: $ lineno): Invalid ZEND_VM_TYPE_HANDLER_HANDLER definition. \n" );
0 commit comments