Lines Matching refs:extra_spec

577 function helper_name($name, $spec, $op1, $op2, $extra_spec) {  argument
614 if (isset($extra_spec, $helpers[$name]["spec"])) {
615 $extra = extra_spec_name(array_intersect_key($extra_spec, $helpers[$name]["spec"]));
622 function opcode_name($name, $spec, $op1, $op2, $extra_spec) { argument
666 if (isset($extra_spec, $opcode["spec"])) {
667 $extra = extra_spec_name(array_intersect_key($extra_spec, $opcode["spec"]));
688 function gen_code($f, $spec, $kind, $code, $op1, $op2, $name, $extra_spec=null) { argument
733 "/\!ZEND_VM_SPEC/m" => ($op1!="ANY"||$op2!="ANY"||$extra_spec)?"0":"1",
734 "/ZEND_VM_SPEC/m" => ($op1!="ANY"||$op2!="ANY"||$extra_spec)?"1":"0",
735 …$kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($extra_spec)):""),
736 …$kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($extra_spec)):""),
741 … "/OP_DATA_TYPE/" => $op_data_type[isset($extra_spec['OP_DATA']) ? $extra_spec['OP_DATA'] : "ANY"],
742 …ATA_ZVAL_PTR\(([^)]*)\)/" => $op_data_get_zval_ptr[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
743 …_UNDEF\(([^)]*)\)/" => $op_data_get_zval_ptr_undef[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
744 …_DEREF\(([^)]*)\)/" => $op_data_get_zval_ptr_deref[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
745 …_PTR_PTR\(([^)]*)\)/" => $op_data_get_zval_ptr_ptr[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
746 …"/FREE_OP_DATA\(\)/" => $op_data_free_op[isset($extra_spec['OP_DATA']) ? $extra_spec['OP_DATA'] : …
747 …"/RETURN_VALUE_USED\(opline\)/" => isset($extra_spec['RETVAL']) ? $extra_spec['RETVAL'] : "RETURN_…
748 …"/arg_num <= MAX_ARG_FLAG_NUM/" => isset($extra_spec['QUICK_ARG']) ? $extra_spec['QUICK_ARG'] : "a…
749 … "/ZEND_VM_SMART_BRANCH\(\s*([^,)]*)\s*,\s*([^)]*)\s*\)/" => isset($extra_spec['SMART_BRANCH']) ?
750 ($extra_spec['SMART_BRANCH'] == 1 ?
752 : ($extra_spec['SMART_BRANCH'] == 2 ?
755 "/ZEND_VM_SMART_BRANCH_TRUE\(\s*\)/" => isset($extra_spec['SMART_BRANCH']) ?
756 ($extra_spec['SMART_BRANCH'] == 1 ?
758 : ($extra_spec['SMART_BRANCH'] == 2 ?
761 "/ZEND_VM_SMART_BRANCH_FALSE\(\s*\)/" => isset($extra_spec['SMART_BRANCH']) ?
762 ($extra_spec['SMART_BRANCH'] == 1 ?
764 : ($extra_spec['SMART_BRANCH'] == 2 ?
767 "/opline->extended_value\s*&\s*ZEND_ISEMPTY/" => isset($extra_spec['ISSET']) ?
768 ($extra_spec['ISSET'] == 0 ? "0" : "1")
770 "/opline->extended_value\s*&\s*~\s*ZEND_ISEMPTY/" => isset($extra_spec['ISSET']) ?
771 ($extra_spec['ISSET'] == 0 ? "\\0" : "opline->extended_value")
773 …"/ZEND_OBSERVER_ENABLED/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == 1 ? "1" …
774 …"/ZEND_OBSERVER_USE_RETVAL/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == 1 ? "…
775 …"/ZEND_OBSERVER_SET_RETVAL\(\)/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == 1…
776 …"/ZEND_OBSERVER_FREE_RETVAL\(\)/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == …
777 …"/ZEND_OBSERVER_SAVE_OPLINE\(\)/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == …
778 "/ZEND_OBSERVER_FCALL_BEGIN\(\s*(.*)\s*\)/" => isset($extra_spec['OBSERVER']) ?
779 … ($extra_spec['OBSERVER'] == 0 ? "" : "zend_observer_fcall_begin_specialized(\\1, false)")
781 "/ZEND_OBSERVER_FCALL_END\(\s*([^,]*)\s*,\s*(.*)\s*\)/" => isset($extra_spec['OBSERVER']) ?
782 ($extra_spec['OBSERVER'] == 0 ? "" : "zend_observer_fcall_end(\\1, \\2)")
799 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec) {
807 … return "goto " . opcode_name($name, $spec, $op1, $op2, $extra_spec) . "_LABEL";
814 … return $args . "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "_LABEL";
816 … return "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "_LABEL";
821 …rn "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(" . $args. …
823 …rn "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(ZEND_OPCODE…
835 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec, $name) {
846 is_hot_handler($opcode["hot"], $op1, $op2, $extra_spec) &&
847 … is_hot_handler($opcodes[$opnames[$name]]["hot"], $op1, $op2, $extra_spec) ?
849 …eturn "ZEND_VM_TAIL_CALL(" . opcode_name($handler, $spec, $op1, $op2, $extra_spec) . $inline . "_H…
855 …rn "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(" . $args. …
857 …rn "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(ZEND_OPCODE…
869 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec) {
873 … return "goto " . opcode_name($matches[1], $spec, $op1, $op2, $extra_spec) . "_LABEL";
879 … return $args . "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
881 return "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
893 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec) {
897 … return "goto " . opcode_name($matches[1], $spec, $op1, $op2, $extra_spec) . "_LABEL";
903 … return $args . "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
905 return "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
921 function skip_extra_spec_function($op1, $op2, $extra_spec) { argument
924 if (isset($extra_spec["NO_CONST_CONST"]) &&
930 if (isset($extra_spec["COMMUTATIVE"]) &&
939 function is_hot_handler($hot, $op1, $op2, $extra_spec) { argument
940 if (isset($extra_spec["SMART_BRANCH"]) && $extra_spec["SMART_BRANCH"] == 0) {
943 if (isset($extra_spec["OBSERVER"]) && $extra_spec["OBSERVER"] == 1) {
955 return !empty($extra_spec["QUICK_ARG"]);
961 function is_cold_handler($hot, $op1, $op2, $extra_spec) { argument
964 } else if (isset($extra_spec["OBSERVER"]) && $extra_spec["OBSERVER"] == 1) {
981 function is_inline_hybrid_handler($name, $hot, $op1, $op2, $extra_spec) { argument
986 …r($f, $spec, $kind, $name, $op1, $op2, $use, $code, $lineno, $opcode, $extra_spec = null, &$switch… argument
995 if ($spec && skip_extra_spec_function($op1, $op2, $extra_spec)) {
1000 if (isset($extra_spec["SMART_BRANCH"])) {
1004 if ($extra_spec["SMART_BRANCH"] == 0) {
1005 unset($extra_spec["SMART_BRANCH"]);
1014 if (isset($extra_spec["QUICK_ARG"])) {
1016 if ($extra_spec["QUICK_ARG"] == 0) {
1017 unset($extra_spec["QUICK_ARG"]);
1025 if (isset($extra_spec["OBSERVER"]) && $extra_spec["OBSERVER"] == 1) {
1026 if (isset($extra_spec["RETVAL"])) {
1027 if ($extra_spec["RETVAL"] == 0) {
1028 unset($extra_spec["RETVAL"]);
1050 …ame = $name.($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2].($spec?extra_spec_name($extra_spec):"");
1053 if (is_inline_hybrid_handler($name, $opcode["hot"], $op1, $op2, $extra_spec)) {
1055 gen_code($out, $spec, $kind, $code, $op1, $op2, $name, $extra_spec);
1066 is_hot_handler($opcode["hot"], $op1, $op2, $extra_spec) ?
1082 …& ZEND_VM_KIND == ZEND_VM_KIND_HYBRID && is_hot_handler($opcode["hot"], $op1, $op2, $extra_spec)) {
1089 } else if ($opcode["hot"] && is_cold_handler($opcode["hot"], $op1, $op2, $extra_spec)) {
1116 gen_code($f, $spec, $kind, $code, $op1, $op2, $name, $extra_spec);
1128 …me, $op1, $op2, $param, $code, $lineno, $inline, $cold = false, $hot = false, $extra_spec = null) { argument
1135 if ($spec && skip_extra_spec_function($op1, $op2, $extra_spec)) {
1143 …ame = $name.($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2].($spec?extra_spec_name($extra_spec):"");
1179 gen_code($f, $spec, $kind, $code, $op1, $op2, $name, $extra_spec);
1308 return function($op1, $op2, $extra_spec = array()) use ($do, $dsc, $op_types) {
1329 $do($op1, $op2, array("OP_DATA" => $op_data) + $extra_spec);
1335 return function($op1, $op2, $extra_spec = array()) use ($do, $spec, $dsc) {
1337 $do($op1, $op2, array($spec => $val) + $extra_spec);
1341 …$generate = function ($op1, $op2, $extra_spec = array()) use ($f, $kind, $dsc, $prefix, $prolog, $…
1348 … (!isset($extra_spec["OP_DATA"]) || isset($dsc["spec"]["OP_DATA"][$extra_spec["OP_DATA"]]))) {
1349 if (skip_extra_spec_function($op1, $op2, $extra_spec)) {
1357 if (isset($extra_spec["SMART_BRANCH"])) {
1361 unset($extra_spec["SMART_BRANCH"]);
1367 if (isset($extra_spec["QUICK_ARG"])) {
1369 unset($extra_spec["QUICK_ARG"]);
1374 if (isset($extra_spec["OBSERVER"]) && $extra_spec["OBSERVER"] == 1) {
1375 if (isset($extra_spec["RETVAL"])) {
1376 unset($extra_spec["RETVAL"]);
1385 … $spec_name = $dsc["op"]."_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($extra_spec);
1554 function extra_spec_name($extra_spec) { argument
1558 if (isset($extra_spec["OP_DATA"])) {
1559 $s .= "_OP_DATA" . $prefix[$extra_spec["OP_DATA"]];
1561 if (isset($extra_spec["RETVAL"])) {
1562 $s .= "_RETVAL_".($extra_spec["RETVAL"] ? "USED" : "UNUSED");
1564 if (isset($extra_spec["QUICK_ARG"])) {
1565 if ($extra_spec["QUICK_ARG"]) {
1569 if (isset($extra_spec["SMART_BRANCH"])) {
1570 if ($extra_spec["SMART_BRANCH"] == 1) {
1572 } else if ($extra_spec["SMART_BRANCH"] == 2) {
1576 if (isset($extra_spec["ISSET"])) {
1577 if ($extra_spec["ISSET"] == 0) {
1583 if (isset($extra_spec["OBSERVER"])) {
1584 if ($extra_spec["OBSERVER"]) {
1591 function extra_spec_flags($extra_spec) { argument
1593 if (isset($extra_spec["OP_DATA"])) {
1596 if (isset($extra_spec["RETVAL"])) {
1599 if (isset($extra_spec["QUICK_ARG"])) {
1602 if (isset($extra_spec["SMART_BRANCH"])) {
1605 if (isset($extra_spec["COMMUTATIVE"])) {
1608 if (isset($extra_spec["ISSET"])) {
1611 if (isset($extra_spec["OBSERVER"])) {
1686 foreach (extra_spec_handler($opcodes[$num]) as $extra_spec) {
1691 …codes[$num]["use"]), $opcodes[$num]["code"], $lineno, $opcodes[$num], $extra_spec, $switch_labels);
1696 foreach (extra_spec_handler($helpers[$num]) as $extra_spec) {
1701 …"], $lineno, $helpers[$num]["inline"], $helpers[$num]["cold"], $helpers[$num]["hot"], $extra_spec);