1
0
mirror of https://github.com/php/php-src.git synced 2026-04-25 00:48:25 +02:00
Commit Graph

1958 Commits

Author SHA1 Message Date
Dmitry Stogov e9e6eb714e Merge branch 'PHP-8.3'
* PHP-8.3:
  Fixed GH-12748: Function JIT emits "could not convert to int" warning at the same time as invalid offset Error
2023-11-22 13:26:25 +03:00
Dmitry Stogov 6f355c6c79 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Fixed GH-12748: Function JIT emits "could not convert to int" warning at the same time as invalid offset Error
2023-11-22 13:26:07 +03:00
Dmitry Stogov 2d65d714a3 Fixed GH-12748: Function JIT emits "could not convert to int" warning at the same time as invalid offset Error 2023-11-22 13:19:10 +03:00
Dmitry Stogov b50aa63a08 Merge branch 'PHP-8.3'
* PHP-8.3:
  Fixed GH-12747: Function JIT returns invalid error message for coalesce operator on invalid offset
2023-11-22 13:02:18 +03:00
Dmitry Stogov f48ab6a66f Fixed GH-12747: Function JIT returns invalid error message for coalesce operator on invalid offset 2023-11-22 13:01:35 +03:00
Dmitry Stogov d20c8496e9 Update according to IR changes 2023-11-22 12:13:29 +03:00
Dmitry Stogov acda3af045 Update IR
IR commit: 18a3192604d9475cee833c6f94079d31015a9754
2023-11-22 12:12:42 +03:00
Pengfei Li f2706a8f30 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.
2023-11-16 11:57:09 +03:00
Dmitry Stogov 94f32df866 Fixed compilation warning 2023-11-14 12:22:38 +03:00
David CARLIER cc2bf11951 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.
2023-11-13 12:42:45 +00:00
Dmitry Stogov 8349835e68 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Backport fix for GH-12512: JIT Assertion `info & (1 << type)' failed (#12660)
2023-11-13 13:28:48 +03:00
Dmitry Stogov db26aee801 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Backport fix for GH-12512: JIT Assertion `info & (1 << type)' failed (#12660)
2023-11-13 13:27:11 +03:00
Dmitry Stogov c60c2a0d67 Backport fix for GH-12512: JIT Assertion `info & (1 << type)' failed (#12660) 2023-11-13 13:26:17 +03:00
Dmitry Stogov a1cd010b12 Fix mistakes introduced in 886dd7c06f 2023-11-10 01:18:19 +03:00
Dmitry Stogov 886dd7c06f Improve fix for GH-12512: JIT Assertion `info & (1 << type)' failed 2023-11-09 23:21:38 +03:00
Dmitry Stogov 524b134607 Fixed failure in generator related tests on Mac introduced by 8ef695795c 2023-11-08 13:06:15 +03:00
Dmitry Stogov 01f24bb708 Fix incorrect trace type inference in a false loop
Fixes oss-fuzz #63846
2023-11-08 11:19:52 +03:00
Dmitry Stogov 11f46117d0 IR Update
IR commit: 1eaf5531e5f728b9519190bcf7906c9c9c9168ec
2023-11-08 10:25:02 +03:00
Dmitry Stogov b88d38787b Revert "Fix incorrect trace type inference in a false loop"
This reverts commit 7f06a9daa2.
2023-11-07 18:29:26 +03:00
Dmitry Stogov 7f06a9daa2 Fix incorrect trace type inference in a false loop
Fixes oss-fuzz #63846
2023-11-07 17:29:10 +03:00
Dmitry Stogov 8ef695795c Fixed GH-12623: Segmentation fault in ZEND_DO_UCALL_SPEC_RETVAL_USED_HANDLER 2023-11-07 16:15:22 +03:00
Dmitry Stogov 3a3d83625b Fixed IR construction
Fixes oss-fuzz #63857
2023-11-07 13:25:09 +03:00
Dmitry Stogov a30d809290 Fixed incorrect dead edge elimination during IR construction
Fixes oss-fuzz #63931
2023-11-07 11:41:23 +03:00
Dmitry Stogov fa59bbe662 Update IR
IR commit: ec588537889c84a4ec649a6f1aa9d7f1bfea7b4d
2023-11-07 11:40:11 +03:00
Dmitry Stogov 93ed314432 Fixed incorrect type stores 2023-11-06 15:20:26 +03:00
Dmitry Stogov 3844593bfb An attempt to fix GH-12512 2023-11-03 13:49:50 +03:00
Dmitry Stogov 77312d8ea1 Fixed assertion 2023-11-03 02:16:08 +03:00
Dmitry Stogov 7aa9ef7d12 Fixed incorrect type assumption
Fixes oss-fuzz #63809
2023-11-02 22:33:01 +03:00
Dmitry Stogov 1226fe027a Fixed codegeneration for ISSET_ISEMPTY_DIM
Fixes oss-fuzz #63805
2023-11-02 19:48:04 +03:00
Dmitry Stogov 4fce8c83bc Merge branch 'PHP-8.3'
* PHP-8.3:
  Don't JIT after fatal errors
