History log of /PHP-8.3/ext/opcache/jit/zend_jit_arm64.dasc (Results 101 – 125 of 325)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# c5ded136 24-Aug-2021 Dmitry Stogov

JIT: Code generation for ROPE_INIT, ROPE_ADD and ROPE_END with STRING operands


Revision tags: php-7.4.23, php-8.0.10, php-7.3.30, php-8.1.0beta3
# 1ffbb737 13-Aug-2021 Dmitry Stogov

Better specialization for packed/hash arrays

- improved packed/hash inference.
- added hash guards for ASSIGN_DIM, ASSIGN_DIM_OP, FETCH_DIM_W* instructions
- more accurate invariant

Better specialization for packed/hash arrays

- improved packed/hash inference.
- added hash guards for ASSIGN_DIM, ASSIGN_DIM_OP, FETCH_DIM_W* instructions
- more accurate invariant type guards motion
- invariant packed/hash guards motion
- rename MAY_BE_ARRAY_HASH into MAY_BE_ARRAY_NUMERIC_HASH and add MAY_BE_ARRAY_STRING_HASH
- cleanup

show more ...


# 94b80018 12-Aug-2021 Dmitry Stogov

Fixed conditional jump on uninitialised value (Zend/tests/match/028.phpt failure with function JIT)


# c39332d7 12-Aug-2021 Dmitry Stogov

Fixed incorrect condition


# 57e2241c 12-Aug-2021 Dmitry Stogov

JIT: Use zend_hash_index_lookup() instead of zend_hash_index_add_new(EG(uninitialized_zval))


Revision tags: php-8.0.10RC1, php-7.4.23RC1, php-8.1.0beta2, php-8.0.9, php-7.4.22
# ae8647d9 20-Jul-2021 Levi Morrison

