Lines Matching refs:op2
610 function helper_name($name, $spec, $op1, $op2, $extra_spec) { argument
632 if (!isset($helpers[$name]["op2"][$op2])) {
633 if (($op2 == 'TMP' || $op2 == 'VAR') &&
635 $op2 = "TMPVAR";
636 } else if (($op2 == 'TMP' || $op2 == 'VAR') &&
638 $op2 = "TMPVARCV";
639 } else if ($op2 == 'CV' &&
641 $op2 = "TMPVARCV";
643 $op2 = "ANY";
651 return $name.($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2].$extra;
654 function opcode_name($name, $spec, $op1, $op2, $extra_spec) { argument
680 if (!isset($opcode["op2"][$op2])) {
681 if (($op2 == 'TMP' || $op2 == 'VAR') &&
683 $op2 = "TMPVAR";
684 } else if (($op2 == 'TMP' || $op2 == 'VAR') &&
686 $op2 = "TMPVARCV";
687 } else if ($op2 == 'CV' &&
689 $op2 = "TMPVARCV";
691 $op2 = "ANY";
702 return $name.($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2].$extra;
719 function gen_code($f, $spec, $kind, $code, $op1, $op2, $name, $extra_spec=null) { argument
740 "/OP2_TYPE/" => $op2_type[$op2],
742 "/GET_OP2_ZVAL_PTR\(([^)]*)\)/" => $op2_get_zval_ptr[$op2],
744 "/GET_OP2_ZVAL_PTR_DEREF\(([^)]*)\)/" => $op2_get_zval_ptr_deref[$op2],
746 "/GET_OP2_ZVAL_PTR_UNDEF\(([^)]*)\)/" => $op2_get_zval_ptr_undef[$op2],
748 "/GET_OP2_ZVAL_PTR_PTR\(([^)]*)\)/" => $op2_get_zval_ptr_ptr[$op2],
750 "/GET_OP2_ZVAL_PTR_PTR_UNDEF\(([^)]*)\)/" => $op2_get_zval_ptr_ptr_undef[$op2],
752 "/GET_OP2_OBJ_ZVAL_PTR\(([^)]*)\)/" => $op2_get_obj_zval_ptr[$op2],
754 "/GET_OP2_OBJ_ZVAL_PTR_UNDEF\(([^)]*)\)/" => $op2_get_obj_zval_ptr_undef[$op2],
756 "/GET_OP2_OBJ_ZVAL_PTR_DEREF\(([^)]*)\)/" => $op2_get_obj_zval_ptr_deref[$op2],
758 "/GET_OP2_OBJ_ZVAL_PTR_PTR\(([^)]*)\)/" => $op2_get_obj_zval_ptr_ptr[$op2],
760 "/GET_OP2_OBJ_ZVAL_PTR_PTR_UNDEF\(([^)]*)\)/" => $op2_get_obj_zval_ptr_ptr_undef[$op2],
762 "/FREE_OP2\(\)/" => $op2_free_op[$op2],
764 "/FREE_OP2_IF_VAR\(\)/" => $op2_free_op_if_var[$op2],
766 "/FREE_OP2_VAR_PTR\(\)/" => $op2_free_op_var_ptr[$op2],
767 "/\!ZEND_VM_SPEC/m" => ($op1!="ANY"||$op2!="ANY")?"0":"1",
768 "/ZEND_VM_SPEC/m" => ($op1!="ANY"||$op2!="ANY")?"1":"0",
769 …\1".(($spec && $kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($e…
770 …\1".(($spec && $kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($e…
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 …return "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(" . $ar…
858 …return "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(ZEND_OP…
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 …return "ZEND_VM_TAIL_CALL(" . opcode_name($handler, $spec, $op1, $op2, $extra_spec) . $inline . "_…
890 …return "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(" . $ar…
892 …return "ZEND_VM_TAIL_CALL(" . helper_name($matches[1], $spec, $op1, $op2, $extra_spec) . "(ZEND_OP…
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
960 $op1 == "CONST" && $op2 == "CONST") {
966 $commutative_order[$op1] < $commutative_order[$op2]) {
974 function is_hot_handler($hot, $op1, $op2, $extra_spec) { argument
986 return (($op1 !== 'CONST') || ($op2 !== 'CONST')) ;
988 return (($op1 === 'UNUSED') || ($op1 === 'CV')) && ($op2 === 'CONST');
996 function is_cold_handler($hot, $op1, $op2, $extra_spec) { argument
1004 return ($op1 === 'CONST' && $op2 === 'CONST');
1010 return ($op1 === 'CONST' && $op2 === 'CONST');
1016 function is_inline_hybrid_handler($name, $hot, $op1, $op2, $extra_spec) { argument
1021 function gen_handler($f, $spec, $kind, $name, $op1, $op2, $use, $code, $lineno, $opcode, $extra_spe… argument
1030 if ($spec && skip_extra_spec_function($op1, $op2, $extra_spec)) {
1038 if (($op1 === 'CONST') && ($op2 === 'CONST')) {
1050 if ($op2 === "CONST") {
1068 if ($op1 != "ANY" || $op2 != "ANY") {
1072 $op2 = "ANY";
1085 …$spec_name = $name.($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2].($spec?extra_spec_name($extra_sp…
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 function gen_helper($f, $spec, $kind, $name, $op1, $op2, $param, $code, $lineno, $inline, $cold = f… argument
1168 if ($spec && skip_extra_spec_function($op1, $op2, $extra_spec)) {
1176 …$spec_name = $name.($spec?"_SPEC":"").$prefix[$op1].$prefix[$op2].($spec?extra_spec_name($extra_sp…
1212 gen_code($f, $spec, $kind, $code, $op1, $op2, $name, $extra_spec);
1289 return function($_, $op2) use ($do, $dsc, $op_types) {
1309 $do($op1, $op2);
1317 foreach($op_types as $op2) {
1318 if ($op2 != "ANY") {
1319 if (!isset($dsc["op2"][$op2])) {
1320 if ($op2 == "TMP" || $op2 == "VAR") {
1322 $op2 = "TMPVAR";
1324 $op2 = "TMPVARCV";
1326 $op2 = "ANY";
1328 } else if ($op2 == "CV" && isset($dsc["op2"]["TMPVARCV"])) {
1329 $op2 = "TMPVARCV";
1332 $op2 = "ANY";
1335 $do($op1, $op2);
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, $…
1380 isset($dsc["op2"][$op2]) &&
1382 if (skip_extra_spec_function($op1, $op2, $extra_spec)) {
1393 if (($op1 === 'CONST') && ($op2 === 'CONST')) {
1401 if ($op2 === "CONST") {
1411 if ($op1 != "ANY" || $op2 != "ANY") {
1413 $op2 = "ANY";
1418 … $spec_name = $dsc["op"]."_SPEC".$prefix[$op1].$prefix[$op2].extra_spec_name($extra_spec);
1712 foreach($op2t as $op2) {
1720 isset($opcodes[$num]["op2"][$op2])) {
1722 …gen_handler($f, 1, $kind, $opcodes[$num]["op"], $op1, $op2, isset($opcodes[$num]["use"]), $opcodes…
1730 isset($helpers[$num]["op2"][$op2])) {
1732 …gen_helper($f, 1, $kind, $num, $op1, $op2, $helpers[$num]["param"], $helpers[$num]["code"], $linen…
2403 $op2 = parse_operand_spec($def, $lineno, $m[5], $flags2);
2421 … $opcodes[$code] = array("op"=>$op,"op1"=>$op1,"op2"=>$op2,"code"=>"","flags"=>$flags,"hot"=>$hot);
2462 $op2 = parse_operand_spec($def, $lineno, $m[6], $flags2);
2472 …$opcodes[$code] = array("op"=>$op,"op1"=>$op1,"op2"=>$op2,"code"=>"","flags"=>$flags,"hot"=>$hot,"…
2502 $op2 = parse_operand_spec($def, $lineno, $m[4], $flags2);
2520 …$helpers[$helper] = array("op1"=>$op1,"op2"=>$op2,"param"=>$param,"code"=>"","inline"=>$inline,"co…