php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_vm_gen.php File Reference

Go to the source code of this file.

Functions

 out ($f, $s)
 
 out_line ($f)
 
 is_hot_helper ($name)
 
 helper_name ($name, $spec, $op1, $op2, $extra_spec)
 
 opcode_name ($name, $spec, $op1, $op2, $extra_spec)
 
 format_condition ($condition)
 
 gen_code ($f, $spec, $kind, $code, $op1, $op2, $name, $extra_spec=null)
 
 skip_extra_spec_function ($op1, $op2, $extra_spec)
 
 is_hot_handler ($hot, $op1, $op2, $extra_spec)
 
 is_cold_handler ($hot, $op1, $op2, $extra_spec)
 
 is_inline_hybrid_handler ($name, $hot, $op1, $op2, $extra_spec)
 
 gen_handler ($f, $spec, $kind, $name, $op1, $op2, $use, $code, $lineno, $opcode, $extra_spec=null, &$switch_labels=array())
 
 gen_helper ($f, $spec, $kind, $name, $op1, $op2, $param, $code, $lineno, $inline, $cold=false, $hot=false, $extra_spec=null)
 
 gen_null_label ($f, $kind, $prolog)
 
 gen_labels ($f, $spec, $kind, $prolog, &$specs, $switch_labels=array())
 
 gen_specs ($f, $prolog, $specs)
 
 gen_null_handler ($f)
 
 extra_spec_name ($extra_spec)
 
 extra_spec_flags ($extra_spec)
 
 extra_spec_handler ($dsc)
 
 read_order_file ($fn)
 
 gen_executor_code ($f, $spec, $kind, $prolog, &$switch_labels=array())
 
 skip_blanks ($f, $prolog, $epilog)
 
 gen_executor ($f, $skl, $spec, $kind, $executor_name, $initializer_name)
 
 parse_operand_spec ($def, $lineno, $str, &$flags)
 
 parse_ext_spec ($def, $lineno, $str)
 
 parse_spec_rules ($def, $lineno, $str)
 
 gen_vm_opcodes_header (array $opcodes, int $max_opcode, int $max_opcode_len, array $vm_op_flags)
 
 gen_vm ($def, $skel)
 
 write_file_if_changed (string $filename, string $contents)
 
 usage ()
 

Variables

const HEADER_TEXT =
 
const ZEND_VM_KIND_CALL = 1
 
const ZEND_VM_KIND_SWITCH = 2
 
const ZEND_VM_KIND_GOTO = 3
 
const ZEND_VM_KIND_HYBRID = 4
 
 $vm_op_flags
 
