Lines Matching refs:extra_spec
610 function helper_name($name, $spec, $op1, $op2, $extra_spec) { argument
647 if (isset($extra_spec, $helpers[$name]["spec"])) {
648 $extra = extra_spec_name(array_intersect_key($extra_spec, $helpers[$name]["spec"]));
655 function opcode_name($name, $spec, $op1, $op2, $extra_spec) { argument
699 if (isset($extra_spec, $opcode["spec"])) {
700 $extra = extra_spec_name(array_intersect_key($extra_spec, $opcode["spec"]));
721 function gen_code($f, $spec, $kind, $code, $op1, $op2, $name, $extra_spec=null) { argument
771 …$kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($extra_spec)):""),
772 …$kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($extra_spec)):""),
777 … "/OP_DATA_TYPE/" => $op_data_type[isset($extra_spec['OP_DATA']) ? $extra_spec['OP_DATA'] : "ANY"],
778 …ATA_ZVAL_PTR\(([^)]*)\)/" => $op_data_get_zval_ptr[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
779 …_UNDEF\(([^)]*)\)/" => $op_data_get_zval_ptr_undef[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
780 …_DEREF\(([^)]*)\)/" => $op_data_get_zval_ptr_deref[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
781 …_PTR_PTR\(([^)]*)\)/" => $op_data_get_zval_ptr_ptr[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
782 …"/FREE_OP_DATA\(\)/" => $op_data_free_op[isset($extra_spec['OP_DATA']) ? $extra_spec['OP_DATA'] : …
783 …_OP_DATA_VAR_PTR\(\)/" => $op_data_free_op_var_ptr[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
784 …"/RETURN_VALUE_USED\(opline\)/" => isset($extra_spec['RETVAL']) ? $extra_spec['RETVAL'] : "RETURN_…
785 …"/arg_num <= MAX_ARG_FLAG_NUM/" => isset($extra_spec['QUICK_ARG']) ? $extra_spec['QUICK_ARG'] : "a…
786 … "/ZEND_VM_SMART_BRANCH\(\s*([^,)]*)\s*,\s*([^)]*)\s*\)/" => isset($extra_spec['SMART_BRANCH']) ?
787 ($extra_spec['SMART_BRANCH'] == 1 ?
789 : ($extra_spec['SMART_BRANCH'] == 2 ?
792 "/ZEND_VM_SMART_BRANCH_TRUE\(\s*\)/" => isset($extra_spec['SMART_BRANCH']) ?
793 ($extra_spec['SMART_BRANCH'] == 1 ?
795 : ($extra_spec['SMART_BRANCH'] == 2 ?
798 "/ZEND_VM_SMART_BRANCH_FALSE\(\s*\)/" => isset($extra_spec['SMART_BRANCH']) ?
799 ($extra_spec['SMART_BRANCH'] == 1 ?
801 : ($extra_spec['SMART_BRANCH'] == 2 ?
804 "/opline->extended_value\s*&\s*ZEND_ISEMPTY/" => isset($extra_spec['ISSET']) ?
805 ($extra_spec['ISSET'] == 0 ? "0" : "1")
807 "/opline->extended_value\s*&\s*~\s*ZEND_ISEMPTY/" => isset($extra_spec['ISSET']) ?
808 ($extra_spec['ISSET'] == 0 ? "\\0" : "opline->extended_value")
810 …"/ZEND_OBSERVER_ENABLED/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == 1 ? "1" …
811 …"/ZEND_OBSERVER_USE_RETVAL/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == 1 ? "…
812 …"/ZEND_OBSERVER_SET_RETVAL\(\)/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == 1…
813 …"/ZEND_OBSERVER_FREE_RETVAL\(\)/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == …
814 …"/ZEND_OBSERVER_SAVE_OPLINE\(\)/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == …
815 "/ZEND_OBSERVER_FCALL_BEGIN\(\s*(.*)\s*\)/" => isset($extra_spec['OBSERVER']) ?
816 ($extra_spec['OBSERVER'] == 0 ? "" : "zend_observer_fcall_begin(\\1)")
818 "/ZEND_OBSERVER_FCALL_END\(\s*([^,]*)\s*,\s*(.*)\s*\)/" => isset($extra_spec['OBSERVER']) ?
819 ($extra_spec['OBSERVER'] == 0 ? "" : "zend_observer_fcall_end(\\1, \\2)")
836 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec) {
844 … return "goto " . opcode_name($name, $spec, $op1, $op2, $extra_spec) . "_LABEL";
851 … return $args . "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "_LABEL";
853 … return "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "_LABEL";
858 …rn "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(" . $args. …
860 …rn "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(ZEND_OPCODE…
872 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec, $name) {
883 is_hot_handler($opcode["hot"], $op1, $op2, $extra_spec) &&
884 … is_hot_handler($opcodes[$opnames[$name]]["hot"], $op1, $op2, $extra_spec) ?
886 …eturn "ZEND_VM_TAIL_CALL(" . opcode_name($handler, $spec, $op1, $op2, $extra_spec) . $inline . "_H…
892 …rn "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(" . $args. …
894 …rn "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(ZEND_OPCODE…
906 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec) {
910 … return "goto " . opcode_name($matches[1], $spec, $op1, $op2, $extra_spec) . "_LABEL";
916 … return $args . "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
918 return "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
930 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec) {
934 … return "goto " . opcode_name($matches[1], $spec, $op1, $op2, $extra_spec) . "_LABEL";
940 … return $args . "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
942 return "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
958 function skip_extra_spec_function($op1, $op2, $extra_spec) { argument
961 if (isset($extra_spec["NO_CONST_CONST"]) &&
967 if (isset($extra_spec["COMMUTATIVE"]) &&
976 function is_hot_handler($hot, $op1, $op2, $extra_spec) { argument
977 if (isset($extra_spec["SMART_BRANCH"]) && $extra_spec["SMART_BRANCH"] == 0) {
980 if (isset($extra_spec["OBSERVER"]) && $extra_spec["OBSERVER"] == 1) {
992 return !empty($extra_spec["QUICK_ARG"]);
998 function is_cold_handler($hot, $op1, $op2, $extra_spec) { argument
1001 } else if (isset($extra_spec["OBSERVER"]) && $extra_spec["OBSERVER"] == 1) {
1018 function is_inline_hybrid_handler($name, $hot, $op1, $op2, $extra_spec) { argument
1023 …r($f, $spec, $kind, $name, $op1, $op2, $use, $code, $lineno, $opcode, $extra_spec = null, &$switch… argument
1032 if ($spec && skip_extra_spec_function($op1, $op2, $extra_spec)) {
1037 if (isset($extra_spec["SMART_BRANCH"])) {
1041 if ($extra_spec["SMART_BRANCH"] == 0) {
1042 unset($extra_spec["SMART_BRANCH"]);
1051 if (isset($extra_spec["QUICK_ARG"])) {
1053 if ($extra_spec["QUICK_ARG"] == 0) {
1054 unset($extra_spec["QUICK_ARG"]);
1062 if (isset($extra_spec["OBSERVER"]) && $extra_spec["OBSERVER"] == 1) {
1063 if (isset($extra_spec["RETVAL"])) {
1064 if ($extra_spec["RETVAL"] == 0) {
1065 unset($extra_spec["RETVAL"]);
1087 …ame = $name.($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2].($spec?extra_spec_name($extra_spec):"");
1090 if (is_inline_hybrid_handler($name, $opcode["hot"], $op1, $op2, $extra_spec)) {
1092 gen_code($out, $spec, $kind, $code, $op1, $op2, $name, $extra_spec);
1102 is_hot_handler($opcode["hot"], $op1, $op2, $extra_spec) ?
1117 …& ZEND_VM_KIND == ZEND_VM_KIND_HYBRID && is_hot_handler($opcode["hot"], $op1, $op2, $extra_spec)) {
1124 } else if ($opcode["hot"] && is_cold_handler($opcode["hot"], $op1, $op2, $extra_spec)) {
1151 gen_code($f, $spec, $kind, $code, $op1, $op2, $name, $extra_spec);
1163 …me, $op1, $op2, $param, $code, $lineno, $inline, $cold = false, $hot = false, $extra_spec = null) { argument
1170 if ($spec && skip_extra_spec_function($op1, $op2, $extra_spec)) {
1178 …ame = $name.($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2].($spec?extra_spec_name($extra_spec):"");
1214 gen_code($f, $spec, $kind, $code, $op1, $op2, $name, $extra_spec);
1343 return function($op1, $op2, $extra_spec = array()) use ($do, $dsc, $op_types) {
1364 $do($op1, $op2, array("OP_DATA" => $op_data) + $extra_spec);
1370 return function($op1, $op2, $extra_spec = array()) use ($do, $spec, $dsc) {
1372 $do($op1, $op2, array($spec => $val) + $extra_spec);
1376 …$generate = function ($op1, $op2, $extra_spec = array()) use ($f, $kind, $dsc, $prefix, $prolog, $…
1383 … (!isset($extra_spec["OP_DATA"]) || isset($dsc["spec"]["OP_DATA"][$extra_spec["OP_DATA"]]))) {
1384 if (skip_extra_spec_function($op1, $op2, $extra_spec)) {
1392 if (isset($extra_spec["SMART_BRANCH"])) {
1396 unset($extra_spec["SMART_BRANCH"]);
1402 if (isset($extra_spec["QUICK_ARG"])) {
1404 unset($extra_spec["QUICK_ARG"]);
1409 if (isset($extra_spec["OBSERVER"]) && $extra_spec["OBSERVER"] == 1) {
1410 if (isset($extra_spec["RETVAL"])) {
1411 unset($extra_spec["RETVAL"]);
1420 … $spec_name = $dsc["op"]."_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($extra_spec);
1587 function extra_spec_name($extra_spec) { argument
1591 if (isset($extra_spec["OP_DATA"])) {
1592 $s .= "_OP_DATA" . $prefix[$extra_spec["OP_DATA"]];
1594 if (isset($extra_spec["RETVAL"])) {
1595 $s .= "_RETVAL_".($extra_spec["RETVAL"] ? "USED" : "UNUSED");
1597 if (isset($extra_spec["QUICK_ARG"])) {
1598 if ($extra_spec["QUICK_ARG"]) {
1602 if (isset($extra_spec["SMART_BRANCH"])) {
1603 if ($extra_spec["SMART_BRANCH"] == 1) {
1605 } else if ($extra_spec["SMART_BRANCH"] == 2) {
1609 if (isset($extra_spec["ISSET"])) {
1610 if ($extra_spec["ISSET"] == 0) {
1616 if (isset($extra_spec["OBSERVER"])) {
1617 if ($extra_spec["OBSERVER"]) {
1624 function extra_spec_flags($extra_spec) { argument
1626 if (isset($extra_spec["OP_DATA"])) {
1629 if (isset($extra_spec["RETVAL"])) {
1632 if (isset($extra_spec["QUICK_ARG"])) {
1635 if (isset($extra_spec["SMART_BRANCH"])) {
1638 if (isset($extra_spec["COMMUTATIVE"])) {
1641 if (isset($extra_spec["ISSET"])) {
1644 if (isset($extra_spec["OBSERVER"])) {
1719 foreach (extra_spec_handler($opcodes[$num]) as $extra_spec) {
1724 …codes[$num]["use"]), $opcodes[$num]["code"], $lineno, $opcodes[$num], $extra_spec, $switch_labels);
1729 foreach (extra_spec_handler($helpers[$num]) as $extra_spec) {
1734 …"], $lineno, $helpers[$num]["inline"], $helpers[$num]["cold"], $helpers[$num]["hot"], $extra_spec);