History log of /php-src/ext/opcache/jit/zend_jit_ir.c (Results 1 – 25 of 51)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 91b84571 11-Apr-2024 Arnaud Le Blanc

Fix TLS access in JIT with Musl (#13927)

ABI specifies that each DTV element is 8 bytes in size on x86-64. The factor 16
was defined in 71cccc0bcc5f083ae6022face1c2514b5240b96a, but it's

Fix TLS access in JIT with Musl (#13927)

ABI specifies that each DTV element is 8 bytes in size on x86-64. The factor 16
was defined in 71cccc0bcc5f083ae6022face1c2514b5240b96a, but it's probably
a merge error of 94ba883e195613d5a01be07b6ca9a73024b5575b, which used the right
value.

show more ...


# 13c8d931 08-Apr-2024 Bob Weinand

Merge branch 'PHP-8.3'


# 00c6d538 01-Apr-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-13834: Applying non-zero offset 36 to null pointer in zend_jit.c (#13846)

* Fix GH-13834: Applying non-zero offset 36 to null pointer in zend_jit.c

ssa_op can be NULL in func

Fix GH-13834: Applying non-zero offset 36 to null pointer in zend_jit.c (#13846)

* Fix GH-13834: Applying non-zero offset 36 to null pointer in zend_jit.c

ssa_op can be NULL in function JIT. Doing pointer arithmetic on a NULL
pointer is undefined behaviour. Undefined behaviour can be dangerous
because the optimizer may assume then that the variable is not actually
NULL.

To solve this:
1. Add ADVANCE_SSA_OP() to safely add an offset to ssa_op in zend_jit.c
2. For inference, add an extra offset argument to the helper functions.

To reproduce this, use Clang (not GCC) on a test like
sapi/cli/tests/gh12363.phpt (or other tests also work).

* Remove -fno-sanitize=pointer-overflow flag from CI

* Fix NULL pointer offsets added to the stack_map

* Fix an offset add on a potentially NULL ssa->ops

* Fix NULL pointer arithmetic in zend_range_info()

* Address review comments

show more ...

# 2d6bd164 28-Mar-2024 Paul Ripke

Fixed GH-13581: threaded mod_php fails on NetBSD with No space available for Thread Local Storage.

Close GH-13832

# fa512dc4 20-Mar-2024 Dmitry Stogov

Use new abilities or ir_save()

# 71cccc0b 12-Feb-2024 Dmitry Stogov

Merge branch 'PHP-8.3'

* PHP-8.3:
Fix TLS access in JIT with MUSL (#13329)


# 631bc816 06-Feb-2024 Ilija Tovilo

Implement stackless internal function calls

Co-authored-by: Dmitry Stogov <dmitry@zend.com>

Closes GH-12461

# 2bf9f7eb 01-Feb-2024 Dmitry Stogov

Fix compilation warning

# fe064d7f 19-Jan-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-13142: Undefined variable name is shortened when contains \0

Uses the new %S formatter and introduces the necessary changes and
helpers.

# b6a0e3d4 19-Dec-2023 Dmitry Stogov

Manually optimize DIV to SHR

# 45119549 18-Dec-2023 Dmitry Stogov

Merge branch 'PHP-8.3'

* PHP-8.3:
Fixed incorrect elimination of refcounted check in JIT for BIND_GLOBAL


# a8eecec9 11-Dec-2023 Dmitry Stogov

Fixed AAech64 build

# 7714f1fc 11-Dec-2023 Dmitry Stogov

Support for IR API changes

# b2483a18 07-Dec-2023 Dmitry Stogov

Fix GH-12879: Function name is missing in error message on MacOS with function JIT

# c779bdc9 01-Dec-2023 Dmitry Stogov

Fix Windoes build

# bf6b66fe 01-Dec-2023 Dmitry Stogov

Restored support for CPU cache demotion

# 4d51d588 30-Nov-2023 Dmitry Stogov

JIT: Specify fastcall calling convenrion through dummy function prototype

# fc1b467d 28-Nov-2023 Dmitry Stogov

Merge branch 'PHP-8.3'

* PHP-8.3:
Fixed GH-12812: Integer string in variable used as offset produces wrong undefined array key warning (#12817)


# d41ee53a 28-Nov-2023 Dmitry Stogov

Fixed GH-12809: Segmentation fault in exception handler with CALL VM on AArch64

# fde41bc7 16-Nov-2023 Daniil Gentili

Report fatal error if JIT cannot be enabled

Closes GH-12403

# d20c8496 22-Nov-2023 Dmitry Stogov

Update according to IR changes

# f2706a8f 16-Nov-2023 Pengfei Li <45187772+pfustc@users.noreply.github.com>

JIT/AArch64: Fix an undefined symbol issue (#12687)

In AArch64 function `zend_jit_set_veneer()`, some debug code calls two
other functions `ir_disasm_find_symbol()` and `ir_disasm_add_sy

JIT/AArch64: Fix an undefined symbol issue (#12687)

In AArch64 function `zend_jit_set_veneer()`, some debug code calls two
other functions `ir_disasm_find_symbol()` and `ir_disasm_add_symbol()`
defined in `ir_disasm.c`. However, `ir_disasm.c` is compiled under the
condition that capstone is available. This causes an undefined symbol
issue while loading `opcache.so` when JIT is triggered if PHP is built
without `--with-capstone`.

We find this issue on MacOS 12.5 if we build PHP with Clang 14. It does
not appear immediately when using other versions of toolchains because
of lazy binding. To reproduce this with Linux/GCC, we can disable lazy
binding by `export LD_BIND_NOW=1` before building PHP.

This fixes the issue by making the debug code conditionally compile.

show more ...

# 94f32df8 14-Nov-2023 Dmitry Stogov

Fixed compilation warning

# cc2bf119 13-Nov-2023 David CARLIER

zend: introducing ZEND_ELEMENT_COUNT for struct's dynamic arrays. (#12650)

zend: introducing ZEND_ELEMENT_COUNT for struct's dynamic and flexible arrays.

It is mostly for ubsan and

zend: introducing ZEND_ELEMENT_COUNT for struct's dynamic arrays. (#12650)

zend: introducing ZEND_ELEMENT_COUNT for struct's dynamic and flexible arrays.

It is mostly for ubsan and helping array bound checking.

show more ...

# 524b1346 08-Nov-2023 Dmitry Stogov

Fixed failure in generator related tests on Mac introduced by 8ef695795c2489070558a3c8ed7024ac038728e5

123