Remove leading underscore for _zend_hash_find_known_hash (#7260)

Convert zend_hash_find_ex(..., 1) to zend_hash_find_known_hash(...)
Convert zend_hash_find_ex(..., 0) to zend_hash_find(.

Remove leading underscore for _zend_hash_find_known_hash (#7260)

Convert zend_hash_find_ex(..., 1) to zend_hash_find_known_hash(...)
Convert zend_hash_find_ex(..., 0) to zend_hash_find(...)

Also add serializable changes to UPGRADING.INTERNALS summary

show more ...


Revision tags: php-8.1.0beta1, php-7.4.22RC1, php-8.0.9RC1, php-8.1.0alpha3, php-7.4.21, php-7.3.29, php-8.0.8, php-8.1.0alpha2, php-7.4.21RC1, php-8.0.8RC1, php-8.1.0alpha1
# 6780aaa5 02-Jun-2021 Nikita Popov

Implement readonly properties

Add support for readonly properties, for which only a single
initializing assignment from the declaring scope is allowed.

RFC: https://wiki.php.net

Implement readonly properties

Add support for readonly properties, for which only a single
initializing assignment from the declaring scope is allowed.

RFC: https://wiki.php.net/rfc/readonly_properties_v2

Closes GH-7089.

show more ...


# 052af90b 09-Jun-2021 Kamil Tekiela

Deprecate autovivification on false

Deprecate automatically converting "false" into an empty array
on write operands. Autovivification continues to be supported
for "null" values, as

Deprecate autovivification on false

Deprecate automatically converting "false" into an empty array
on write operands. Autovivification continues to be supported
for "null" values, as well as undefined/uninitialized values.

RFC: https://wiki.php.net/rfc/autovivification_false

Closes GH-7131.

Co-authored-by: Tyson Andre <tysonandre775@hotmail.com>
Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>

show more ...


# 4743c7a1 01-Jul-2021 Dmitry Stogov

JIT/ARM64: Fixed incorrect trace linking.


# ff983131 30-Jun-2021 Dmitry Stogov

JIT/ARM64: Fixed possible incorrect exception catching in function JIT.


# 3e164dee 23-Jun-2021 Hao Sun

JIT/AArch64: Support shifted immediate (#7165)

* JIT/AArch64: Support shifted immediate

As pointed out by MikePall in [1], shifted immediate value is supported.
See [2]. For exa

JIT/AArch64: Support shifted immediate (#7165)

* JIT/AArch64: Support shifted immediate

As pointed out by MikePall in [1], shifted immediate value is supported.
See [2]. For example, `add x0, x1, #4096` would be encoded by DynASM
into `add x0, x1, #1, lsl #12` directly.

In this patch, a helper is added to check whether an immediate value is
in the two allowed ranges: (1) 0 to 4095, and (2) LSL #12 on all the
values from the first range.

Note that this helper works for add/adds/sub/subs/cmp/cmn instructions.

[1] https://github.com/LuaJIT/LuaJIT/pull/718
[2]
https://github.com/LuaJIT/LuaJIT/blob/v2.1/dynasm/dasm_arm64.lua#L342

Change-Id: I4870048b9b8e6c429b73a4803af2a3b2d5ec0fbb

* Deprecatd CMP_IMM/ADD_SUB_IMM and add test cases

Macros CMP_IMM and ADD_SUB_IMM are deprecated and instead we use
this helper to guard the immediate encoding.

Add two 64-bit only test cases, since 64-bit integers are used
and tested inside.

Change-Id: I0b42d4617b40372e2f4ce5b6ad31a4ddb7d89e49

show more ...


# d72c320f 17-Jun-2021 Dmitry Stogov

JIT/ARM64: Fixed possible incorrect register allocation


# 82bcc9b4 17-Jun-2021 Dmitry Stogov

JIT/ARM64: Fixed "may be used uninitialized" compilation warning


# 3a782595 16-Jun-2021 Dmitry Stogov

JIT: Avoid too aggressive loop unrolling

This fixes tests/func/010.phpt failure with tracing JIT on ARM64.


# 53994892 09-Jun-2021 Dmitry Stogov

Typo


# cd90655e 09-Jun-2021 Dmitry Stogov

JIT/ARM64: Remove redundand x86 specific optimization for recursive calls

On ARM64 we always load "func" into REG0


# af319b07 09-Jun-2021 Dmitry Stogov

JIT/ARM64: Improve JIT for MOD instruction.

Eliminate x86 specific register constrints (idiv imlicitly used
%eax and %rdx). On ARM64 we use reserved TMP registers.


# 3fa0c99a 09-Jun-2021 Dmitry Stogov

JIT/AArch64: Use only reserved TMP registers for EG(vm_interrupt) checks.

This removes limitation of REG0 usage for register-allocation.


# 029d0699 09-Jun-2021 Dmitry Stogov

JIT/AArch64: Use only reserved TMP registers for EG(jit_trace_num) assignment.

This eliminates a need for checking CPU registers used at the entry to a
side trace.


# ac80aeb3 09-Jun-2021 Hao Sun

JIT/AArch64: Use 'tbnz/tbz' to check the signedness (#7123)

'tbnz/tbz' instruction can be used to check whether a given W or X
register value is negative or positive.

For exampl

JIT/AArch64: Use 'tbnz/tbz' to check the signedness (#7123)

'tbnz/tbz' instruction can be used to check whether a given W or X
register value is negative or positive.

For example,
```
tst x0, x0
blt >1
```
can be optimized as `tbnz x0, #63, >1`

It's important to note that the jump range of 'tbnz/tbz' is limited, and
it's better NOT to use 'tbnz/tbz' if the target of 'b.cond' is a label
in section .cold_code or a global label, such as the instruction
sequence `tst RETVALw, RETVALw; blt ->trace_halt` at function
zend_jit_trace_exit_stub(), and the instruction sequence `tst REG0,
REG0; blt >7` at function zend_jit_incdec_obj().

Minor updates:
Use macros BW_OP_32_WITH_CONST and GC_ADDREF at function
zend_jit_push_call_frame().

Change-Id: I1597609bdabf55ea2f9d24528e7a037bc3e5c3a1

show more ...


# c1bf4b3e 09-Jun-2021 Hao Sun

JIT/AArch64: Fix codestyle issues (#7125)

Fix codestyle issues, such as aligning comments, changing whitespace to
tab, adding necessary whitespace.

Change-Id: I0c6ae1e5d87a0f683

JIT/AArch64: Fix codestyle issues (#7125)

Fix codestyle issues, such as aligning comments, changing whitespace to
tab, adding necessary whitespace.

Change-Id: I0c6ae1e5d87a0f6832bc776294558d48a9b5d420

show more ...


# 9c7797eb 07-Jun-2021 Dmitry Stogov

JIT/AArch64: Complete logical_immediate_p() using DynAsm helpers


# 4e0165e7 07-Jun-2021 Dmitry Stogov

JIT/AArch64: Use LSL instruction (DynAsm was fixed by
2963214c15de46f35797b87bb3a84a35c2928f01)


# c995a359 07-Jun-2021 Hao Sun

JIT/AArch64: Use 'shifted register' if available (#7108)

One shift instruction can be saved if 'shifted register' is used.

It's worth noting that the destination register of previou

JIT/AArch64: Use 'shifted register' if available (#7108)

One shift instruction can be saved if 'shifted register' is used.

It's worth noting that the destination register of previous shift
instruction doesn't hold the shift result any longer now. And we have to
guarantee that 'shifted register' mode is applied to all the use sites
of this destination register.

Besides, several code-style issues are fixed.

Change-Id: I8bcdd092253d342d383732a926512e761e453808

show more ...


# 28b4f58d 07-Jun-2021 Hao Sun

JIT/AArch64: Optimize add+ldr to ldr (#7109)

This patch is trivial.

Change-Id: I51b8eb5f12446643a53cc569d9398d0941a2f588


12345678910>>...13