Commit Graph
15322 Commits
Author SHA1 Message Date
Ryan Houdek 465395dede OpcodeDispatcher: Implement SLDT
Not 100% correct because the Linux kernel has some cheeky false data
return value when an LDT gets installed. But FEX can't really do it
properly today so whatever.
2026-10-22 15:29:16 -07:00
Ryan Houdek 4e2b509a42 Merge pull request #6052 from Sonicadvance1/283
HostFeatures: Make a stronger distinction between CPU features and Process features
2026-10-21 16:57:04 -07:00
Ryan Houdek 888bd7f55d InstcountCI: Update 2026-10-21 16:34:31 -07:00
Ryan Houdek cbcb003425 HostFeatures: Make a stronger distinction between CPU features and Process features
We want to have two distinct control knobs here. CPU features that don't
change between Linux, Wow64, Arm64ec, and additional options that change
depending on the process environment.

This distinction was a /bit/ muddy where I added
`SupportsFaultFreeSynchronousFaults` to the wrong side of that. Make it
more distinct by logically splitting it out so that HostType, the
fault-free-faults, and added Is64BitMode all lives together.

This lets the DiskCache code which is hashing these variables look a bit
nicer and also correctly logically separate the two halves.
2026-10-21 16:34:29 -07:00
Ryan Houdek 89713ba3c0 Merge pull request #6053 from javelina-pkwy/fix/group1-0x82-alu
Decoder: Fix alias issue with 0x82 opcode
2026-10-21 16:14:35 -07:00
Ryan Houdek 24987bed72 Merge pull request #6047 from javelina-pkwy/perf/knuth-div
ALUOps: Inline 128 bit division
2026-10-21 16:13:36 -07:00
Justin Becker 7974346a7e Tests: add locked form 2026-10-21 15:53:09 -07:00
Justin Becker 0a448176dc clang-format 2026-10-21 15:42:07 -07:00
Justin Becker 5d6699e58b Tests: check the x64 sigill behavior for this alias 2026-10-21 15:42:07 -07:00
Justin Becker 7b909d31e2 OpcodeDispatcher: Handle 0x82 alias for 0x80 in x86 mode 2026-10-21 15:42:07 -07:00
Justin Becker 9cb94e1efe Oops: didn't update InstructionCountCI correctly 2026-10-21 15:31:55 -07:00
Justin Becker eedb8be51a NIT: Clarify comment 2026-10-21 15:31:55 -07:00
Justin Becker 01b344b444 JIT: Slightly shorter path for EmitDivllu 2026-10-21 15:31:55 -07:00
Justin Becker 646c442b85 DiskCache: Bump version 2026-10-21 15:31:55 -07:00
Justin Becker d21ae973ae Tests: add DIV tests 2026-10-21 15:31:12 -07:00
Justin Becker 9f7913edb8 JIT: Inline 128 bit unsigned divide
Testing on X2 Elite suggests a ~4x speedup by this technique
2026-10-21 15:31:12 -07:00
Ryan Houdek ca389e06a6 code-format-helper: More dependabot things 2026-10-21 14:26:32 -07:00
LC 805f44b8d5 Merge pull request #6050 from Sonicadvance1/281
CPUID: Add new Apple Silicon names
2026-10-21 16:42:16 -04:00
LC 80e28a1e2e Merge pull request #6051 from Sonicadvance1/282
code-format-helper: More dependabot things
2026-10-21 16:41:28 -04:00
Ryan Houdek 21b098c44b code-format-helper: More dependabot things 2026-10-21 13:01:05 -07:00
Ryan Houdek 2ac75c26c8 CPUID: Add new Apple Silicon names 2026-10-21 12:56:06 -07:00
LC 3b7daa5e8d Merge pull request #6048 from Sonicadvance1/280
Implement support for AVX_NE_Convert
2026-10-20 22:05:02 -04:00
Ryan Houdek 407e78e69c InstcountCI: Update and add AVX_NE_CONVERT instructions 2026-10-20 18:21:29 -07:00
Ryan Houdek f5006ab274 unittests/ASM: Adds new AVX_NE_CONVERT tests 2026-10-20 18:21:27 -07:00
Ryan Houdek 8ad4db7f71 InstcountCI: Control BF16 if required 2026-10-20 18:21:26 -07:00
Ryan Houdek e7554e98f0 HostFeatures: Support controlling BF16 2026-10-20 18:21:26 -07:00
Ryan Houdek ff65694cd0 TestHarnessRunner: Add AVX_NE_CONVERT feature 2026-10-20 18:15:23 -07:00
Ryan Houdek a98c5a3e38 FEXCore/CPUID: Expose AVX_NE_CONVERT 2026-10-20 17:29:04 -07:00
Ryan Houdek fd4c097628 AVX256: Implement AVX_NE_CONVERT
Doesn't require SVE_BF16, only BF16 because we split the operation even
on 256-bit.
2026-10-20 17:29:04 -07:00
Ryan Houdek 36d3bb6185 AVX128: Implement AVX_NE_CONVERT 2026-10-20 17:17:48 -07:00
Ryan Houdek 75d808934c HostFeatures: Detect BF16 support 2026-10-20 17:17:48 -07:00
Ryan Houdek c4f0ae7e55 X86Tables: Describe AVX_NE_CONVERT instructions 2026-10-20 17:17:47 -07:00
Ryan Houdek 8f927c9480 IR: Add support for BF16 conversion operations 2026-10-20 17:17:47 -07:00
Ryan Houdek 581e8d4f11 IR: Support movi 64-bit imm expansion
Explicit option to make it obvious.
2026-10-20 17:17:47 -07:00
Ryan Houdek c77f476bfe CodeEmitter: Adds support for BF16 conversion instructions. 2026-10-20 16:04:15 -07:00
LC eeb99027c7 Merge pull request #6046 from Sonicadvance1/278
HostFeatures: clang-format
2026-10-20 14:19:57 -04:00
Ryan Houdek 14b3021d1c HostFeatures: clang-format
Somehow this was missed and now it is showing up.
2026-10-20 09:53:20 -07:00
LC fd8a601772 Merge pull request #6042 from Sonicadvance1/275
OpcodeDispatcher: Add undefined flags acid test
2026-10-20 12:27:42 -04:00
LC a36ca807c8 Merge pull request #6044 from mstorsjo/libcxx-24-strtof
Add another function stub for libc++ 24 on Windows
2026-10-20 12:27:28 -04:00
Martin Storsjö 04f078e265 Add another function stub for libc++ 24 on Windows
This is needed by libc++ on mingw targets since
https://github.com/llvm/llvm-project/commit/c7da05f9828542daaf634a6f4277212b5f6194d5,
which will be included in libc++ 24.
2026-10-20 14:50:36 +03:00
LC d7b8e1497a Merge pull request #6043 from Sonicadvance1/276
FEXCore: Wire up support for SERIALIZE
2026-10-19 17:47:03 -04:00
Ryan Houdek 25eb85f80e HostRunner: Support checking for SERIALIZE 2026-10-19 14:29:03 -07:00
Ryan Houdek 47de7e352d InstcountCI: Update 2026-10-19 14:11:45 -07:00
Ryan Houdek f256d97ddb FEXCore: Wire up support for SERIALIZE
Trivial instruction.
2026-10-19 14:11:06 -07:00
Ryan Houdek 651b94f435 OpcodeDispatcher: Add undefined flags acid test
Useful debug feature to make sure FEX returns consistent flag data for
instructions that have undefined flags. Just sets everything that is
undefined to zero always.

Manually walked through all the instructions in the architecture manual
to check for ones doing undefined flag setting, then glued the handler
on to the end.

Also fixes a comment that has incorrect information about undefined
flags.
2026-10-19 13:50:34 -07:00
Ryan Houdek 741e146fdf Merge pull request #6039 from Sonicadvance1/274
arm64ec: Have synchronous faults skip fault overhead
2026-10-17 18:53:39 -07:00
Ryan Houdek 761369f590 InstcountCI: Update 2026-10-13 20:06:49 -07:00
Ryan Houdek 27cfd41bf9 FEXCore: Wire up the fault free synchronous fault handling
Changes the code generation on arm64ec so the version needs to bump.
2026-10-13 19:55:36 -07:00
Ryan Houdek 07abec317c Arm64ec: Wire up non-faulting synchronous faults 2026-10-13 19:55:33 -07:00
Ryan Houdek 461b286a8a Dispatcher: Adds unused synchronous dispatch handler 2026-10-13 18:07:22 -07:00