[php-src] Issue #8992: ENDBR instruction is not correctly disassembled by libudis86
| From: | wxue1 | Date: | Wed, 13 Jul 2022 08:20:01 +0000 |
| Subject: | [php-src] Issue #8992: ENDBR instruction is not correctly disassembled by libudis86 | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-241918@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/8992
Author: wxue1
### Description
Endbr32/endbr64 is enabled by this commit [JIT: Add IBT
support](https://github.com/php/php-src/commit/d8de067b0f5b68ba578041b53ab5d19d6b5b5505).
However, this instruction is not correctly disassembled by libudis86 when opcache.jit_debug is open.
```
TRACE-1$add$3: ; (unknown)
59000b60: invalid
59000b64: mov $EG(jit_trace_num), %rax
59000b6e: mov $0x1, (%rax)
59000b74: cmp $0x4, 0x58(%r14)
59000b79: jnz jit$$trace_exit_0
```
The invalid should be endbr64 here.
I have submitted a PR in the upstream repo [udis86](https://github.com/vmt/udis86/pull/138/files)
and want to fix this. But it seems that the udis86 has not been maintained for many years. So my PR
is not handled.
Could you give me some suggestions?
1. What's the version of libudis86 in PHP and is it possible to modify it directly?
2. Maybe let's contact the maintainer of udis86 together?
### PHP Version
php-8.2.0alpha3
### Operating System
_No response_