about summary refs log tree commit diff stats
path: root/src/libtools/decopcode.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2025-04-23[ARM64_DYNAREC] Made REP MOVSB optimisation flaglessptitSeb1-4/+4
2025-04-23[ARM64_DYNAREC] Optimized REP STOSBptitSeb2-2/+36
2025-04-23[PERFMAP] Added x86 address of code when function name cannot be found, ↵ptitSeb1-1/+4
instead of ???
2025-04-23[ARM64_DYNAREC] Various improvment to various SSE/AVX 128bits/256bits mov ↵ptitSeb8-89/+144
opcodes
2025-04-23[INTERP] RaZ upper 128bits on vmov* Ex, Gx if Ex is a registry (unused?)ptitSeb2-0/+6
2025-04-22[RBTREE] Fixed an edge case (#2562)rajdakin1-1/+3
2025-04-22[DYNAREC] Added a x87pc test and some cosmetic changes too (#2561)Yang Liu20-158/+130
2025-04-22[LA64_DYNAREC] Add SSSE3's mmx ops. (#2559)phorcys1-0/+162
0f.38.00 PSHUFB 01 PHADDW 02 PHADDD 03 PHADDSW 04 PMADDUBSW 05 PHSUBW 06 PHSUBD 07 PHSUBSW 08 PSIGNB 09 PSIGNW 0a PSIGND 0b PMULHRSW 1c PABSB 1d PABSW 1e PABSD
2025-04-22[ARM64_DYNAREC] Improved (V)[MIN/MAX][S/P][S/D] opcodesptitSeb4-34/+10
2025-04-22[INTERP] Improved (V)[MIN/MAX][S/P][S/D] opcodesptitSeb8-34/+25
2025-04-22[RBTREE] Cache boundary nodes and remove `add_range()` (#2557)Chi-Kuan Chiu1-31/+54
* Cache leftmost and rightmost node Add two fields to `rbtree`: `lefter` and `righter`, to cache the leftmost and rightmost nodes respectively. This eliminates the need for O(log N) traversals in `rb_get_lefter()` and `rb_get_righter()`. Motivated by the Linux kernel's use of cached pointers for `rb_first()` and `rb_last()`, this change improves efficiency of boundary queries by replacing repeated tree walks with direct pointer dereference. Experiment: running `chess.exe` with Box64 + Wine (#2511) - ~3,500 insertions into the tree - 607 lightweight cache updates (single assignment) - 397 full tree traversals avoided This results in reduced runtime overhead for boundary checks, with memory cost (+2 pointer per tree). Expected benefits increase in larger or more dynamic workloads. Ref: https://docs.kernel.org/core-api/rbtree.html * Remove redundant add_range() wrapper The function `add_range()` was only called when `tree->root == NULL`. In such cases, the while-loop inside `add_range()` never runs, resulting in a call to `add_range_next_to()` with `prev == NULL`. Replaced it with direct calls to `add_range_next_to(tree, NULL, ...)`.
2025-04-22[RV64_DYNAREC] Better handling of x87double=2 (#2560)Yang Liu10-1/+47
2025-04-21[ARM64_DYNAREC] Small improvements to (V)MASKMOVDQU opcodeptitSeb2-6/+4
2025-04-21[ARM64_DYNAREC] Better handling of x87double=2ptitSeb10-0/+53
2025-04-21[ARM64_DYNAREC] Fixed potential issue with (V)LDDQU opcodeptitSeb2-3/+3
2025-04-21[DYNAREC] More handling of low precision x87 flag change (#2556)Yang Liu4-2/+8
2025-04-21[INTERP] More fixes to INSERTQ/EXTRQ opcodesptitSeb2-13/+17
2025-04-21[RV64_DYNAREC][TRACE][COSIM] Improve x87 fiability in dynarec trace and ↵Yang Liu1-1/+1
cosim scenario (#2555)
2025-04-21[ARM64_DYNAREC] Add/Improved (V)H[ADD/SUB]P[S/D] opcodesptitSeb6-23/+53
2025-04-21[ENV][COSIM] Enable x87double only if it's off (#2554)Yang Liu1-1/+2
2025-04-21[ARM64_DYNAREC] Small change to 66 0F 3A 17 opcodeptitSeb1-2/+2
2025-04-21[INTERP] Fixed EXTRQ opcodeptitSeb1-3/+3
2025-04-21[ARM64_DYNAREC] Minor cosmetic changesptitSeb2-2/+2
2025-04-21[INTERP] Better NAN handling for (V)DIV[P/S][S/D] opcodesptitSeb3-0/+5
2025-04-21[INTERP] VDPPD has no 256bits versionptitSeb1-12/+2
2025-04-21[RV64_DYNAREC] Added X87DOUBLE=2 support (#2553)Yang Liu22-24/+88
2025-04-21[ARM64_DYNAREC] Another potential fix for X87DOUBLE=2ptitSeb1-1/+1
2025-04-21[ARM64_DYNAREC] Fixed some potential issues with BOX64_DYNAREC_DOUBLE=2ptitSeb3-4/+1
2025-04-21[TRACE] Fixed an issue with a trace on dynablock exiting executionptitSeb1-1/+1
2025-04-20[TRACE] Better trace, using maplile name if available, and better write on a ↵ptitSeb2-2/+5
dynablock memory log
2025-04-20Fixed an issue with custom memory when a map is created for an blockstree ↵ptitSeb1-22/+52
node, avoiding re-entrance on blockstree handling and tree corruption
2025-04-20[DEBUG] Exposed a debug function to print an rbtreeptitSeb2-20/+31
2025-04-20Merge `mmapmem` into `mapallmem` (#2550)Chi-Kuan Chiu1-22/+28
This commit removes the separate `mmapmem` red-black tree and merges its into `mapallmem`, reducing overall memory usage. To distinguish memory regions that were previously tracked separately in `mmapmem`, we now use a new `mem_flag_t` bitmask enum in the data field of `mapallmem`: MEM_ALLOCATED = 1 // allocated MEM_RESERVED = 2 // reserved MEM_MMAP = 3 // allocated via mmap() Resolves #2546
2025-04-19[BOX32][WRAPPER] Removed a debug leftoverptitSeb1-1/+0
2025-04-19[BOX32][WRAPPER] Added a workaround on XF86VidModeGetAllModeLines for 12 ↵ptitSeb1-7/+12
labors of Hercules 6
2025-04-19[BOX32][WRAPPER] Added 32bits wrapped ftime functionptitSeb6-1/+28
2025-04-19[RCFILE] Better profile for Cyberpunk 2077ptitSeb1-1/+2
2025-04-19[INTERP] Added F2 0F BA opcode (for 2547)ptitSeb1-1/+1
2025-04-18Another fix for non-dynarec buildptitSeb1-0/+2
2025-04-18This should fix non-dynarec buildptitSeb1-0/+2
2025-04-18[DYNAREC] Better dynablock mempry handling, and fixed a regression ↵ptitSeb1-7/+7
introduced when improving dynmem rbtree
2025-04-18Also preserve flags stuffs on signal handling when neededptitSeb1-1/+29
2025-04-18[DYNAREC][TRACE] Slightly better trace message on creating dynablockptitSeb1-2/+2
2025-04-18[LA64_DYNAREC]Add/opt more SSE/MMX ops (#2543)phorcys2-24/+60
* Add SSE2 op MASKMOVDQU. * Opt PSADBW. * Add SSE3 HSUBPD op. * Add mmx PALIGNR op. * Fix PSRLDQ. * Fix PSRAW Gx,Ex PSRAW Gm,Em. mmx/sse get COUNT from Em/Ex as an 64bit unsigned... testsuite with shift 0x4,0x4,0x4,0x4, result COUNT as 0x04040404.
2025-04-18[DYNAREC] Small improvment to callret=2 handling of path to regen a blockptitSeb2-2/+5
2025-04-18Removed a function not used anymoreptitSeb1-14/+0
2025-04-18[MMAP] Better guessing of wine process mapping regionsptitSeb1-10/+14
2025-04-17[WOW64] Finished skeleton code for PE build (#2542)Yang Liu37-13/+2834
* [WOW64] Finished skeleton code for PE build * move musl to external
2025-04-17[LA64_DYNAREC] Add SSE1/SSE2's cvt mmx ops. (#2538)phorcys2-0/+166
2025-04-16[WOW64] More tweaks to CMake PE build (#2541)Yang Liu8-18/+1515