mirror of
https://github.com/pound-emu/pound.git
synced 2025-12-19 13:36:58 +00:00
jit/decoder: Fix decoder hash logic
Fixes `relevant_mask` calculation in arm32_init() to use bitwise AND instead of OR. The previous logic incorrectly validated bits outside the hash region, preventing valid instructions like 'BX` from being added to the lookup table. Increased LOOKUP_TABLE_MAX_BUCKET_SIZE from 8 to 16. Instructions with wildcard bits in the hash region (eg, AND, EOR) must map to multiple buckets to ensure O(1) lookup. Signed-off-by: Ronald Caesar <github43132@proton.me>
This commit is contained in:
parent
27710ca8c9
commit
2ea7647dc2
3 changed files with 339 additions and 10 deletions
|
|
@ -12,6 +12,7 @@ int main()
|
|||
pound::jit::decoder::arm32_decode(0xE2800001);
|
||||
/* Sub r0, r0, #1 */
|
||||
pound::jit::decoder::arm32_decode(0xE2400001);
|
||||
pound::jit::decoder::arm32_decode(0xE12FFF1E);
|
||||
//pound::jit::ir::opcode_init();
|
||||
|
||||
#if 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue