What is the role of ZEND_FASTCALL in Zend source code?

what is the role of ZEND_FASTCALL in Zend source code?

the following is zend_vm_execute.h: in zend source code

`static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CONST_HANDLER (ZEND_OPCODE_HANDLER_ARGS)
{

   USE_OPLINE

   zval *value;
   zval **variable_ptr_ptr;

   SAVE_OPLINE();
   value = opline->op2.zv;
   variable_ptr_ptr = _get_zval_ptr_ptr_cv_BP_VAR_W(execute_data, opline->op1.var TSRMLS_CC);

   if (IS_CV == IS_VAR && UNEXPECTED(variable_ptr_ptr == NULL)) {
       if (zend_assign_to_string_offset(&EX_T(opline->op1.var), value, IS_CONST TSRMLS_CC)) {
           if (RETURN_VALUE_USED(opline)) {
           PZVAL_LOCK(&EG(uninitialized_zval));
           EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
       }
   } else {
       if (IS_CONST == IS_TMP_VAR) {
           value = zend_assign_tmp_to_variable(variable_ptr_ptr, value TSRMLS_CC);
       } else if (IS_CONST == IS_CONST) {
           value = zend_assign_const_to_variable(variable_ptr_ptr, value TSRMLS_CC);
       } else {
           value = zend_assign_to_variable(variable_ptr_ptr, value TSRMLS_CC);
       }
       if (RETURN_VALUE_USED(opline)) {
           PZVAL_LOCK(value);
           EX_T(opline->result.var).var.ptr = value;
       }
   }

   if (IS_CV == IS_VAR && 0) {
       zval_ptr_dtor_nogc(&value);
   }

   /* zend_assign_to_variable() always takes care of op2, never free it! */

   CHECK_EXCEPTION();
   ZEND_VM_NEXT_OPCODE();
}

Php
Apr.02,2021
Menu