Dmitry Stogov
8f4cfe04eb
JIT: Fix named arguments handling
...
Fixes oss-fuzz #41486
2021-11-29 18:37:49 +03:00
Dmitry Stogov
49f44e7ffc
JIT: Fixed use-after-free caused by shift by negative number
...
Fixes oss-fuzz #41192
2021-11-25 22:21:44 +03:00
Dmitry Stogov
f9518c3850
Fixed incorrect narrowing to double
...
Fixes oss-fuzz #41223
2021-11-25 15:14:04 +03:00
Dmitry Stogov
3c53a9fd73
Fixed incorrect refcountion inference for BW_NOT
...
BW_NOT for emtpy string returns empty string
Fixes oss-fuzz #41280
2021-11-25 13:51:56 +03:00
Dmitry Stogov
f302430c72
Fixed incorrect DCE for ADD_ARRAY_ELEMENT instruction
...
DCE might remove INIT_ARRAY instruction but then keep the related
ADD_ARRAY_ELEMENT, becuse its both operands need to be freed.
Fixes oss-fuzz #41309
2021-11-25 13:33:26 +03:00
Dmitry Stogov
fac78ee760
JIT: Fixed memory leak
2021-11-17 13:59:35 +03:00
Dmitry Stogov
48a65fef6f
JIT: Fixed memory lieak
2021-11-17 12:48:56 +03:00
Dmitry Stogov
fc35a6b93c
Tracing JIT: Fixed abstract stack consistency for [QM_]ASSIGN of CV to itself
2021-11-15 23:25:16 +03:00
Dmitry Stogov
292d76d8a4
JIT: Fixed reference-counting inference
2021-11-15 10:39:58 +03:00
Dmitry Stogov
64fde17042
Fixed test
2021-11-12 22:48:50 +03:00
Dmitry Stogov
12d02e6227
Fixed incorrect guard elimination
2021-11-12 21:00:08 +03:00
Dmitry Stogov
64915775a7
JIT: Fixed incorrect MOD into BW_AND optimization
2021-11-10 21:14:41 +03:00
Dmitry Stogov
3081423706
Tracing JIT: Fixed register allocation
...
In case of side exit on ADD/SUB/MUL overflow source registers must be kept unchanged
2021-11-10 20:04:25 +03:00
Dmitry Stogov
3dba5566ce
Tracing JIT: Fixed incorrect assumption about in-memeory zval type
2021-11-10 16:46:09 +03:00
Dmitry Stogov
45683703f1
JIT: Fixed memory leak
2021-11-10 12:49:20 +03:00
Dmitry Stogov
203c1b807e
Tracing JIT: Fixed incorrect tracing type inference
...
There are some cases when IS_VAR/IS_TMP_VAR variables are set to IS_UNDEF.
TODO: It would be better to switch to IS_NULL in master.
2021-11-10 11:10:44 +03:00
Dmitry Stogov
535a0553e8
Fixed incorrect reference counter inference
2021-11-08 20:54:17 +03:00
Dmitry Stogov
8fe808207f
JIT: Fixed incorrect guard elimination
2021-11-08 20:08:39 +03:00
Dmitry Stogov
7bf63243e1
JIT: Fixed incorrect guard elimination
2021-11-08 12:28:36 +03:00
Dmitry Stogov
34d22acc7e
Tracing JIT: Fixed incorrect guard elimination
2021-11-03 23:37:00 +03:00
Dmitry Stogov
66d93c63ff
Fixed type inference for FETCH_DIM_W without use
2021-11-03 19:44:38 +03:00
Dmitry Stogov
2605911272
Tracing JIT: Fixed reference counting when escape because of IS_UNDEF element (test)
2021-11-01 22:19:10 +03:00
Dmitry Stogov
5c43e0c0ee
Fixed incorrect assumption about reference counting
2021-11-01 20:28:05 +03:00
Dmitry Stogov
f1e6a7d83d
JIT: Fixed numeric string index handling
2021-11-01 18:50:32 +03:00
Dmitry Stogov
cd32b47235
JIT: Fixed register allocation in case of integer overflow
2021-11-01 16:46:41 +03:00
Nikita Popov
f8ec5a1d4c
Fix range inference hang
...
We shouldn't switch from range to no range for ZEND_DIV and instead
explicitly return an overflowing range. Otherwise the range will
not actually get updated during widening, and we'll perform
essentially infinite narrowing.
Fixes oss-fuzz #40566 .
2021-11-01 12:31:34 +01:00
Dmitry Stogov
d3251632ad
Tracing JIT: Fixed incorrect assumption about in-memeory zval type
2021-10-22 14:38:38 +03:00
Dmitry Stogov
c7e974fc4e
Tracing JIT: Fixed incorrect assumtion about temporary variable types clobbered by *_ROPE instructions
2021-10-21 21:35:57 +03:00
Dmitry Stogov
95c0dfc57f
JIT: Fixed megamorphic call detection
2021-10-20 22:16:25 +03:00
Dmitry Stogov
38626dbaad
JIT: Fixed memory leak
2021-10-20 10:38:47 +03:00
Dmitry Stogov
6bd5271c62
Fixed incorrect optimization that may cause JIT assertion
2021-10-18 23:18:52 +03:00
Dmitry Stogov
d3063c02c6
Tracing JIT: Fixed memory leak
2021-10-18 22:14:53 +03:00
Dmitry Stogov
e59d0a7151
JIT: Fixed DASM_S_RANGE_VREG error
2021-10-18 17:58:42 +03:00
Dmitry Stogov
13d1244575
Tracing JIT: Fixed ADD with two references to arrays
2021-10-18 17:26:36 +03:00
Dmitry Stogov
6021e72143
Tracinf JIT: Prevnt generation code for instruction that with cyclic dependency
...
e.g. $a[] += $a is compiled into ASSIGN_DIM_OP+OP_DATA, where OP_DATA.op1_use depends on ASSIGN_DIM_OP.op1_def
2021-10-18 16:53:45 +03:00
Dmitry Stogov
a4c41d45cd
Fixed type inference for COPY_TMP
2021-10-11 16:56:07 +03:00
Dmitry Stogov
ccdda69a18
JIT: Fixed usage of incorrect specialized zval destructor
2021-10-11 13:00:23 +03:00
Dmitry Stogov
ed8ec9d71e
Fixed type inference (ASSIGN_OP with typed reference may cause type conversion)
2021-10-11 10:48:49 +03:00
Dmitry Stogov
bbd875268a
JIT: Fixed incorrect double/long register hinting
2021-10-08 15:46:49 +03:00
Dmitry Stogov
7cea20f937
JIT: Fixed FETCH_LIST_R on string
2021-10-07 22:13:39 +03:00
Dmitry Stogov
b47a48ff80
Fixed bug #81512 (Unexpected behavior with arrays and JIT)
2021-10-07 21:24:38 +03:00
Nikita Popov
b564113756
Check exception after undef var notice
...
For simple assignments, we may not emit an exception check elsewhere,
so perform it directly after the undef var notice.
2021-10-07 16:54:26 +02:00
Nikita Popov
08c29a657d
Handle undefined dim in assign_dim_helper
...
Not only the value can be undefined here, but the offset as well.
2021-10-07 15:35:16 +02:00
Nikita Popov
455837139e
Set opline before calling undef op helper
2021-10-07 14:38:02 +02:00
Dmitry Stogov
a743fd7633
JIT: Fixed wrong comparison skip
2021-10-07 15:27:56 +03:00
Dmitry Stogov
6ab36fb6f9
JIT: Fixed incorrect reference handling in PRE_INC/DEC_OBJ
2021-10-07 14:34:18 +03:00
Dmitry Stogov
cd45bd0a81
JIT: Fixed incorrect code generation for JMPZ
2021-10-07 13:48:28 +03:00
Dmitry Stogov
8a0873020a
JIT: Fixed NaN handling
2021-10-06 16:35:33 +03:00
Dmitry Stogov
f681f9075c
JIT: Fixed register clobbering
2021-10-06 12:10:39 +03:00
Nikita Popov
f890c9c5e3
Fix return type verification with undef var
...
This was loading EG(uninitialized_value) into r0 rather than
FCARG1a.
However, if we fix this issue an existing test fails because
the undef var warning promoted to exception is not caught early
enough, so we need to explicitly check for the exception before
performing the type check.
2021-10-05 15:30:55 +02:00