Lines Matching refs:extra_spec

627 function helper_name($name, $spec, $op1, $op2, $extra_spec) {  argument
664 if (isset($extra_spec, $helpers[$name]["spec"])) {
665 $extra = extra_spec_name(array_intersect_key($extra_spec, $helpers[$name]["spec"]));
730 function gen_code($f, $spec, $kind, $export, $code, $op1, $op2, $name, $extra_spec=null) { argument
843 …$kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($extra_spec)):""),
844 …$kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($extra_spec)):""),
849 $op_data_type[isset($extra_spec['OP_DATA']) ? $extra_spec['OP_DATA'] : "ANY"],
850 $op_data_get_zval_ptr[isset($extra_spec['OP_DATA']) ? $extra_spec['OP_DATA'] : "ANY"],
851 $op_data_get_zval_ptr_deref[isset($extra_spec['OP_DATA']) ? $extra_spec['OP_DATA'] : "ANY"],
852 $op_data_free_op[isset($extra_spec['OP_DATA']) ? $extra_spec['OP_DATA'] : "ANY"],
853 $op_data_free_unfetched[isset($extra_spec['OP_DATA']) ? $extra_spec['OP_DATA'] : "ANY"],
854 isset($extra_spec['RETVAL']) ? $extra_spec['RETVAL'] : "RETURN_VALUE_USED(opline)",
855 isset($extra_spec['QUICK_ARG']) ? $extra_spec['QUICK_ARG'] : "arg_num <= MAX_ARG_FLAG_NUM",
856 isset($extra_spec['SMART_BRANCH']) ?
857 ($extra_spec['SMART_BRANCH'] == 1 ?
859 : ($extra_spec['SMART_BRANCH'] == 2 ?
862 isset($extra_spec['DIM_OBJ']) ?
863 ($extra_spec['DIM_OBJ'] == 0 ? "1" : "0")
865 isset($extra_spec['DIM_OBJ']) ?
866 ($extra_spec['DIM_OBJ'] == 1 ? "1" : "0")
868 isset($extra_spec['DIM_OBJ']) ?
869 ($extra_spec['DIM_OBJ'] == 2 ? "1" : "0")
871 isset($extra_spec['ISSET']) ?
872 ($extra_spec['ISSET'] == 0 ? "0" : "1")
874 isset($extra_spec['ISSET']) ?
875 ($extra_spec['ISSET'] == 0 ? "\\0" : "opline->extended_value")
892 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec) {
900 if (is_hot_handler($opcode["hot"], $op1, $op2, $extra_spec)) {
910 …return "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(" . $ar…
913 return "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "_LABEL";
915 …return "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(ZEND_OP…
927 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec) {
937 …return "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(" . $ar…
939 …return "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(ZEND_OP…
951 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec) {
961 return $args . "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
963 return "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
975 function($matches) use ($spec, $prefix, $op1, $op2, $extra_spec) {
985 return $args . "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
987 return "goto " . helper_name($matches[1], $spec, $op1, $op2, $extra_spec);
1041 function skip_extra_spec_function($op1, $op2, $extra_spec) { argument
1044 if (isset($extra_spec["NO_CONST_CONST"]) &&
1050 if (isset($extra_spec["COMMUTATIVE"]) &&
1056 if (isset($extra_spec["DIM_OBJ"]) &&
1057 (($op2 == "UNUSED" && $extra_spec["DIM_OBJ"] != 1) ||
1058 ($op1 == "UNUSED" && $extra_spec["DIM_OBJ"] != 2))) {
1066 function is_hot_handler($hot, $op1, $op2, $extra_spec) { argument
1074 return !empty($extra_spec["QUICK_ARG"]);
1080 function is_cold_handler($hot, $op1, $op2, $extra_spec) { argument
1096 function is_inline_hybrid_handler($name, $hot, $op1, $op2, $extra_spec) { argument
1102 …r($f, $spec, $kind, $name, $op1, $op2, $use, $code, $lineno, $opcode, $extra_spec = null, &$switch… argument
1105 if ($spec && skip_extra_spec_function($op1, $op2, $extra_spec)) {
1114 …ame = $name.($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2].($spec?extra_spec_name($extra_spec):"");
1117 if (is_inline_hybrid_handler($name, $opcode["hot"], $op1, $op2, $extra_spec)) {
1119 gen_code($out, $spec, $kind, 0, $code, $op1, $op2, $name, $extra_spec);
1140 …& ZEND_VM_KIND == ZEND_VM_KIND_HYBRID && is_hot_handler($opcode["hot"], $op1, $op2, $extra_spec)) {
1142 } else if ($opcode["hot"] && is_cold_handler($opcode["hot"], $op1, $op2, $extra_spec)) {
1169 gen_code($f, $spec, $kind, 0, $code, $op1, $op2, $name, $extra_spec);
1173 …me, $op1, $op2, $param, $code, $lineno, $inline, $cold = false, $hot = false, $extra_spec = null) { argument
1180 if ($spec && skip_extra_spec_function($op1, $op2, $extra_spec)) {
1188 …ame = $name.($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2].($spec?extra_spec_name($extra_spec):"");
1224 gen_code($f, $spec, $kind, 0, $code, $op1, $op2, $name, $extra_spec);
1349 return function($op1, $op2, $extra_spec = array()) use ($do, $dsc, $op_types) {
1370 $do($op1, $op2, array("OP_DATA" => $op_data) + $extra_spec);
1376 return function($op1, $op2, $extra_spec = array()) use ($do, $spec, $dsc) {
1378 $do($op1, $op2, array($spec => $val) + $extra_spec);
1382 …$generate = function ($op1, $op2, $extra_spec = array()) use ($f, $kind, $dsc, $prefix, $prolog, $…
1389 … (!isset($extra_spec["OP_DATA"]) || isset($dsc["spec"]["OP_DATA"][$extra_spec["OP_DATA"]]))) {
1390 if (skip_extra_spec_function($op1, $op2, $extra_spec)) {
1398 $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["DIM_OBJ"])) {
1577 if ($extra_spec["DIM_OBJ"] == 1) {
1579 } else if ($extra_spec["DIM_OBJ"] == 2) {
1583 if (isset($extra_spec["ISSET"])) {
1584 if ($extra_spec["ISSET"] == 0) {
1593 function extra_spec_flags($extra_spec) { argument
1595 if (isset($extra_spec["OP_DATA"])) {
1598 if (isset($extra_spec["RETVAL"])) {
1601 if (isset($extra_spec["QUICK_ARG"])) {
1604 if (isset($extra_spec["SMART_BRANCH"])) {
1607 if (isset($extra_spec["DIM_OBJ"])) {
1610 if (isset($extra_spec["COMMUTATIVE"])) {
1613 if (isset($extra_spec["ISSET"])) {
1694 foreach (extra_spec_handler($opcodes[$num]) as $extra_spec) {
1699 …codes[$num]["use"]), $opcodes[$num]["code"], $lineno, $opcodes[$num], $extra_spec, $switch_labels);
1704 foreach (extra_spec_handler($helpers[$num]) as $extra_spec) {
1709 …"], $lineno, $helpers[$num]["inline"], $helpers[$num]["cold"], $helpers[$num]["hot"], $extra_spec);