diff options
author | Dmitry Stogov <dmitry@zend.com> | 2018-04-04 01:12:59 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2018-04-04 01:12:59 +0300 |
commit | cb464a53c8216dd76e14d21b74d6adecd5f002f8 (patch) | |
tree | 3f39ac2df569e2c63736066f0df3e53b7e0983b0 | |
parent | 005f2a467637e134db023377e7f5390f939c8509 (diff) | |
download | php-git-cb464a53c8216dd76e14d21b74d6adecd5f002f8.tar.gz |
Use "fastcall" calling convention
-rw-r--r-- | Zend/zend_string.c | 24 | ||||
-rw-r--r-- | Zend/zend_string.h | 9 | ||||
-rw-r--r-- | ext/opcache/ZendAccelerator.c | 10 | ||||
-rw-r--r-- | ext/opcache/ZendAccelerator.h | 2 |
4 files changed, 23 insertions, 22 deletions
diff --git a/Zend/zend_string.c b/Zend/zend_string.c index 0266d0c97a..f32397afa7 100644 --- a/Zend/zend_string.c +++ b/Zend/zend_string.c @@ -25,13 +25,13 @@ # include "valgrind/callgrind.h" #endif -ZEND_API zend_string *(*zend_new_interned_string)(zend_string *str); -ZEND_API zend_string *(*zend_string_init_interned)(const char *str, size_t size, int permanent); +ZEND_API zend_new_interned_string_func_t zend_new_interned_string; +ZEND_API zend_string_init_interned_func_t zend_string_init_interned; -static zend_string *zend_new_interned_string_permanent(zend_string *str); -static zend_string *zend_new_interned_string_request(zend_string *str); -static zend_string *zend_string_init_interned_permanent(const char *str, size_t size, int permanent); -static zend_string *zend_string_init_interned_request(const char *str, size_t size, int permanent); +static zend_string* ZEND_FASTCALL zend_new_interned_string_permanent(zend_string *str); +static zend_string* ZEND_FASTCALL zend_new_interned_string_request(zend_string *str); +static zend_string* ZEND_FASTCALL zend_string_init_interned_permanent(const char *str, size_t size, int permanent); +static zend_string* ZEND_FASTCALL zend_string_init_interned_request(const char *str, size_t size, int permanent); /* Any strings interned in the startup phase. Common to all the threads, won't be free'd until process exit. If we want an ability to @@ -48,7 +48,7 @@ ZEND_API zend_string *zend_empty_string = NULL; ZEND_API zend_string *zend_one_char_string[256]; ZEND_API zend_string **zend_known_strings = NULL; -ZEND_API zend_ulong zend_hash_func(const char *str, size_t len) +ZEND_API zend_ulong ZEND_FASTCALL zend_hash_func(const char *str, size_t len) { return zend_inline_hash_func(str, len); } @@ -175,13 +175,13 @@ static zend_always_inline zend_string *zend_add_interned_string(zend_string *str return str; } -ZEND_API zend_string *zend_interned_string_find_permanent(zend_string *str) +ZEND_API zend_string* ZEND_FASTCALL zend_interned_string_find_permanent(zend_string *str) { zend_string_hash_val(str); return zend_interned_string_ht_lookup(str, &interned_strings_permanent); } -static zend_string *zend_new_interned_string_permanent(zend_string *str) +static zend_string* ZEND_FASTCALL zend_new_interned_string_permanent(zend_string *str) { zend_string *ret; @@ -207,7 +207,7 @@ static zend_string *zend_new_interned_string_permanent(zend_string *str) return zend_add_interned_string(str, &interned_strings_permanent, IS_STR_PERMANENT); } -static zend_string *zend_new_interned_string_request(zend_string *str) +static zend_string* ZEND_FASTCALL zend_new_interned_string_request(zend_string *str) { zend_string *ret; @@ -244,7 +244,7 @@ static zend_string *zend_new_interned_string_request(zend_string *str) return ret; } -static zend_string *zend_string_init_interned_permanent(const char *str, size_t size, int permanent) +static zend_string* ZEND_FASTCALL zend_string_init_interned_permanent(const char *str, size_t size, int permanent) { zend_string *ret; zend_ulong h = zend_inline_hash_func(str, size); @@ -259,7 +259,7 @@ static zend_string *zend_string_init_interned_permanent(const char *str, size_t return zend_add_interned_string(ret, &interned_strings_permanent, IS_STR_PERMANENT); } -static zend_string *zend_string_init_interned_request(const char *str, size_t size, int permanent) +static zend_string* ZEND_FASTCALL zend_string_init_interned_request(const char *str, size_t size, int permanent) { zend_string *ret; zend_ulong h = zend_inline_hash_func(str, size); diff --git a/Zend/zend_string.h b/Zend/zend_string.h index 0fd06447b7..99674cd5da 100644 --- a/Zend/zend_string.h +++ b/Zend/zend_string.h @@ -26,18 +26,19 @@ BEGIN_EXTERN_C() typedef void (*zend_string_copy_storage_func_t)(void); -typedef zend_string *(*zend_new_interned_string_func_t)(zend_string *str); -typedef zend_string *(*zend_string_init_interned_func_t)(const char *str, size_t size, int permanent); +typedef zend_string *(ZEND_FASTCALL *zend_new_interned_string_func_t)(zend_string *str); +typedef zend_string *(ZEND_FASTCALL *zend_string_init_interned_func_t)(const char *str, size_t size, int permanent); ZEND_API extern zend_new_interned_string_func_t zend_new_interned_string; ZEND_API extern zend_string_init_interned_func_t zend_string_init_interned; -ZEND_API zend_ulong zend_hash_func(const char *str, size_t len); +ZEND_API zend_ulong ZEND_FASTCALL zend_hash_func(const char *str, size_t len); +ZEND_API zend_string* ZEND_FASTCALL zend_interned_string_find_permanent(zend_string *str); + ZEND_API void zend_interned_strings_init(void); ZEND_API void zend_interned_strings_dtor(void); ZEND_API void zend_interned_strings_activate(void); ZEND_API void zend_interned_strings_deactivate(void); -ZEND_API zend_string *zend_interned_string_find_permanent(zend_string *str); ZEND_API void zend_interned_strings_set_request_storage_handlers(zend_new_interned_string_func_t handler, zend_string_init_interned_func_t init_handler); ZEND_API void zend_interned_strings_set_permanent_storage_copy_handlers(zend_string_copy_storage_func_t copy_handler, zend_string_copy_storage_func_t restore_handler); ZEND_API void zend_interned_strings_switch_storage(zend_bool request); diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c index ac781afd89..20189b160d 100644 --- a/ext/opcache/ZendAccelerator.c +++ b/ext/opcache/ZendAccelerator.c @@ -437,7 +437,7 @@ static zend_always_inline zend_string *accel_find_interned_string(zend_string *s return NULL; } -zend_string *accel_new_interned_string(zend_string *str) +zend_string* ZEND_FASTCALL accel_new_interned_string(zend_string *str) { zend_ulong h; uint32_t pos, *hash_slot; @@ -493,7 +493,7 @@ zend_string *accel_new_interned_string(zend_string *str) return s; } -static zend_string *accel_new_interned_string_for_php(zend_string *str) +static zend_string* ZEND_FASTCALL accel_new_interned_string_for_php(zend_string *str) { zend_string_hash_val(str); if (ZCG(counted)) { @@ -528,7 +528,7 @@ static zend_always_inline zend_string *accel_find_interned_string_ex(zend_ulong return NULL; } -static zend_string *accel_init_interned_string_for_php(const char *str, size_t size, int permanent) +static zend_string* ZEND_FASTCALL accel_init_interned_string_for_php(const char *str, size_t size, int permanent) { if (ZCG(counted)) { zend_ulong h = zend_inline_hash_func(str, size); @@ -708,7 +708,7 @@ static void accel_copy_permanent_strings(zend_new_interned_string_func_t new_int } ZEND_HASH_FOREACH_END(); } -static zend_string *accel_replace_string_by_shm_permanent(zend_string *str) +static zend_string* ZEND_FASTCALL accel_replace_string_by_shm_permanent(zend_string *str) { zend_string *ret = accel_find_interned_string(str); @@ -719,7 +719,7 @@ static zend_string *accel_replace_string_by_shm_permanent(zend_string *str) return str; } -static zend_string *accel_replace_string_by_process_permanent(zend_string *str) +static zend_string* ZEND_FASTCALL accel_replace_string_by_process_permanent(zend_string *str) { zend_string *ret = zend_interned_string_find_permanent(str); diff --git a/ext/opcache/ZendAccelerator.h b/ext/opcache/ZendAccelerator.h index 378f38b363..d6660dd2d6 100644 --- a/ext/opcache/ZendAccelerator.h +++ b/ext/opcache/ZendAccelerator.h @@ -333,6 +333,6 @@ zend_op_array *persistent_compile_file(zend_file_handle *file_handle, int type); #define IS_ACCEL_INTERNED(str) \ ((char*)(str) >= (char*)ZCSG(interned_strings).start && (char*)(str) < (char*)ZCSG(interned_strings).top) -zend_string *accel_new_interned_string(zend_string *str); +zend_string* ZEND_FASTCALL accel_new_interned_string(zend_string *str); #endif /* ZEND_ACCELERATOR_H */ |