2023-11-02 14:15:13 +03:00
Dmitry Stogov 83bbea7c5b Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Don't JIT after fatal errors
2023-11-02 14:15:05 +03:00
Dmitry Stogov bbf2fc99a3 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Don't JIT after fatal errors
2023-11-02 14:14:48 +03:00
Dmitry Stogov 77a497d56a Don't JIT after fatal errors 2023-11-02 14:14:12 +03:00
Dmitry Stogov 1b846f89b9 Fixed GH-12584: Assertion `ctx->control' failed with new JIT and CALL
VM`
2023-11-01 17:19:17 +03:00
Dmitry Stogov d7fc3ab07f Fixed GH-12585: Assertion t->stack_map[t->exit_info[exit_point].stack_offset + var].type == 4 2023-11-01 16:11:54 +03:00
Dmitry Stogov aa7465a435 Fixed missed type store
Fixes oss-fuzz #63601
2023-11-01 14:26:01 +03:00
Dmitry Stogov 2782577c4f Prevent starting JIT on AArch64 with buffuer aize above 128M
B and BL instructions are limited by 128M offset
2023-10-31 21:42:25 +03:00
Dmitry Stogov 93d5c0e946 Fixed missed type store 2023-10-31 17:55:37 +03:00
Dmitry Stogov cefe9e4ef4 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Backport fix for incorrect assumption about in-memory zval type
2023-10-31 11:59:17 +03:00
Dmitry Stogov 4b82ed4387 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Backport fix for incorrect assumption about in-memory zval type
2023-10-31 11:59:08 +03:00
Dmitry Stogov 455a967934 Backport fix for incorrect assumption about in-memory zval type 2023-10-31 11:56:01 +03:00
Dmitry Stogov ed37ab9d14 Fixed codegeneration for NOT
Fixes oss-fuzz #63749
2023-10-31 08:34:14 +03:00
Dmitry Stogov 93c57af778 Fixed GH-12560: Assertion `0 && "too long jmp distance"' failed with new JIT on AArch64 2023-10-30 21:39:29 +03:00
Dmitry Stogov 411b6fb4e6 Fixed codegeneration for PRE_DEC
Fixes oss-fuzz #63713
2023-10-30 20:41:04 +03:00
Dmitry Stogov 52480b3a79 Fixed incorrect assumption about in-memory zval type 2023-10-30 17:54:30 +03:00
Dmitry Stogov bd183a4069 Fixed codegeneration for MATCH
Fixes oss-fuzz #63681
2023-10-30 12:57:31 +03:00
Dmitry Stogov e482785886 Fixed codegeneration for FETCH_DIM_IS
Fixes oss-fuzz #63666
2023-10-30 11:53:43 +03:00
Dmitry Stogov c8cb68ad0a Fixed codegenertion for FETCH_DIM_W
Fixes oss-fuzz #63664
2023-10-30 11:19:49 +03:00
Dmitry Stogov c19347a0d3 Fixed incorrect trace type inference
Fixes oss-fuzz #63623
2023-10-27 16:12:18 +03:00
Dmitry Stogov e95faaeebd Fixed codegeneration for IDENTICAL
Fixes oss-fuzz #63618
2023-10-26 23:14:30 +03:00