php-src/Zend/asm
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
..
jump_arm64_aapcs_elf_gas.S
jump_arm64_aapcs_macho_gas.S
jump_arm64_aapcs_pe_armasm.asm Convert CRLF line endings to LF (#15767) 2024-09-07 11:03:32 +02:00
jump_arm_aapcs_elf_gas.S
jump_arm_aapcs_macho_gas.S Update bundled boost asm to latest versions 2021-11-22 18:00:43 -06:00
jump_combined_sysv_macho_gas.S
jump_i386_ms_pe_masm.asm
jump_i386_sysv_elf_gas.S Sync Zend/*_i386_sysv_elf_gas.S with upstream (#15788) 2024-09-07 21:27:02 +02:00
jump_i386_sysv_macho_gas.S
jump_loongarch64_sysv_elf_gas.S loongarch64 support for fibers 2024-04-08 18:59:02 +01:00
jump_mips32_o32_elf_gas.S
jump_mips64_n64_elf_gas.S
jump_ppc32_sysv_elf_gas.S
jump_ppc32_sysv_macho_gas.S Sync boost/context assembly files for fibers 2023-02-05 16:40:54 +00:00
jump_ppc32_sysv_xcoff_gas.S Fix bug #81507: Adjust XCOFF asm files for AIX assembler 2021-11-04 10:54:42 +01:00
jump_ppc64_sysv_elf_gas.S
jump_ppc64_sysv_macho_gas.S Sync boost/context assembly files for fibers 2023-02-05 16:40:54 +00:00
jump_ppc64_sysv_xcoff_gas.S Fix bug #81507: Adjust XCOFF asm files for AIX assembler 2021-11-04 10:54:42 +01:00
jump_riscv64_sysv_elf_gas.S riscv64 support for fibers 2022-01-04 12:06:37 +01:00
jump_s390x_sysv_elf_gas.S
jump_sparc64_sysv_elf_gas.S Implement fcontext handling for sparc64_sysv_elf. 2024-03-12 11:06:18 +00:00
jump_x86_64_ms_pe_gas.S rudimentary midipix port (#13896) 2024-04-18 08:19:44 +02:00
jump_x86_64_ms_pe_masm.asm
jump_x86_64_sysv_elf_gas.S fiber fix wrong asm directives on (default) solaris build mode. 2024-02-04 17:39:24 +00:00
jump_x86_64_sysv_macho_gas.S
LICENSE
make_arm64_aapcs_elf_gas.S
make_arm64_aapcs_macho_gas.S
make_arm64_aapcs_pe_armasm.asm Convert CRLF line endings to LF (#15767) 2024-09-07 11:03:32 +02:00
make_arm_aapcs_elf_gas.S
make_arm_aapcs_macho_gas.S
make_combined_sysv_macho_gas.S
make_i386_ms_pe_masm.asm
make_i386_sysv_elf_gas.S Sync Zend/*_i386_sysv_elf_gas.S with upstream (#15788) 2024-09-07 21:27:02 +02:00
make_i386_sysv_macho_gas.S Sync boost/context assembly files for fibers 2023-02-05 16:40:54 +00:00
make_loongarch64_sysv_elf_gas.S loongarch64 support for fibers 2024-04-08 18:59:02 +01:00
make_mips32_o32_elf_gas.S
make_mips64_n64_elf_gas.S
make_ppc32_sysv_elf_gas.S
make_ppc32_sysv_macho_gas.S Sync boost/context assembly files for fibers 2023-02-05 16:40:54 +00:00
make_ppc32_sysv_xcoff_gas.S Fix bug #81507: Adjust XCOFF asm files for AIX assembler 2021-11-04 10:54:42 +01:00
make_ppc64_sysv_elf_gas.S
make_ppc64_sysv_macho_gas.S Sync Zend/asm/make_ppc64_sysv_macho_gas.S with upstream (#15769) 2024-09-06 08:42:44 +02:00
make_ppc64_sysv_xcoff_gas.S Fix bug #81507: Adjust XCOFF asm files for AIX assembler 2021-11-04 10:54:42 +01:00
make_riscv64_sysv_elf_gas.S riscv64 support for fibers 2022-01-04 12:06:37 +01:00
make_s390x_sysv_elf_gas.S
make_sparc64_sysv_elf_gas.S Implement fcontext handling for sparc64_sysv_elf. 2024-03-12 11:06:18 +00:00
make_x86_64_ms_pe_gas.S rudimentary midipix port (#13896) 2024-04-18 08:19:44 +02:00
make_x86_64_ms_pe_masm.asm
make_x86_64_sysv_elf_gas.S fiber fix wrong asm directives on (default) solaris build mode. 2024-02-04 17:39:24 +00:00
make_x86_64_sysv_macho_gas.S
save_xmm_x86_64_ms_masm.asm Fix GH-18136: tracing JIT floating point register clobbering on Windows and ARM64 2025-04-21 13:15:43 +02:00