Skip to content

v0.3.0

Latest
Compare
Choose a tag to compare
@ptitSeb ptitSeb released this 09 Jul 09:06
· 83 commits to main since this release

What's Changed

  • AVX and AVX2 implemented, along with BMI1, BMI2, ADX, FMA, F16C and RDANDR extension!
  • Introduced BOX64_AVX env. var. to enable/disable AVX extension:
    => BOX64_AVX=1 enable AVX, BMI1, F16C and VAES extension
    => BOX64_AVX=2 also enable AVX2, BMI2, FMA, ADX,VPCLMULQDQ and RDRAND
  • Dynarec: Implemented most AVX/AVX2 and friends in ARM64 Dynarec (using only NEON, so available on all ARM64 CPU)
    => ARM64 Dynarec build have all AVX/AVX2 extensions enabled by default
  • Improved CPUID opcodes, adding a few leaf, fixing same. Returnning an Haswell type of CPU now (was Pentium IV before)
  • Dynarec: Small optim in the emit_pf helper, on all 3 backends
  • Dynarec: ARM64 some fixes to a few opcodes
  • Dynarec: LA64 many new opcodes added, and fixes.
  • Dynarec: RV64 some new opcodes added, many fixes.
  • Dynarec: RV64 Adding some infrastructure to use RVV (if available) for SIMD emulation.
  • Dynarec: Many small changes and fixes around handling of x87, registers and internal jump.
  • WRAPPING: Added a workaround on SDL_GetThreadID to fix a race condition that was happening mostly on LA64 and broke many SDL games
  • WRAPPING: More libs and functions wrapped. Some wrapping fixes too (including a nasty error on some rare libGL functions)
  • WRAPPING: Wayland is now supported. Wine-wayland at least works now
  • Dynarec: LA64 improved LOCK CMPXCHG handling, and better 16Byte LOCK handling too (fixes many Unity3D games)
  • Dynarec: RV64 improved LOCK CMPXCHG handling
  • COSIM: Many fixes and improvment, to make BOX64_DYNAREC_TEST more usable
  • Detect when a Wine program use UnityPlayer.dll to atumaticaly use BOX64_DYNAREC_STRONGMEM=1 (unless it's already set), so more games just work
  • ElfLoader: Added a new type of relocation

Contributions

  • [DYNAREC] Simplified emit_pf helper by @ksco in #1518
  • [LA64_DYNAREC] Fixed LOCK XCHG byte opcode fallback path by @ksco in #1519
  • [LA64_DYNAREC] Fixed some non-lbt flags comutation issues by @ksco in #1520
  • [LA64_DYNAREC] Fixed more issues here and there by @ksco in #1521
  • Wrapped libpsl5 by @zohanzephyr in #1523
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1525
  • [RV64_DYNAREC] Fixed LOCK XCHG byte opcode by @ksco in #1526
  • [LA64_DYNAREC] Added CMPXCHG8B and CMPXCHG16B opcodes by @ksco in #1527
  • [LA64_DYNAREC] Added more opcodes and some fixes too by @ksco in #1528
  • Redirect pthread_yield to sched_yield by @ksco in #1529
  • Workaround on a race condition on SDL_GetThreadID by @ksco in #1530
  • Fix unclosed item list by @Coekjan in #1532
  • Fix typo on box64 config file by @Coekjan in #1533
  • [RV64_DYNAREC] Added more MMX opcodes and some optimizations too by @xctan in #1535
  • Added more MMX opcodes and some optimizations too by @xctan in #1537
  • Wrapped libssh2 by @zohanzephyr in #1538
  • [RV64_DYNAREC] Added more MMX opcodes and some optimizations too by @xctan in #1539
  • [RV64_DYNAREC] Added more MMX opcodes and some optimizations too by @xctan in #1542
  • [LA64_DYNAREC] Fixed 0F C2 CMPPS opcode by @ksco in #1543
  • [RV64_DYNAREC] Fixed LOCK CMPXCHG unaligned version by @ksco in #1544
  • [LA64_DYNAREC] Added LOCK CMPXCHG unaligned version by @ksco in #1545
  • Detects extensions even if dynarec is disabled at runtime by @ksco in #1546
  • [INTERP] Rework on the 16b emulation for LA64 by @ksco in #1547
  • [LA64_DYNAREC] Added more opcodes and fixed ADC opcode by @ksco in #1548
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1549
  • Try to fix mmap64 already defined error in custommem.c by @rtissera in #1552
  • [RV64_DYNAREC] Added more MMX opcodes and some optimizations too by @xctan in #1557
  • [LA64_DYNAREC] Fixed emit_or16 by @ksco in #1559
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1558
  • [LA64_DYNAREC] Fixed LOCK DEC opcode by @ksco in #1560
  • Wrapped libp11-kit by @zohanzephyr in #1562
  • Wrapped libtasn1-6 by @zohanzephyr in #1563
  • [RV64_DYNAREC] Fixed some opcodes caught by cosim by @xctan in #1561
  • Wrapped libnettle8 by @zohanzephyr in #1567
  • [RV64_DYNAREC] Fixed sign extension of 8-bit immediate in 66 opcodes by @xctan in #1568
  • Update README.md by @Pro42good in #1572
  • Update README.md by @Pro42good in #1573
  • Wrapped libunistring2 by @zohanzephyr in #1577
  • Wrapped libhogweed6 by @zohanzephyr in #1579
  • Added more wrapped function to libunistring2 by @zohanzephyr in #1582
  • Fixed some vulkan wrapper functions by @ksco in #1585
  • [DYNAREC_RV64] Fixed 16bit LOCK ADD issue by @ksco in #1584
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1590
  • Fixed some symbols not found error for libc and libresolv wrapping by @ksco in #1591
  • Added more wrapped functions by @zohanzephyr in #1593
  • [RV64_DYNAREC] Fixed and refined F0 81,83 LOCK prefix opcodes by @ksco in #1595
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1597
  • [RV64_DYNAREC] Improved 0F AE opcodes by @ksco in #1596
  • Added more wrapped functions to gmp and idn2 by @zohanzephyr in #1598
  • [RV64_DYNAREC] Fixed potential issue of jump_to_next by @ksco in #1600
  • Update arm64_immenc.c by @salt431 in #1602
  • switch to maintained Pi-Apps-Coders apt repo by @theofficialgman in #1605
  • Add missing wrappings for winewayland.so by @strobo5 in #1599
  • [RV64_DYNAREC] Added unaligned support for F0 /5 LOCK SUB opcode by @ksco in #1607
  • Wrapped pthread_cond_signal with aligned cond like others by @ksco in #1608
  • [RCFILE] Added Goat Simulator profile by @ksco in #1609
  • [RV64_DYNAREC] Fixed regression on D9 E5 FXAM opcode by @ksco in #1616
  • Compile Dynarec With ARMv8-A ASM Flags without Hardware Profile on Android Builds Too by @KreitinnSoftware in #1617
  • small fix for ROR and ROL by @liuli0217 in #1618
  • [RV64_DYNAREC] Detect vector extension by @ksco in #1619
  • [RV64_DYNAREC] Added vector instructions emitter by @ksco in #1621
  • Wrapped more functions by @ksco in #1624
  • Wrapped libsqlite3 by @ksco in #1625
  • Handle .relr.dyn section by @Coekjan in #1626
  • Add missing func declaration: get_first_jump_addr by @Coekjan in #1627
  • Updated box64.box64rc by @Pro42good in #1630
  • [RV64_DYNAREC] Added DF default /4 opcode by @zohanzephyr in #1631
  • [RV64_DYNAREC] modify DF default /4 opcode by @zohanzephyr in #1633
  • [RV64_DYNAREC] Added preliminary RVV infra and PXOR opcode for demonstration by @ksco in #1632
  • [LA64_DYNAREC] Fixed F2 0F 70 PSHUFLW opcode by @ksco in #1634
  • Wrap some functions for libc by @Coekjan in #1635
  • Impl sys_getpgrp & sys_getpgid by @Coekjan in #1637
  • [DYNAREC] Fixed IMUL sign extension issue by @ksco in #1639
  • [VULKAN] Add Wrapped VK_KHR_android_surface by @KreitinnSoftware in #1643
  • Should not follow symlinks on argv[0] path resolution by @Coekjan in #1644
  • [INTERPRETER] Added 64 66 8D opcode and fix 66 8D opcode by @factfinding in #1648
  • Set last_ip to an unclean state at the end of CALL by @ksco in #1650
  • Mask rs2 when using bext instruction if rex.w is not set by @Coekjan in #1653
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1654
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1656
  • [WRAPPED] Added NSS_Init by @rajdakin in #1657
  • [LA64_DYNAREC] Fixed ADC/SBC usage by @ksco in #1658
  • Fixes by @rajdakin in #1659

New Contributors

Full Changelog: v0.2.8...v0.3.0