1
0
mirror of https://github.com/php/php-src.git synced 2026-04-26 17:38:14 +02:00
Commit Graph

466 Commits

Author SHA1 Message Date
Dmitry Stogov 62ca6b567c Fixed DynASM failure 2020-07-23 12:13:33 +03:00
Dmitry Stogov b0c3ca0e52 Avoid register reloading 2020-07-23 12:08:07 +03:00
Nikita Popov 545928e4b8 Fix some clang warnings 2020-07-23 10:35:40 +02:00
Nikita Popov b6b6e76937 Try to fix 32-bit NTS build 2020-07-23 09:58:17 +02:00
Dmitry Stogov bc1d7b6040 Reserve WIN64 shadow space 2020-07-22 17:49:51 +03:00
Dmitry Stogov c9434a4af2 Separate and fix deoptimization code generator 2020-07-22 15:04:17 +03:00
Dmitry Stogov 2940839d28 Prevent incorrect trasing JIT TSSA usage for range() result type inference 2020-07-22 13:01:11 +03:00
Nikita Popov f90c735957 Drop no-op dasm_growpc() call
This doesn't do anything, as maxpc=0 is passed. However, ubsan
complains about the memset of a null pointer, so avoid it.
2020-07-22 11:11:36 +02:00
Nikita Popov aaedbde8b4 Mark zend_jit_patch memory accesses as unaligned
This prevents ubsan from complaining.
2020-07-22 11:02:24 +02:00
Dmitry Stogov b5e2b64adc Fix deoptimization info and corresponding memory leaks 2020-07-21 22:58:24 +03:00
Dmitry Stogov b44169e9dd Fixed bug #79864 (JIT segfault in Symfony OptionsResolver) 2020-07-21 20:54:33 +03:00
Dmitry Stogov 0e1e991a89 Switch to tracing JIT by default 2020-07-21 16:15:11 +03:00
Dmitry Stogov 7686118212 Fix type recording and side exit information for FE_FETCH_* instructions 2020-07-21 15:39:13 +03:00
Dmitry Stogov be0d912674 Avoid recording of uninitialized variable 2020-07-21 14:11:19 +03:00
Dmitry Stogov 447a098ebb Switch to tracing JIT by default 2020-07-21 12:22:36 +03:00
Dmitry Stogov bb9e3dd6cc Use different temporary register 2020-07-21 12:21:47 +03:00
Dmitry Stogov e527478c3d Fixed support for 64-bit constants 2020-07-21 11:49:15 +03:00
Dmitry Stogov 7cfb141f9d Fixed tracing JIT exception handling 2020-07-21 01:49:01 +03:00
Dmitry Stogov 774bc760af Fixed VM interrupt handling 2020-07-20 23:14:23 +03:00
Dmitry Stogov 4b13985f25 Keep CPU regesters used by deoptimizer 2020-07-20 21:04:14 +03:00
Dmitry Stogov 2b7035e824 Fixed tracing JIT for VM without global register variables 2020-07-20 20:59:31 +03:00
Dmitry Stogov d67adc39a0 Fixed incorrect deoptimization info 2020-07-20 13:49:46 +03:00
Dmitry Stogov 9f0213fff3 Remove old code (BP_VAR_RW warning) 2020-07-20 11:57:19 +03:00
Nikita Popov 59536d5baa Revert "Switch to tracing JIT by default"
This reverts commit 10b09578a8.

This seems to cause many test failures:

