From: Dmitry Stogov Date: Tue, 15 Jan 2019 08:14:33 +0000 (+0300) Subject: Use fastcall calling convention X-Git-Tag: php-7.4.0alpha1~1222 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6f6532d32b1288bac536c9864550f5dff3b9987d;p=php Use fastcall calling convention --- diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 363812e01f..fbc50bd2f6 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -2556,7 +2556,7 @@ static zend_always_inline zend_property_info *i_zend_check_ref_stdClass_assignab return NULL; } -ZEND_API zend_property_info *zend_check_ref_array_assignable(zend_reference *ref) { +ZEND_API zend_property_info* ZEND_FASTCALL zend_check_ref_array_assignable(zend_reference *ref) { return i_zend_check_ref_array_assignable(ref); } @@ -2943,12 +2943,12 @@ static zend_always_inline zend_bool i_zend_verify_ref_assignable_zval(zend_refer return 1; } -ZEND_API zend_bool zend_verify_ref_assignable_zval(zend_reference *ref, zval *zv, zend_bool strict) +ZEND_API zend_bool ZEND_FASTCALL zend_verify_ref_assignable_zval(zend_reference *ref, zval *zv, zend_bool strict) { return i_zend_verify_ref_assignable_zval(ref, zv, strict); } -ZEND_API zend_bool zend_verify_prop_assignable_by_ref(zend_property_info *prop_info, zval *orig_val, zend_bool strict) { +ZEND_API zend_bool ZEND_FASTCALL zend_verify_prop_assignable_by_ref(zend_property_info *prop_info, zval *orig_val, zend_bool strict) { zval *val = orig_val; if (Z_ISREF_P(val) && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(val))) { int result; @@ -2981,7 +2981,7 @@ ZEND_API zend_bool zend_verify_prop_assignable_by_ref(zend_property_info *prop_i return 0; } -ZEND_API void zend_ref_add_type_source(zend_property_info_source_list *source_list, zend_property_info *prop) +ZEND_API void ZEND_FASTCALL zend_ref_add_type_source(zend_property_info_source_list *source_list, zend_property_info *prop) { zend_property_info_list *list; if (source_list->ptr == NULL) { @@ -3004,7 +3004,7 @@ ZEND_API void zend_ref_add_type_source(zend_property_info_source_list *source_li source_list->list = ZEND_PROPERTY_INFO_SOURCE_FROM_LIST(list); } -ZEND_API void zend_ref_del_type_source(zend_property_info_source_list *source_list, zend_property_info *prop) +ZEND_API void ZEND_FASTCALL zend_ref_del_type_source(zend_property_info_source_list *source_list, zend_property_info *prop) { zend_property_info_list *list = ZEND_PROPERTY_INFO_SOURCE_TO_LIST(source_list->list); zend_property_info **ptr, **end; diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index b330ba80d6..8e4dab37a9 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -56,9 +56,9 @@ ZEND_API void ZEND_FASTCALL zend_check_internal_arg_type(zend_function *zf, uint ZEND_API int ZEND_FASTCALL zend_check_arg_type(zend_function *zf, uint32_t arg_num, zval *arg, zval *default_value, void **cache_slot); ZEND_API ZEND_COLD void ZEND_FASTCALL zend_missing_arg_error(zend_execute_data *execute_data); -ZEND_API zend_property_info *zend_check_ref_array_assignable(zend_reference *ref); -ZEND_API zend_bool zend_verify_ref_assignable_zval(zend_reference *ref, zval *zv, zend_bool strict); -ZEND_API zend_bool zend_verify_prop_assignable_by_ref(zend_property_info *prop_info, zval *orig_val, zend_bool strict); +ZEND_API zend_property_info* ZEND_FASTCALL zend_check_ref_array_assignable(zend_reference *ref); +ZEND_API zend_bool ZEND_FASTCALL zend_verify_ref_assignable_zval(zend_reference *ref, zval *zv, zend_bool strict); +ZEND_API zend_bool ZEND_FASTCALL zend_verify_prop_assignable_by_ref(zend_property_info *prop_info, zval *orig_val, zend_bool strict); ZEND_API ZEND_COLD void zend_throw_ref_type_error_zval(zend_property_info *prop, zval *zv); ZEND_API ZEND_COLD void zend_throw_ref_type_error_type(zend_property_info *prop1, zend_property_info *prop2, zval *zv); @@ -75,8 +75,8 @@ ZEND_API ZEND_COLD void zend_throw_ref_type_error_type(zend_property_info *prop1 : (ref)->sources.ptr) -ZEND_API void zend_ref_add_type_source(zend_property_info_source_list *source_list, zend_property_info *prop); -ZEND_API void zend_ref_del_type_source(zend_property_info_source_list *source_list, zend_property_info *prop); +ZEND_API void ZEND_FASTCALL zend_ref_add_type_source(zend_property_info_source_list *source_list, zend_property_info *prop); +ZEND_API void ZEND_FASTCALL zend_ref_del_type_source(zend_property_info_source_list *source_list, zend_property_info *prop); static zend_always_inline zval* zend_assign_to_variable(zval *variable_ptr, zval *value, zend_uchar value_type, zend_bool strict) {