foreach($vm_op_flags as $name=> $val$vm_op_decode
 
 $vm_ext_decode
 
 $vm_kind_name
 
 $op_types
 
 $op_types_ex
 
 $prefix
 
 $commutative_order
 
 $op1_type
 
 $op2_type
 
 $op1_get_zval_ptr
 
 $op2_get_zval_ptr
 
 $op1_get_zval_ptr_ptr
 
 $op2_get_zval_ptr_ptr
 
 $op1_get_zval_ptr_deref
 
 $op2_get_zval_ptr_deref
 
 $op1_get_zval_ptr_undef
 
 $op2_get_zval_ptr_undef
 
 $op1_get_zval_ptr_ptr_undef
 
 $op2_get_zval_ptr_ptr_undef
 
 $op1_get_obj_zval_ptr
 
 $op2_get_obj_zval_ptr
 
 $op1_get_obj_zval_ptr_undef
 
 $op2_get_obj_zval_ptr_undef
 
 $op1_get_obj_zval_ptr_deref
 
 $op2_get_obj_zval_ptr_deref
 
 $op1_get_obj_zval_ptr_ptr
 
 $op2_get_obj_zval_ptr_ptr
 
 $op1_get_obj_zval_ptr_ptr_undef
 
 $op2_get_obj_zval_ptr_ptr_undef
 
 $op1_free_op
 
 $op2_free_op
 
 $op1_free_op_if_var
 
 $op2_free_op_if_var
 
 $op_data_type
 
 $op_data_get_zval_ptr
 
 $op_data_get_zval_ptr_undef
 
 $op_data_get_zval_ptr_deref
 
 $op_data_get_zval_ptr_ptr
 
 $op_data_free_op
 
 $list = array()
 
 $opcodes = array()
 
 $helpers = array()
 
 $params = array()
 
 $opnames = array()
 
 $line_no = 1
 
 $used_extra_spec = array()
 

Function Documentation

◆ extra_spec_flags()

extra_spec_flags ( $extra_spec)

Definition at line 1591 of file zend_vm_gen.php.

◆ extra_spec_handler()

extra_spec_handler ( $dsc)

Definition at line 1617 of file zend_vm_gen.php.

◆ extra_spec_name()

extra_spec_name ( $extra_spec)

Definition at line 1554 of file zend_vm_gen.php.

◆ format_condition()

format_condition ( $condition)

Definition at line 675 of file zend_vm_gen.php.

◆ gen_code()

gen_code ( $f,
$spec,
$kind,
$code,
$op1,
$op2,
$name,
$extra_spec = null )

Definition at line 688 of file zend_vm_gen.php.

◆ gen_executor()

gen_executor ( $f,
$skl,
$spec,
$kind,
$executor_name,
$initializer_name )

Definition at line 1786 of file zend_vm_gen.php.

◆ gen_executor_code()

gen_executor_code ( $f,
$spec,
$kind,
$prolog,
& $switch_labels = array() )

Definition at line 1671 of file zend_vm_gen.php.

◆ gen_handler()

gen_handler ( $f,
$spec,
$kind,
$name,
$op1,
$op2,
$use,
$code,
$lineno,
$opcode,
$extra_spec = null,
& $switch_labels = array() )

Definition at line 986 of file zend_vm_gen.php.

◆ gen_helper()

gen_helper ( $f,
$spec,
$kind,
$name,
$op1,
$op2,
$param,
$code,
$lineno,
$inline,
$cold = false,
$hot = false,
$extra_spec = null )

Definition at line 1128 of file zend_vm_gen.php.

◆ gen_labels()

gen_labels ( $f,
$spec,
$kind,
$prolog,
& $specs,
$switch_labels = array() )

Definition at line 1198 of file zend_vm_gen.php.

◆ gen_null_handler()

gen_null_handler ( $f)

Definition at line 1536 of file zend_vm_gen.php.

◆ gen_null_label()

gen_null_label ( $f,
$kind,
$prolog )

Definition at line 1183 of file zend_vm_gen.php.

◆ gen_specs()

gen_specs ( $f,
$prolog,
$specs )

Definition at line 1520 of file zend_vm_gen.php.

◆ gen_vm()

gen_vm ( $def,
$skel )

Definition at line 2390 of file zend_vm_gen.php.

◆ gen_vm_opcodes_header()

gen_vm_opcodes_header ( array $opcodes,
int $max_opcode,
int $max_opcode_len,
array $vm_op_flags )

Definition at line 2333 of file zend_vm_gen.php.

◆ helper_name()

helper_name ( $name,
$spec,
$op1,
$op2,
$extra_spec )

Definition at line 577 of file zend_vm_gen.php.

◆ is_cold_handler()

is_cold_handler ( $hot,
$op1,
$op2,
$extra_spec )

Definition at line 961 of file zend_vm_gen.php.

◆ is_hot_handler()

is_hot_handler ( $hot,
$op1,
$op2,
$extra_spec )

Definition at line 939 of file zend_vm_gen.php.

◆ is_hot_helper()

is_hot_helper ( $name)

Definition at line 566 of file zend_vm_gen.php.

◆ is_inline_hybrid_handler()

is_inline_hybrid_handler ( $name,
$hot,
$op1,
$op2,
$extra_spec )

Definition at line 981 of file zend_vm_gen.php.

◆ opcode_name()

opcode_name ( $name,
$spec,
$op1,
$op2,
$extra_spec )

Definition at line 622 of file zend_vm_gen.php.

◆ out()

out ( $f,
$s )

Definition at line 551 of file zend_vm_gen.php.

◆ out_line()

out_line ( $f)

Definition at line 559 of file zend_vm_gen.php.

◆ parse_ext_spec()

parse_ext_spec ( $def,
$lineno,
$str )

Definition at line 2268 of file zend_vm_gen.php.

◆ parse_operand_spec()

parse_operand_spec ( $def,
$lineno,
$str,
& $flags )

Definition at line 2247 of file zend_vm_gen.php.

◆ parse_spec_rules()

parse_spec_rules ( $def,
$lineno,
$str )

Definition at line 2283 of file zend_vm_gen.php.

◆ read_order_file()

read_order_file ( $fn)

Definition at line 1654 of file zend_vm_gen.php.

◆ skip_blanks()

skip_blanks ( $f,
$prolog,
$epilog )

Definition at line 1779 of file zend_vm_gen.php.

◆ skip_extra_spec_function()

skip_extra_spec_function ( $op1,
$op2,
$extra_spec )

Definition at line 921 of file zend_vm_gen.php.

◆ usage()

usage ( )

Definition at line 3039 of file zend_vm_gen.php.

◆ write_file_if_changed()

write_file_if_changed ( string $filename,
string $contents )

Definition at line 3027 of file zend_vm_gen.php.

Variable Documentation

◆ $commutative_order

$commutative_order
Initial value:
= array(
"ANY" => 0,
"TMP" => 1,
"VAR" => 2,
"CONST" => 0,
"UNUSED" => 0,
"CV" => 4,
"TMPVAR" => 2,
"TMPVARCV" => 4,
)

Definition at line 178 of file zend_vm_gen.php.

◆ $helpers

$helpers = array()

Definition at line 543 of file zend_vm_gen.php.

◆ $line_no

$line_no = 1

Definition at line 546 of file zend_vm_gen.php.

◆ $list

$list = array()

Definition at line 541 of file zend_vm_gen.php.

◆ $op1_free_op

$op1_free_op
Initial value:
= array(
"ANY" => "FREE_OP(opline->op1_type, opline->op1.var)",
"TMP" => "zval_ptr_dtor_nogc(EX_VAR(opline->op1.var))",
"VAR" => "zval_ptr_dtor_nogc(EX_VAR(opline->op1.var))",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
"TMPVAR" => "zval_ptr_dtor_nogc(EX_VAR(opline->op1.var))",
"TMPVARCV" => "FREE_OP(opline->op1_type, opline->op1.var)",
)

Definition at line 431 of file zend_vm_gen.php.

◆ $op1_free_op_if_var

$op1_free_op_if_var
Initial value:
= array(
"ANY" => "if (opline->op1_type == IS_VAR) {zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));}",
"TMP" => "",
"VAR" => "zval_ptr_dtor_nogc(EX_VAR(opline->op1.var))",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 453 of file zend_vm_gen.php.

◆ $op1_get_obj_zval_ptr

$op1_get_obj_zval_ptr
Initial value:
= array(
"ANY" => "get_obj_zval_ptr(opline->op1_type, opline->op1, \\1)",
"TMP" => "_get_zval_ptr_tmp(opline->op1.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var(opline->op1.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT(opline, opline->op1)",
"UNUSED" => "&EX(This)",
"CV" => "_get_zval_ptr_cv_\\1(opline->op1.var EXECUTE_DATA_CC)",
"TMPVAR" => "_get_zval_ptr_var(opline->op1.var EXECUTE_DATA_CC)",
"TMPVARCV" => "???",
)

Definition at line 321 of file zend_vm_gen.php.

◆ $op1_get_obj_zval_ptr_deref

$op1_get_obj_zval_ptr_deref
Initial value:
= array(
"ANY" => "get_obj_zval_ptr(opline->op1_type, opline->op1, \\1)",
"TMP" => "_get_zval_ptr_tmp(opline->op1.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var_deref(opline->op1.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT(opline, opline->op1)",
"UNUSED" => "&EX(This)",
"CV" => "_get_zval_ptr_cv_deref_\\1(opline->op1.var EXECUTE_DATA_CC)",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 365 of file zend_vm_gen.php.

◆ $op1_get_obj_zval_ptr_ptr

$op1_get_obj_zval_ptr_ptr
Initial value:
= array(
"ANY" => "get_obj_zval_ptr_ptr(opline->op1_type, opline->op1, \\1)",
"TMP" => "zend_get_bad_ptr()",
"VAR" => "_get_zval_ptr_ptr_var(opline->op1.var EXECUTE_DATA_CC)",
"CONST" => "zend_get_bad_ptr()",
"UNUSED" => "&EX(This)",
"CV" => "_get_zval_ptr_cv_\\1(opline->op1.var EXECUTE_DATA_CC)",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 387 of file zend_vm_gen.php.

◆ $op1_get_obj_zval_ptr_ptr_undef

$op1_get_obj_zval_ptr_ptr_undef
Initial value:
= array(
"ANY" => "get_obj_zval_ptr_ptr(opline->op1_type, opline->op1, \\1)",
"TMP" => "zend_get_bad_ptr()",
"VAR" => "_get_zval_ptr_ptr_var(opline->op1.var EXECUTE_DATA_CC)",
"CONST" => "zend_get_bad_ptr()",
"UNUSED" => "&EX(This)",
"CV" => "EX_VAR(opline->op1.var)",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 409 of file zend_vm_gen.php.

◆ $op1_get_obj_zval_ptr_undef

$op1_get_obj_zval_ptr_undef
Initial value:
= array(
"ANY" => "get_obj_zval_ptr_undef(opline->op1_type, opline->op1, \\1)",
"TMP" => "_get_zval_ptr_tmp(opline->op1.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var(opline->op1.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT(opline, opline->op1)",
"UNUSED" => "&EX(This)",
"CV" => "EX_VAR(opline->op1.var)",
"TMPVAR" => "_get_zval_ptr_var(opline->op1.var EXECUTE_DATA_CC)",
"TMPVARCV" => "EX_VAR(opline->op1.var)",
)

Definition at line 343 of file zend_vm_gen.php.

◆ $op1_get_zval_ptr

$op1_get_zval_ptr
Initial value:
= array(
"ANY" => "get_zval_ptr(opline->op1_type, opline->op1, \\1)",
"TMP" => "_get_zval_ptr_tmp(opline->op1.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var(opline->op1.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT(opline, opline->op1)",
"UNUSED" => "NULL",
"CV" => "_get_zval_ptr_cv_\\1(opline->op1.var EXECUTE_DATA_CC)",
"TMPVAR" => "_get_zval_ptr_var(opline->op1.var EXECUTE_DATA_CC)",
"TMPVARCV" => "???",
)

Definition at line 211 of file zend_vm_gen.php.

◆ $op1_get_zval_ptr_deref

$op1_get_zval_ptr_deref
Initial value:
= array(
"ANY" => "get_zval_ptr_deref(opline->op1_type, opline->op1, \\1)",
"TMP" => "_get_zval_ptr_tmp(opline->op1.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var_deref(opline->op1.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT(opline, opline->op1)",
"UNUSED" => "NULL",
"CV" => "_get_zval_ptr_cv_deref_\\1(opline->op1.var EXECUTE_DATA_CC)",
"TMPVAR" => "???",
"TMPVARCV" => "_get_zval_ptr_tmpvarcv(opline->op1_type, opline->op1, \\1 EXECUTE_DATA_CC)",
)

Definition at line 255 of file zend_vm_gen.php.

◆ $op1_get_zval_ptr_ptr

$op1_get_zval_ptr_ptr
Initial value:
= array(
"ANY" => "get_zval_ptr_ptr(opline->op1_type, opline->op1, \\1)",
"TMP" => "zend_get_bad_ptr()",
"VAR" => "_get_zval_ptr_ptr_var(opline->op1.var EXECUTE_DATA_CC)",
"CONST" => "zend_get_bad_ptr()",
"UNUSED" => "NULL",
"CV" => "_get_zval_ptr_cv_\\1(opline->op1.var EXECUTE_DATA_CC)",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 233 of file zend_vm_gen.php.

◆ $op1_get_zval_ptr_ptr_undef

$op1_get_zval_ptr_ptr_undef
Initial value:
= array(
"ANY" => "get_zval_ptr_ptr_undef(opline->op1_type, opline->op1, \\1)",
"TMP" => "zend_get_bad_ptr()",
"VAR" => "_get_zval_ptr_ptr_var(opline->op1.var EXECUTE_DATA_CC)",
"CONST" => "zend_get_bad_ptr()",
"UNUSED" => "NULL",
"CV" => "EX_VAR(opline->op1.var)",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 299 of file zend_vm_gen.php.

◆ $op1_get_zval_ptr_undef

$op1_get_zval_ptr_undef
Initial value:
= array(
"ANY" => "get_zval_ptr_undef(opline->op1_type, opline->op1, \\1)",
"TMP" => "_get_zval_ptr_tmp(opline->op1.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var(opline->op1.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT(opline, opline->op1)",
"UNUSED" => "NULL",
"CV" => "EX_VAR(opline->op1.var)",
"TMPVAR" => "_get_zval_ptr_var(opline->op1.var EXECUTE_DATA_CC)",
"TMPVARCV" => "EX_VAR(opline->op1.var)",
)

Definition at line 277 of file zend_vm_gen.php.

◆ $op1_type

$op1_type
Initial value:
= array(
"ANY" => "opline->op1_type",
"TMP" => "IS_TMP_VAR",
"VAR" => "IS_VAR",
"CONST" => "IS_CONST",
"UNUSED" => "IS_UNUSED",
"CV" => "IS_CV",
"TMPVAR" => "(IS_TMP_VAR|IS_VAR)",
"TMPVARCV" => "(IS_TMP_VAR|IS_VAR|IS_CV)",
)

Definition at line 189 of file zend_vm_gen.php.

◆ $op2_free_op

$op2_free_op
Initial value:
= array(
"ANY" => "FREE_OP(opline->op2_type, opline->op2.var)",
"TMP" => "zval_ptr_dtor_nogc(EX_VAR(opline->op2.var))",
"VAR" => "zval_ptr_dtor_nogc(EX_VAR(opline->op2.var))",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
"TMPVAR" => "zval_ptr_dtor_nogc(EX_VAR(opline->op2.var))",
"TMPVARCV" => "FREE_OP(opline->op2_type, opline->op2.var)",
)

Definition at line 442 of file zend_vm_gen.php.

◆ $op2_free_op_if_var

$op2_free_op_if_var
Initial value:
= array(
"ANY" => "if (opline->op2_type == IS_VAR) {zval_ptr_dtor_nogc(EX_VAR(opline->op2.var));}",
"TMP" => "",
"VAR" => "zval_ptr_dtor_nogc(EX_VAR(opline->op2.var))",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 464 of file zend_vm_gen.php.

◆ $op2_get_obj_zval_ptr

$op2_get_obj_zval_ptr
Initial value:
= array(
"ANY" => "get_obj_zval_ptr(opline->op2_type, opline->op2, \\1)",
"TMP" => "_get_zval_ptr_tmp(opline->op2.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var(opline->op2.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT(opline, opline->op2)",
"UNUSED" => "&EX(This)",
"CV" => "_get_zval_ptr_cv_\\1(opline->op2.var EXECUTE_DATA_CC)",
"TMPVAR" => "_get_zval_ptr_var(opline->op2.var EXECUTE_DATA_CC)",
"TMPVARCV" => "???",
)

Definition at line 332 of file zend_vm_gen.php.

◆ $op2_get_obj_zval_ptr_deref

$op2_get_obj_zval_ptr_deref
Initial value:
= array(
"ANY" => "get_obj_zval_ptr(opline->op2_type, opline->op2, \\1)",
"TMP" => "_get_zval_ptr_tmp(opline->op2.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var_deref(opline->op2.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT(opline, opline->op2)",
"UNUSED" => "&EX(This)",
"CV" => "_get_zval_ptr_cv_deref_\\1(opline->op2.var EXECUTE_DATA_CC)",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 376 of file zend_vm_gen.php.

◆ $op2_get_obj_zval_ptr_ptr

$op2_get_obj_zval_ptr_ptr
Initial value:
= array(
"ANY" => "get_obj_zval_ptr_ptr(opline->op2_type, opline->op2, \\1)",
"TMP" => "zend_get_bad_ptr()",
"VAR" => "_get_zval_ptr_ptr_var(opline->op2.var EXECUTE_DATA_CC)",
"CONST" => "zend_get_bad_ptr()",
"UNUSED" => "&EX(This)",
"CV" => "_get_zval_ptr_cv_\\1(opline->op2.var EXECUTE_DATA_CC)",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 398 of file zend_vm_gen.php.

◆ $op2_get_obj_zval_ptr_ptr_undef

$op2_get_obj_zval_ptr_ptr_undef
Initial value:
= array(
"ANY" => "get_obj_zval_ptr_ptr(opline->op2_type, opline->op2, \\1)",
"TMP" => "zend_get_bad_ptr()",
"VAR" => "_get_zval_ptr_ptr_var(opline->op2.var EXECUTE_DATA_CC)",
"CONST" => "zend_get_bad_ptr()",
"UNUSED" => "&EX(This)",
"CV" => "EX_VAR(opline->op2.var)",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 420 of file zend_vm_gen.php.

◆ $op2_get_obj_zval_ptr_undef

$op2_get_obj_zval_ptr_undef
Initial value:
= array(
"ANY" => "get_obj_zval_ptr_undef(opline->op2_type, opline->op2, \\1)",
"TMP" => "_get_zval_ptr_tmp(opline->op2.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var(opline->op2.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT(opline, opline->op2)",
"UNUSED" => "&EX(This)",
"CV" => "EX_VAR(opline->op2.var)",
"TMPVAR" => "_get_zval_ptr_var(opline->op2.var EXECUTE_DATA_CC)",
"TMPVARCV" => "EX_VAR(opline->op2.var)",
)

Definition at line 354 of file zend_vm_gen.php.

◆ $op2_get_zval_ptr

$op2_get_zval_ptr
Initial value:
= array(
"ANY" => "get_zval_ptr(opline->op2_type, opline->op2, \\1)",
"TMP" => "_get_zval_ptr_tmp(opline->op2.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var(opline->op2.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT(opline, opline->op2)",
"UNUSED" => "NULL",
"CV" => "_get_zval_ptr_cv_\\1(opline->op2.var EXECUTE_DATA_CC)",
"TMPVAR" => "_get_zval_ptr_var(opline->op2.var EXECUTE_DATA_CC)",
"TMPVARCV" => "???",
)

Definition at line 222 of file zend_vm_gen.php.

◆ $op2_get_zval_ptr_deref

$op2_get_zval_ptr_deref
Initial value:
= array(
"ANY" => "get_zval_ptr_deref(opline->op2_type, opline->op2, \\1)",
"TMP" => "_get_zval_ptr_tmp(opline->op2.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var_deref(opline->op2.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT(opline, opline->op2)",
"UNUSED" => "NULL",
"CV" => "_get_zval_ptr_cv_deref_\\1(opline->op2.var EXECUTE_DATA_CC)",
"TMPVAR" => "???",
"TMPVARCV" => "_get_zval_ptr_tmpvarcv(opline->op2_type, opline->op2, \\1 EXECUTE_DATA_CC)",
)

Definition at line 266 of file zend_vm_gen.php.

◆ $op2_get_zval_ptr_ptr

$op2_get_zval_ptr_ptr
Initial value:
= array(
"ANY" => "get_zval_ptr_ptr(opline->op2_type, opline->op2, \\1)",
"TMP" => "zend_get_bad_ptr()",
"VAR" => "_get_zval_ptr_ptr_var(opline->op2.var EXECUTE_DATA_CC)",
"CONST" => "zend_get_bad_ptr()",
"UNUSED" => "NULL",
"CV" => "_get_zval_ptr_cv_\\1(opline->op2.var EXECUTE_DATA_CC)",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 244 of file zend_vm_gen.php.

◆ $op2_get_zval_ptr_ptr_undef

$op2_get_zval_ptr_ptr_undef
Initial value:
= array(
"ANY" => "get_zval_ptr_ptr_undef(opline->op2_type, opline->op2, \\1)",
"TMP" => "zend_get_bad_ptr()",
"VAR" => "_get_zval_ptr_ptr_var(opline->op2.var EXECUTE_DATA_CC)",
"CONST" => "zend_get_bad_ptr()",
"UNUSED" => "NULL",
"CV" => "EX_VAR(opline->op2.var)",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 310 of file zend_vm_gen.php.

◆ $op2_get_zval_ptr_undef

$op2_get_zval_ptr_undef
Initial value:
= array(
"ANY" => "get_zval_ptr_undef(opline->op2_type, opline->op2, \\1)",
"TMP" => "_get_zval_ptr_tmp(opline->op2.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var(opline->op2.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT(opline, opline->op2)",
"UNUSED" => "NULL",
"CV" => "EX_VAR(opline->op2.var)",
"TMPVAR" => "_get_zval_ptr_var(opline->op2.var EXECUTE_DATA_CC)",
"TMPVARCV" => "EX_VAR(opline->op2.var)",
)

Definition at line 288 of file zend_vm_gen.php.

◆ $op2_type

$op2_type
Initial value:
= array(
"ANY" => "opline->op2_type",
"TMP" => "IS_TMP_VAR",
"VAR" => "IS_VAR",
"CONST" => "IS_CONST",
"UNUSED" => "IS_UNUSED",
"CV" => "IS_CV",
"TMPVAR" => "(IS_TMP_VAR|IS_VAR)",
"TMPVARCV" => "(IS_TMP_VAR|IS_VAR|IS_CV)",
)

Definition at line 200 of file zend_vm_gen.php.

◆ $op_data_free_op

$op_data_free_op
Initial value:
= array(
"ANY" => "FREE_OP((opline+1)->op1_type, (opline+1)->op1.var)",
"TMP" => "zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var))",
"VAR" => "zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var))",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
"TMPVAR" => "zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var))",
"TMPVARCV" => "???",
)

Definition at line 530 of file zend_vm_gen.php.

◆ $op_data_get_zval_ptr

$op_data_get_zval_ptr
Initial value:
= array(
"ANY" => "get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1)",
"TMP" => "_get_zval_ptr_tmp((opline+1)->op1.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var((opline+1)->op1.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT((opline+1), (opline+1)->op1)",
"UNUSED" => "NULL",
"CV" => "_get_zval_ptr_cv_\\1((opline+1)->op1.var EXECUTE_DATA_CC)",
"TMPVAR" => "_get_zval_ptr_var((opline+1)->op1.var EXECUTE_DATA_CC)",
"TMPVARCV" => "???",
)

Definition at line 486 of file zend_vm_gen.php.

◆ $op_data_get_zval_ptr_deref

$op_data_get_zval_ptr_deref
Initial value:
= array(
"ANY" => "get_op_data_zval_ptr_deref_r((opline+1)->op1_type, (opline+1)->op1)",
"TMP" => "_get_zval_ptr_tmp((opline+1)->op1.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var_deref((opline+1)->op1.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT((opline+1), (opline+1)->op1)",
"UNUSED" => "NULL",
"CV" => "_get_zval_ptr_cv_deref_\\1((opline+1)->op1.var EXECUTE_DATA_CC)",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 508 of file zend_vm_gen.php.

◆ $op_data_get_zval_ptr_ptr

$op_data_get_zval_ptr_ptr
Initial value:
= array(
"ANY" => "get_zval_ptr_ptr((opline+1)->op1_type, (opline+1)->op1, \\1)",
"TMP" => "zend_get_bad_ptr()",
"VAR" => "_get_zval_ptr_ptr_var((opline+1)->op1.var EXECUTE_DATA_CC)",
"CONST" => "zend_get_bad_ptr()",
"UNUSED" => "NULL",
"CV" => "_get_zval_ptr_cv_\\1((opline+1)->op1.var EXECUTE_DATA_CC)",
"TMPVAR" => "???",
"TMPVARCV" => "???",
)

Definition at line 519 of file zend_vm_gen.php.

◆ $op_data_get_zval_ptr_undef

$op_data_get_zval_ptr_undef
Initial value:
= array(
"ANY" => "get_op_data_zval_ptr_undef((opline+1)->op1_type, (opline+1)->op1)",
"TMP" => "_get_zval_ptr_tmp((opline+1)->op1.var EXECUTE_DATA_CC)",
"VAR" => "_get_zval_ptr_var((opline+1)->op1.var EXECUTE_DATA_CC)",
"CONST" => "RT_CONSTANT((opline+1), (opline+1)->op1)",
"UNUSED" => "NULL",
"CV" => "EX_VAR((opline+1)->op1.var)",
"TMPVAR" => "_get_zval_ptr_var((opline+1)->op1.var EXECUTE_DATA_CC)",
"TMPVARCV" => "EX_VAR((opline+1)->op1.var)",
)

Definition at line 497 of file zend_vm_gen.php.

◆ $op_data_type

$op_data_type
Initial value:
= array(
"ANY" => "(opline+1)->op1_type",
"TMP" => "IS_TMP_VAR",
"VAR" => "IS_VAR",
"CONST" => "IS_CONST",
"UNUSED" => "IS_UNUSED",
"CV" => "IS_CV",
"TMPVAR" => "(IS_TMP_VAR|IS_VAR)",
"TMPVARCV" => "(IS_TMP_VAR|IS_VAR|IS_CV)",
)

Definition at line 475 of file zend_vm_gen.php.

◆ $op_types

$op_types
Initial value:
= array(
"ANY",
"CONST",
"TMP",
"VAR",
"UNUSED",
"CV",
)

Definition at line 147 of file zend_vm_gen.php.

◆ $op_types_ex

$op_types_ex
Initial value:
= array(
"ANY",
"CONST",
"TMPVARCV",
"TMPVAR",
"TMP",
"VAR",
"UNUSED",
"CV",
)

Definition at line 156 of file zend_vm_gen.php.

◆ $opcodes

$opcodes = array()

Definition at line 542 of file zend_vm_gen.php.

◆ $opnames

$opnames = array()

Definition at line 545 of file zend_vm_gen.php.

◆ $params

$params = array()

Definition at line 544 of file zend_vm_gen.php.

◆ $prefix

Initial value:
= array(
"ANY" => "",
"TMP" => "_TMP",
"VAR" => "_VAR",
"CONST" => "_CONST",
"UNUSED" => "_UNUSED",
"CV" => "_CV",
"TMPVAR" => "_TMPVAR",
"TMPVARCV" => "_TMPVARCV",
)

Definition at line 167 of file zend_vm_gen.php.

◆ $used_extra_spec

$used_extra_spec = array()

Definition at line 548 of file zend_vm_gen.php.

◆ $vm_ext_decode

$vm_ext_decode
Initial value:
= array(
"NUM" => ZEND_VM_EXT_NUM,
"LAST_CATCH" => ZEND_VM_EXT_LAST_CATCH,
"JMP_ADDR" => ZEND_VM_EXT_JMP_ADDR,
"OP" => ZEND_VM_EXT_OP,
"VAR_FETCH" => ZEND_VM_EXT_VAR_FETCH,
"ARRAY_INIT" => ZEND_VM_EXT_ARRAY_INIT,
"TYPE" => ZEND_VM_EXT_TYPE,
"EVAL" => ZEND_VM_EXT_EVAL,
"TYPE_MASK" => ZEND_VM_EXT_TYPE_MASK,
"ISSET" => ZEND_VM_EXT_ISSET,
"REF" => ZEND_VM_EXT_REF,
"FETCH_REF" => ZEND_VM_EXT_FETCH_REF,
"SRC" => ZEND_VM_EXT_SRC,
"CACHE_SLOT" => ZEND_VM_EXT_CACHE_SLOT,
"DIM_WRITE" => ZEND_VM_EXT_DIM_WRITE,
)
#define ZEND_VM_EXT_DIM_WRITE
#define ZEND_VM_EXT_EVAL
#define ZEND_VM_EXT_TYPE
#define ZEND_VM_EXT_OP
#define ZEND_VM_EXT_CACHE_SLOT
#define ZEND_VM_EXT_REF
#define ZEND_VM_EXT_NUM
#define ZEND_VM_EXT_TYPE_MASK
#define ZEND_VM_EXT_JMP_ADDR
#define ZEND_VM_EXT_SRC
#define ZEND_VM_EXT_VAR_FETCH
#define ZEND_VM_EXT_LAST_CATCH
#define ZEND_VM_EXT_ARRAY_INIT
#define ZEND_VM_EXT_FETCH_REF
#define ZEND_VM_EXT_ISSET

Definition at line 122 of file zend_vm_gen.php.

◆ $vm_kind_name

$vm_kind_name
Initial value:
= array(
ZEND_VM_KIND_CALL => "ZEND_VM_KIND_CALL",
ZEND_VM_KIND_SWITCH => "ZEND_VM_KIND_SWITCH",
ZEND_VM_KIND_GOTO => "ZEND_VM_KIND_GOTO",
ZEND_VM_KIND_HYBRID => "ZEND_VM_KIND_HYBRID",
)
#define ZEND_VM_KIND_GOTO
#define ZEND_VM_KIND_HYBRID
#define ZEND_VM_KIND_SWITCH
#define ZEND_VM_KIND_CALL

Definition at line 140 of file zend_vm_gen.php.

◆ $vm_op_decode

foreach ( $vm_op_flags as $name=> $val) $vm_op_decode
Initial value:
= array(
"ANY" => 0,
"TMP" => ZEND_VM_OP_SPEC,
"VAR" => ZEND_VM_OP_SPEC,
"UNUSED" => ZEND_VM_OP_SPEC,
"CV" => ZEND_VM_OP_SPEC,
"NUM" => ZEND_VM_OP_NUM,
"JMP_ADDR" => ZEND_VM_OP_JMP_ADDR,
"TRY_CATCH" => ZEND_VM_OP_TRY_CATCH,
"THIS" => ZEND_VM_OP_THIS,
"NEXT" => ZEND_VM_OP_NEXT,
"CLASS_FETCH" => ZEND_VM_OP_CLASS_FETCH,
"CONSTRUCTOR" => ZEND_VM_OP_CONSTRUCTOR,
"CONST_FETCH" => ZEND_VM_OP_CONST_FETCH,
"CACHE_SLOT" => ZEND_VM_OP_CACHE_SLOT,
)
#define ZEND_VM_OP_THIS
#define ZEND_VM_OP_CLASS_FETCH
#define ZEND_VM_OP_SPEC
#define ZEND_VM_OP_CONST
#define ZEND_VM_OP_TMPVAR
#define ZEND_VM_OP_TMPVARCV
#define ZEND_VM_OP_NUM
#define ZEND_VM_OP_CONSTRUCTOR
#define ZEND_VM_OP_NEXT
#define ZEND_VM_OP_TRY_CATCH
#define ZEND_VM_OP_JMP_ADDR
#define ZEND_VM_OP_CONST_FETCH
#define ZEND_VM_OP_CACHE_SLOT

Definition at line 102 of file zend_vm_gen.php.

◆ $vm_op_flags

$vm_op_flags

Definition at line 57 of file zend_vm_gen.php.

◆ HEADER_TEXT

const HEADER_TEXT =

Definition at line 21 of file zend_vm_gen.php.

◆ ZEND_VM_KIND_CALL

const ZEND_VM_KIND_CALL = 1

Definition at line 52 of file zend_vm_gen.php.

◆ ZEND_VM_KIND_GOTO

const ZEND_VM_KIND_GOTO = 3

Definition at line 54 of file zend_vm_gen.php.

◆ ZEND_VM_KIND_HYBRID

const ZEND_VM_KIND_HYBRID = 4

Definition at line 55 of file zend_vm_gen.php.

◆ ZEND_VM_KIND_SWITCH

const ZEND_VM_KIND_SWITCH = 2

Definition at line 53 of file zend_vm_gen.php.