Commit Graph

1274 Commits

Author SHA1 Message Date
Herman S.
83ff0c501b [CPU] Set VSCR NJ (non-Java) bit 2026-02-14 00:59:45 +09:00
Herman S.
11815400cd [CPU] Fix f16 pack rounding and SHORT_2 test input
Add round-to-nearest-even to the fast float16 pack path by folding a
0xFFF rounding bias into XMMF16PackLCPI0 and extracting bit 13 of the
source as the tie-breaker, matching the software fallback behavior.

Fix PACK_SHORT_2 test to use pre-biased float input (0x40400000 = 3.0)
as the hardware expects, rather than raw 0.0f which is out of range.
2026-02-14 00:48:16 +09:00
Herman S.
bb70e5c651 [CPU] Fix incorrect all_same detection in constant vector shift paths
The loop conditions `n < 8 - n` and `n < 4 - n` terminated early,
only checking the first half of elements. This caused EmitInt16 and
EmitInt32 to incorrectly take the uniform shift path when trailing
elements had different shift amounts.

Resolves potential issues in SHL, SHR, and SHA.
2026-02-14 00:35:09 +09:00
Herman S.
10e8224a63 [CPU] Use RAII lock_guard in GuestTrampolineGroup 2026-02-14 00:17:45 +09:00
Herman S.
643c13668d [CPU] Correctly zero extend instead of sign extending
When performing unsigned multiplication on Linux/GCC,
the code incorrectly cast constant.i64 (which is a signed int64_t)
to unsigned __int128. This caused sign extension when
the value should be treated as unsigned.
2026-02-13 23:54:51 +09:00
Herman S.
7912eab85e [CPU] Check for null when returning machine code ptr 2026-02-13 23:53:01 +09:00
Herman S.
dad5f327bf [CPU] Fix off by one in bsearch 2026-02-13 23:33:40 +09:00
Herman S.
3a6f63f34f Revert "[x64] Zero extend on mov to 8bit register"
This reverts commit 88b0aea272.

(It needs to be applied after xbyak update)
2026-02-13 23:13:07 +09:00
Herman S.
1182f9d73d [x64] Add software fallback for PACK_FLOAT16_4
Current implementation has an off by 1 in rounding, should
round up to even but doesn't. Need to figure out how to implement
it properly so just leaving the software version here for later
verification.
2026-02-13 21:48:42 +09:00
Herman S.
374ec3634e [x64] Implement f32 arithmetic and tests
Probably not needed but doesn't hurt to be complete
2026-02-13 21:48:01 +09:00
Herman S.
fdb32b909f [x64] Remove AVX512 optimization for vrefp
The precision is too low so it's more trouble than it's worth.
2026-02-13 21:13:39 +09:00
Herman S.
77e320f79a [x64] Fix AVX2 optimization path for VECTOR_SHL_V128
Ensure the optimized path matches the fallback behavior
2026-02-13 20:40:48 +09:00
Herman S.
b3a131698c [x64] Fix AVX512 optimization path for vadduws 2026-02-13 19:57:44 +09:00
Herman S.
70c1092195 [x64] Fix AVX-512 vctuxs NaN handling
(using ordered comparison predicate)
2026-02-13 19:31:08 +09:00
Herman S.
f95ebb9c55 [x64] Fix mismatched operand sizes in CNTLZ fallback 2026-02-13 19:29:21 +09:00
Herman S.
88b0aea272 [x64] Zero extend on mov to 8bit register 2026-02-13 17:20:31 +09:00
Herman S.
15f61a1a10 [x64] Fix vector mask issue and add missing tests 2026-02-13 17:07:03 +09:00
Herman S.
435ea98a5a [Testing] Make sure tests clean up shm resources on exit 2026-02-13 15:22:43 +09:00
Herman S.
532418eed4 [Tests] Fix broken xenia-cpu tests 2026-02-13 15:20:19 +09:00
Herman S.
63d06a6083 [Testing] Ensure memory is fully initialized for stwcx test 2026-02-13 15:19:41 +09:00
Herman S.
d6a4493d5b [Testing] Add more instruction tests 2026-02-13 15:19:23 +09:00
Herman S.
2bb7c8dbf5 [Testing] Fix tests to use opcode mnemonics 2026-02-13 15:08:07 +09:00
Herman S.
ab182d4044 [Testing] Fix vsel128 and vnor128 tests 2026-02-13 15:07:55 +09:00
Herman S.
1b25574986 [Testing] Add a lot more missing instruction tests 2026-02-13 14:49:49 +09:00
Herman S.
4832bb485f [Testing] Add some lvx* tests 2026-02-13 13:59:49 +09:00
Herman S.
32b0e2c323 [Testing] Add missing control instruction tests 2026-02-13 13:59:40 +09:00
Herman S.
72f81b56c7 [Testing] Add missing ALU instruction tests 2026-02-13 13:59:32 +09:00
Herman S.
4a954506c6 [Testing] Add vpkpx tests 2026-02-13 13:59:23 +09:00
Herman S.
c0d1723469 [Testing] Add vlogefp tests 2026-02-13 13:59:14 +09:00
Herman S.
b6af8ed545 [Testing] Add more tests for logic, conversion and fp instructions 2026-02-13 13:59:05 +09:00
Herman S.
910157f6e0 [Testing] add more arithmetic instruction tests 2026-02-13 13:58:56 +09:00
Herman S.
4c7d152fee [Testing] Add missing avg and min/max tests 2026-02-13 13:58:45 +09:00
Herman S.
3461f2578b [Testing] add missing saturate arithmetic tests 2026-02-13 13:58:36 +09:00
Herman S.
f455b0b3c8 [Testing] add missing integer and rotation tests 2026-02-13 13:58:22 +09:00
Herman S.
09a15fbedc [Testing] Get tests running (dirty hack for linux) 2026-02-13 13:32:39 +09:00
Gliniak
14c2814654 [CPU] Fixed bug in VECTOR_SHL_V128 implementation
- For EmitInt8 there was missing check for & 7 which was causing graphical glitches in movies

