php-src/win32
Niels Dossche 1a1a83f1fc
Fix GH-18136: tracing JIT floating point register clobbering on Windows and ARM64
On win64, xmm6-xmm15 are preserved registers, but the prologues and
epilogues of JITted code don't handle these. The issue occurs when
calling into the JIT code again via an internal handler
(like call_user_func). Therefore, we want to save/restore xmm registers
upon entering/leaving execute_ex. Since MSVC x64 does not support inline
assembly, we create an assembly wrapper around the real execute_ex
function.
The alternative is to always save/restore these xmm registers into the
fixed call frame, but this causes unnecessary overhead.
The same issue occurs for ARM64 platforms for floating point register
8 to 15. However, there we can use inline asm to fix this.

Closes GH-18352.
2025-04-21 13:15:43 +02:00
..
build Fix GH-18136: tracing JIT floating point register clobbering on Windows and ARM64 2025-04-21 13:15:43 +02:00
codepage.c Port win32/codepage.c codes for windows arm64 2022-07-21 14:02:25 +02:00
codepage.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
console.c Fixed some spaces used instead of tabs 2021-06-29 11:30:26 +02:00
console.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
cp_enc_map.c Trailing whitespaces 2018-01-03 14:38:00 +01:00
cp_enc_map_gen.c Remove local variables 2019-02-03 21:03:00 +01:00
dllmain.c Remove php_win32_init_gettimeofday declaration (#15451) 2024-08-17 13:58:40 +02:00
fnmatch.c Remove local variables 2019-02-03 21:03:00 +01:00
fnmatch.h Remove local variables 2019-02-03 21:03:00 +01:00
ftok.c Avoid undefined behavior in Windows ftok(3) emulation 2022-11-18 14:37:00 +01:00
getrusage.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
getrusage.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
glob.c Drop remaining usage of u_char in favour of standard C99 uint8_t (#8611) 2022-05-23 21:57:31 +01:00
glob.h Remove local variables 2019-02-03 21:03:00 +01:00
globals.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
ioutil.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
ioutil.h Sync #if/ifdef/defined (#14508) 2024-06-09 14:23:41 +02:00
ipc.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
nice.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
nice.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
param.h Remove local variables 2019-02-03 21:03:00 +01:00
php_registry.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_win32_globals.h Autotools: Refactor thread safety checks (#15214) 2024-08-05 22:30:10 +02:00
readdir.c Cache d_type in directory entry 2023-07-07 18:02:32 +02:00
readdir.h Cache d_type in directory entry 2023-07-07 18:02:32 +02:00
registry.c Use more compact representation for packed arrays. 2021-11-03 15:18:26 +03:00
select.c Zend/zend_types.h: deprecate zend_bool, zend_intptr_t, zend_uintptr_t (#10597) 2023-02-18 19:31:28 +00:00
select.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
sendmail.c Fix comments in win32/sendmail.c (GH-15326) 2024-08-10 13:59:06 +02:00
sendmail.h Constify char * arguments of APIs 2020-06-08 10:38:45 +02:00
signal.c Sync #if/ifdef/defined (-Wundef) (#14623) 2024-06-24 19:37:07 +02:00
signal.h Fix TS build, ref #77377 2019-02-08 18:42:48 -08:00
sockets.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
sockets.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
syslog.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
time.c Voidify getfilesystemtime() (GH-15413) 2024-08-14 21:09:26 +02:00
time.h Remove php_win32_init_gettimeofday declaration (#15451) 2024-08-17 13:58:40 +02:00
unistd.h Remove local variables 2019-02-03 21:03:00 +01:00
winutil.c Fix potential OOB when checking for trailing spaces 2025-01-16 00:01:22 +01:00
winutil.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
wsyslog.c Merge branch 'PHP-7.3' into PHP-7.4 2019-07-11 13:11:08 +02:00