Test === operator : different types [tests/lang/operators/operator_identical_basic.phpt]
Test <=> operator : different types [tests/lang/operators/operator_spaceship_basic.phpt]
comparing different variables for equality [Zend/tests/compare_001_64bit.phpt]
comparing different variables for identity [Zend/tests/compare_002_64bit.phpt]
Rebinding of ::getClosure()s [Zend/tests/closure_061.phpt]
comparing different variables (greater than) [Zend/tests/compare_003_64bit.phpt]
comparing different variables (less than) [Zend/tests/compare_004_64bit.phpt]
comparing different variables (greater or equal than) [Zend/tests/compare_005_64bit.phpt]
comparing different variables (smaller or equal than) [Zend/tests/compare_006_64bit.phpt]
Invalid numeric string E_WARNINGs and E_NOTICEs, combined assignment operations [Zend/tests/numeric_string_errors_assign.phpt]
Bug #51819 (Case discrepancy in timezone names cause Uncaught exception and fatal error) [ext/date/tests/bug51819.phpt]
Test all filters returned by filter_list() [ext/filter/tests/033.phpt]
filter_var() and FILTER_VALIDATE_MAC [ext/filter/tests/055.phpt]
Test strrpos() function : usage variations - unexpected inputs for 'needle' argument [ext/standard/tests/strings/strrpos_variation10.phpt]
Test strtr() function : usage variations - empty string & null for 'str' argument [ext/standard/tests/strings/strtr_variation4.phpt]
Test strtr() function : usage variations - unexpected inputs for 'from' argument [ext/standard/tests/strings/strtr_variation6.phpt]
Test strstr() function [ext/standard/tests/strings/strstr.phpt]
2020-07-20 09:45:09 +02:00
Dmitry Stogov 10b09578a8 Switch to tracing JIT by default 2020-07-20 09:17:04 +03:00
Dmitry Stogov 83478d4fe0 Side exit on overflow 2020-07-17 13:03:35 +03:00
Dmitry Stogov 6b2c4be48a JMP optimization 2020-07-17 11:07:22 +03:00
Dmitry Stogov e0af92c16e Eliminate useless exception checks 2020-07-17 10:13:23 +03:00
Dmitry Stogov a167e0426d Eliminate some reference-counting 2020-07-17 00:40:10 +03:00
Dmitry Stogov 925909dc46 cleanup 2020-07-16 20:07:51 +03:00
Dmitry Stogov 03a98d9420 cleanup 2020-07-16 17:09:14 +03:00
Dmitry Stogov d50919a03b Check type guard on result of FETCH_OBJ_R/IS instructions 2020-07-16 15:14:11 +03:00
Dmitry Stogov ebb94af754 Fixed tracing JIT for ASSIGN to typed reference 2020-07-16 00:19:00 +03:00
Dmitry Stogov f74e9a4dd3 Check type guard on result of FETCH_DIM_R/IS instructions 2020-07-15 17:28:46 +03:00
Dmitry Stogov 7c16d11e3c Tracing JIT for SWITCH instructions 2020-07-14 15:15:08 +03:00
Dmitry Stogov ddba2a705e Better support for 64-bit .aword constants 2020-07-14 15:14:21 +03:00
Nikita Popov 8c89f23c45 Use different scratch register
r1 clashes with FCARG1a on Windows, so use a different scratch
register. FCARG2a should be free here. Hopefully fixes the
AppVeyor build.
2020-07-14 10:52:50 +02:00
Dmitry Stogov d4fdf79add JIT for array merging 2020-07-13 12:04:08 +03:00
Nikita Popov 1c5f0b8a16 Check for undef var in verify return jit 2020-07-13 10:05:39 +02:00
Máté Kocsis d30cd7d7e7 Review the usage of apostrophes in error messages
Closes GH-5590
2020-07-10 21:05:28 +02:00
Dmitry Stogov b7dd8679df Fixed tracing JIT miss-compilation 2020-07-10 14:13:53 +03:00
Dmitry Stogov 8d15a2bc8e Restore registers 2020-07-10 12:51:19 +03:00
Ilija Tovilo 9fa1d13301 Implement match expression
RFC: https://wiki.php.net/rfc/match_expression_v2

Closes GH-5371.
2020-07-09 23:52:17 +02:00
Dmitry Stogov c60d0dc2f4 Make tracing JIT to support operator overloading independently from opcache.optimization_level ini directive. 2020-07-09 19:39:12 +03:00
Dmitry Stogov 31258e4550 Fixed register allocation for tests/lang/operators/preinc_basiclong_64bit.phpt 2020-07-09 18:54:36 +03:00
Dmitry Stogov 9d14bdb377 Bad function detection 2020-07-09 17:24:35 +03:00
Dmitry Stogov 5fec1558b5 Prevent trace recorder reenterancing 2020-07-09 16:33:11 +03:00
Dmitry Stogov b4ae5a20b6 Move assert() to right place 2020-07-09 15:56:24 +03:00
Dmitry Stogov 6d8d08f13b Fixed tracing JIT support for extract() 2020-07-09 15:36:25 +03:00
Dmitry Stogov 5872bfc481 Use RIP-relative addressing 2020-07-09 12:40:56 +03:00