- There is probably similar bug in 16/32 version, but that's for another commit
2026-02-11 22:41:36 +01:00
Gliniak
a74fe21f76 [CPU] Disable context promotion only for vertex type 2026-01-28 07:49:39 +01:00
Gliniak
702fbc8adb [CPU/X64] Fixed random on boot crashes related to rsp not being aligned
vmovaps returns failure if it encounters unaligned memory.
Alignemnt must be done on 16 bytes, but sometimes rsp ends with 8
2025-11-09 21:59:46 +01:00
Gliniak
f1d444dd99 [CPU/X64] Added const path for indirect call
This prevents having false-positive logs about invalid handling

This case should only happen on deadend paths of code like calling 0
2025-11-01 19:18:45 +01:00
Gliniak
1ad35e4d61 [CPU/X64] Added missing const path to Emit8_IN_16 2025-11-01 17:39:10 +01:00
Gliniak
906c0b8fa6 [CPU] Fixed issue with const path in AVX512 vector left rotate.
- Added logging in case of similar issues
2025-10-28 17:43:21 +01:00
Gliniak
7d8ac86f6c [CPU] Do not return error code from unimplemented overflows checks
Debug assertion and log message still appears
2025-10-24 19:31:19 +02:00
Margen67
765073021a [CPU/XEX] Use fmt to make hash string, check size 2025-08-22 06:22:07 -07:00
Gliniak
c4bd676c5e Merge branch 'master' of https://github.com/xenia-project/xenia into canary_experimental 2025-08-15 15:37:50 +02:00
Margen67
8b6cb9c287 [Premake, 3PP] Formatting/cleanup 2025-08-11 21:03:31 -07:00
Gliniak
2969a04145 [Kernel] Added support for loading modules before main 2025-08-03 20:40:30 +02:00
guccigang420
9ae3a72500 [CPU/HIR] Fixed MulHi in value.cc for Linux systems 2025-07-30 23:47:17 +03:00
Margen67
4a5f63650d Add .py file extension to Python 2025-07-28 23:54:52 -07:00
Margen67
25d6f8269a [premake] Cleanup 2025-07-27 02:46:43 -07:00
Margen67
3eef564ff8 [format] Require EOF newline 2025-07-19 14:42:21 -07:00