php-src/Zend/asm
Chen 040a37d3f1
Add IBT support for fiber
Indirect Branch Tracking (IBT) is part of Intel's Control-Flow
Enforcement Technology (CET). IBT is hardware based, forward edge
Control-Flow-Integrity mechanism where any indirect CALL/JMP must target
an ENDBR instruction or suffer #CP.

This commit adds IBT support for fiber:
1. Add endbr32/64 in assembly
2. Inform compiler jump_fcontext may return via indirect branch

Furthermore:
gcc support CET since v8.1 and set it to default since gcc 11. That is,
the ELF header of sapi/cli/php has a property named IBT. However, such
property is lost since PHP8.1 because the assembly introduced by Fiber.
This commit also fixes this.

Closes GH-8339

Signed-off-by: Chen, Hu <hu1.chen@intel.com>
Co-authored-by: Christoph M. Becker <cmbecker69@gmx.de>
2022-05-25 13:42:31 -05:00
..
jump_arm64_aapcs_elf_gas.S
jump_arm64_aapcs_macho_gas.S
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
jump_i386_sysv_macho_gas.S
jump_mips32_o32_elf_gas.S
jump_mips64_n64_elf_gas.S
jump_ppc32_sysv_elf_gas.S
jump_ppc32_sysv_macho_gas.S
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
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_x86_64_ms_pe_masm.asm
jump_x86_64_sysv_elf_gas.S Add IBT support for fiber 2022-05-25 13:42:31 -05:00
jump_x86_64_sysv_macho_gas.S
LICENSE
make_arm64_aapcs_elf_gas.S
make_arm64_aapcs_macho_gas.S
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
make_i386_sysv_macho_gas.S
make_mips32_o32_elf_gas.S
make_mips64_n64_elf_gas.S
make_ppc32_sysv_elf_gas.S
make_ppc32_sysv_macho_gas.S
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
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_x86_64_ms_pe_masm.asm
make_x86_64_sysv_elf_gas.S Add IBT support for fiber 2022-05-25 13:42:31 -05:00
make_x86_64_sysv_macho_gas.S