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"]));
654 function opcode_name($name, $spec, $op1, $op2, $extra_spec) { argument
698 if (isset($extra_spec, $opcode["spec"])) {
699 $extra = extra_spec_name(array_intersect_key($extra_spec, $opcode["spec"]));
719 function gen_code($f, $spec, $kind, $code, $op1, $op2, $name, $extra_spec=null) { argument
769 …$kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($extra_spec)):""),
770 …$kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($extra_spec)):""),
775 … "/OP_DATA_TYPE/" => $op_data_type[isset($extra_spec['OP_DATA']) ? $extra_spec['OP_DATA'] : "ANY"],
776 …ATA_ZVAL_PTR\(([^)]*)\)/" => $op_data_get_zval_ptr[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
777 …_UNDEF\(([^)]*)\)/" => $op_data_get_zval_ptr_undef[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
778 …_DEREF\(([^)]*)\)/" => $op_data_get_zval_ptr_deref[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
779 …_PTR_PTR\(([^)]*)\)/" => $op_data_get_zval_ptr_ptr[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
780 …"/FREE_OP_DATA\(\)/" => $op_data_free_op[isset($extra_spec['OP_DATA']) ? $extra_spec['OP_DATA'] : …
781 …_OP_DATA_VAR_PTR\(\)/" => $op_data_free_op_var_ptr[isset($extra_spec['OP_DATA']) ? $extra_spec['OP…
782 …"/RETURN_VALUE_USED\(opline\)/" => isset($extra_spec['RETVAL']) ? $extra_spec['RETVAL'] : "RETURN_…
783 …"/arg_num <= MAX_ARG_FLAG_NUM/" => isset($extra_spec['QUICK_ARG']) ? $extra_spec['QUICK_ARG'] : "a…
784 … "/ZEND_VM_SMART_BRANCH\(\s*([^,)]*)\s*,\s*([^)]*)\s*\)/" => isset($extra_spec['SMART_BRANCH']) ?
785 ($extra_spec['SMART_BRANCH'] == 1 ?
787 : ($extra_spec['SMART_BRANCH'] == 2 ?
790 "/ZEND_VM_SMART_BRANCH_TRUE\(\s*\)/" => isset($extra_spec['SMART_BRANCH']) ?
791 ($extra_spec['SMART_BRANCH'] == 1 ?
793 : ($extra_spec['SMART_BRANCH'] == 2 ?
796 "/ZEND_VM_SMART_BRANCH_FALSE\(\s*\)/" => isset($extra_spec['SMART_BRANCH']) ?
797 ($extra_spec['SMART_BRANCH'] == 1 ?
799 : ($extra_spec['SMART_BRANCH'] == 2 ?
802 "/opline->extended_value\s*&\s*ZEND_ISEMPTY/" => isset($extra_spec['ISSET']) ?
803 ($extra_spec['ISSET'] == 0 ? "0" : "1")
805 "/opline->extended_value\s*&\s*~\s*ZEND_ISEMPTY/" => isset($extra_spec['ISSET']) ?
806 ($extra_spec['ISSET'] == 0 ? "\\0" : "opline->extended_value")
808 …"/ZEND_OBSERVER_ENABLED/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == 1 ? "1" …
809 …"/ZEND_OBSERVER_USE_RETVAL/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == 1 ? "…
810 …"/ZEND_OBSERVER_SET_RETVAL\(\)/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == 1…
811 …"/ZEND_OBSERVER_FREE_RETVAL\(\)/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == …
812 …"/ZEND_OBSERVER_SAVE_OPLINE\(\)/" => isset($extra_spec['OBSERVER']) && $extra_spec['OBSERVER'] == …
813 "/ZEND_OBSERVER_FCALL_BEGIN\(\s*(.*)\s*\)/" => isset($extra_spec['OBSERVER']) ?
814 ($extra_spec['OBSERVER'] == 0 ? "" : "zend_observer_fcall_begin(\\1)")
816 "/ZEND_OBSERVER_FCALL_END\(\s*([^,]*)\s*,\s*(.*)\s*\)/" => isset($extra_spec['OBSERVER']) ?
817 ($extra_spec['OBSERVER'] == 0 ? "" : "zend_observer_fcall_end(\\1, \\2)")
834 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec) {
842 … return "goto " . opcode_name($name, $spec, $op1, $op2, $extra_spec) . "_LABEL";
849 … return $args . "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "_LABEL";
851 … return "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "_LABEL";
856 …rn "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(" . $args. …
858 …rn "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(ZEND_OPCODE…
870 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec, $name) {
881 is_hot_handler($opcode["hot"], $op1, $op2, $extra_spec) &&
882 … is_hot_handler($opcodes[$opnames[$name]]["hot"], $op1, $op2, $extra_spec) ?
884 …eturn "ZEND_VM_TAIL_CALL(" . opcode_name($handler, $spec, $op1, $op2, $extra_spec) . $inline . "_H…
890 …rn "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(" . $args. …
892 …rn "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(ZEND_OPCODE…
904 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec) {
908 … return "goto " . opcode_name($matches[1], $spec, $op1, $op2, $extra_spec) . "_LABEL";
914 … return $args . "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
916 return "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
928 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec) {
932 … return "goto " . opcode_name($matches[1], $spec, $op1, $op2, $extra_spec) . "_LABEL";
938 … return $args . "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
940 return "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
956 function skip_extra_spec_function($op1, $op2, $extra_spec) { argument
959 if (isset($extra_spec["NO_CONST_CONST"]) &&
965 if (isset($extra_spec["COMMUTATIVE"]) &&
974 function is_hot_handler($hot, $op1, $op2, $extra_spec) { argument
975 if (isset($extra_spec["SMART_BRANCH"]) && $extra_spec["SMART_BRANCH"] == 0) {
978 if (isset($extra_spec["OBSERVER"]) && $extra_spec["OBSERVER"] == 1) {
990 return !empty($extra_spec["QUICK_ARG"]);
996 function is_cold_handler($hot, $op1, $op2, $extra_spec) { argument
999 } else if (isset($extra_spec["OBSERVER"]) && $extra_spec["OBSERVER"] == 1) {
1016 function is_inline_hybrid_handler($name, $hot, $op1, $op2, $extra_spec) { argument
1021 …r($f, $spec, $kind, $name, $op1, $op2, $use, $code, $lineno, $opcode, $extra_spec = null, &$switch… argument
1030 if ($spec && skip_extra_spec_function($op1, $op2, $extra_spec)) {
1035 if (isset($extra_spec["SMART_BRANCH"])) {
1039 if ($extra_spec["SMART_BRANCH"] == 0) {
1040 unset($extra_spec["SMART_BRANCH"]);
1049 if (isset($extra_spec["QUICK_ARG"])) {
1051 if ($extra_spec["QUICK_ARG"] == 0) {
1052 unset($extra_spec["QUICK_ARG"]);
1060 if (isset($extra_spec["OBSERVER"]) && $extra_spec["OBSERVER"] == 1) {
1061 if (isset($extra_spec["RETVAL"])) {
1062 if ($extra_spec["RETVAL"] == 0) {
1063 unset($extra_spec["RETVAL"]);
1085 …ame = $name.($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2].($spec?extra_spec_name($extra_spec):"");
1088 if (is_inline_hybrid_handler($name, $opcode["hot"], $op1, $op2, $extra_spec)) {
1090 gen_code($out, $spec, $kind, $code, $op1, $op2, $name, $extra_spec);
1100 is_hot_handler($opcode["hot"], $op1, $op2, $extra_spec) ?
1115 …& ZEND_VM_KIND == ZEND_VM_KIND_HYBRID && is_hot_handler($opcode["hot"], $op1, $op2, $extra_spec)) {
1122 } else if ($opcode["hot"] && is_cold_handler($opcode["hot"], $op1, $op2, $extra_spec)) {
1149 gen_code($f, $spec, $kind, $code, $op1, $op2, $name, $extra_spec);
1161 …me, $op1, $op2, $param, $code, $lineno, $inline, $cold = false, $hot = false, $extra_spec = null) { argument
1168 if ($spec && skip_extra_spec_function($op1, $op2, $extra_spec)) {
1176 …ame = $name.($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2].($spec?extra_spec_name($extra_spec):"");
1212 gen_code($f, $spec, $kind, $code, $op1, $op2, $name, $extra_spec);
1341 return function($op1, $op2, $extra_spec = array()) use ($do, $dsc, $op_types) {
1362 $do($op1, $op2, array("OP_DATA" => $op_data) + $extra_spec);
1368 return function($op1, $op2, $extra_spec = array()) use ($do, $spec, $dsc) {
1370 $do($op1, $op2, array($spec => $val) + $extra_spec);
1374 …$generate = function ($op1, $op2, $extra_spec = array()) use ($f, $kind, $dsc, $prefix, $prolog, $…
1381 … (!isset($extra_spec["OP_DATA"]) || isset($dsc["spec"]["OP_DATA"][$extra_spec["OP_DATA"]]))) {
1382 if (skip_extra_spec_function($op1, $op2, $extra_spec)) {
1390 if (isset($extra_spec["SMART_BRANCH"])) {
1394 unset($extra_spec["SMART_BRANCH"]);
1400 if (isset($extra_spec["QUICK_ARG"])) {
1402 unset($extra_spec["QUICK_ARG"]);
1407 if (isset($extra_spec["OBSERVER"]) && $extra_spec["OBSERVER"] == 1) {
1408 if (isset($extra_spec["RETVAL"])) {
1409 unset($extra_spec["RETVAL"]);
1418 … $spec_name = $dsc["op"]."_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($extra_spec);
1585 function extra_spec_name($extra_spec) { argument
1589 if (isset($extra_spec["OP_DATA"])) {
1590 $s .= "_OP_DATA" . $prefix[$extra_spec["OP_DATA"]];
1592 if (isset($extra_spec["RETVAL"])) {
1593 $s .= "_RETVAL_".($extra_spec["RETVAL"] ? "USED" : "UNUSED");
1595 if (isset($extra_spec["QUICK_ARG"])) {
1596 if ($extra_spec["QUICK_ARG"]) {
1600 if (isset($extra_spec["SMART_BRANCH"])) {
1601 if ($extra_spec["SMART_BRANCH"] == 1) {
1603 } else if ($extra_spec["SMART_BRANCH"] == 2) {
1607 if (isset($extra_spec["ISSET"])) {
1608 if ($extra_spec["ISSET"] == 0) {
1614 if (isset($extra_spec["OBSERVER"])) {
1615 if ($extra_spec["OBSERVER"]) {
1622 function extra_spec_flags($extra_spec) { argument
1624 if (isset($extra_spec["OP_DATA"])) {
1627 if (isset($extra_spec["RETVAL"])) {
1630 if (isset($extra_spec["QUICK_ARG"])) {
1633 if (isset($extra_spec["SMART_BRANCH"])) {
1636 if (isset($extra_spec["COMMUTATIVE"])) {
1639 if (isset($extra_spec["ISSET"])) {
1642 if (isset($extra_spec["OBSERVER"])) {
1717 foreach (extra_spec_handler($opcodes[$num]) as $extra_spec) {
1722 …codes[$num]["use"]), $opcodes[$num]["code"], $lineno, $opcodes[$num], $extra_spec, $switch_labels);
1727 foreach (extra_spec_handler($helpers[$num]) as $extra_spec) {
1732 …"], $lineno, $helpers[$num]["inline"], $helpers[$num]["cold"], $helpers[$num]["hot"], $extra_spec);