Ryan Houdek
320c5f1847
Docs: Update for release FEX-2510
FEX-2510
2025-10-08 17:03:06 -07:00
Ryan Houdek
3b88947cbe
Merge pull request #4950 from lioncash/syscall
...
SyscallHandler: Shrink definition struct from 24 to 16 bytes
2025-10-08 14:03:57 -07:00
Ryan Houdek
f05be0120e
Merge pull request #4949 from lioncash/thread
...
ThreadManager: Make StatAlloc instance private
2025-10-08 13:44:43 -07:00
Lioncache
10c3b2fb5d
SyscallHandler: Shrink definition struct from 24 to 16 bytes
...
Just a minor space saving, given how many syscall definitions we'll
have.
2025-10-08 16:40:20 -04:00
Lioncache
74ae89865c
SHMStats: Add missing virtual destructor
...
This should be present for universally consistent behavior, regardless
of how the class is used.
2025-10-08 16:17:42 -04:00
Lioncache
a2445904e7
ThreadManager: Make StatAlloc instance private
...
This doesn't need to be public.
2025-10-08 16:13:23 -04:00
Ryan Houdek
bd5188e7bc
Merge pull request #4948 from lioncash/fmt2
...
EnumUtils: Remove fmt include
2025-10-07 13:04:22 -07:00
Lioncache
d89c119d9d
EnumUtils: Remove fmt include
...
Forgot to remove this in the previous PR.
2025-10-07 12:54:32 -04:00
Ryan Houdek
802f3bed47
Merge pull request #4947 from lioncash/format
...
EnumUtils: Further simplify enum passthrough formatting
2025-10-07 06:47:56 -07:00
Ryan Houdek
9c606a278d
Merge pull request #4946 from lioncash/sys
...
SysCalls: Remove unimplemented prototypes
2025-10-07 06:46:59 -07:00
Lioncache
7aa5bc0503
EnumUtils: Further simplify enum passthrough formatting
...
Turns out a simpler way was added to the docs at some point and I never
noticed.
Before:
text data bss dec hex filename
4159895 1471360 4336824 9968079 9819cf Bin/FEX
After:
text data bss dec hex filename
4157159 1471360 4336824 9965343 980f1f Bin/FEX
2025-10-07 01:52:05 -04:00
Lioncache
d94b9fae94
SourceCodeResolver: Pass string_view by value for GenerateMap()
...
Generally this should be passed as a value type unless there's a good
reason not to.
2025-10-07 01:27:15 -04:00
Lioncache
05fcaaa758
Syscalls: Remove unimplemented prototypes
2025-10-07 01:27:11 -04:00
Ryan Houdek
9626a64340
Merge pull request #4944 from lioncash/type
...
Addressing: Shave 8 bytes off AddressMode
2025-10-06 14:01:09 -07:00
Lioncache
c1cfd4db83
Addressing: Shave 8 bytes off AddressMode
...
Just a trivial rearrangement, Drops the struct down to 40 bytes.
We can also make some functions take it by const reference so we
aren't churning some copies.
Before:
text data bss dec hex filename
4160559 1471360 4336824 9968743 981c67 Bin/FEX
After:
text data bss dec hex filename
4159927 1471360 4336824 9968111 9819ef Bin/FEX
2025-10-06 15:52:15 -04:00
Ryan Houdek
bfda91ac16
Merge pull request #4943 from lioncash/table
...
X86Tables: Remove unused LateInitCopyTable()
2025-10-06 12:17:39 -07:00
Lioncache
b7117b86ea
X86Tables: Remove unused LateInitCopyTable()
2025-10-06 15:04:36 -04:00
LC
a94059ad81
Merge pull request #4942 from Sonicadvance1/fix_map
...
ThreadManager: Fix mmap usage to not take guest space
2025-10-06 14:59:27 -04:00
Ryan Houdek
2cab87fbd0
ThreadManager: Fix mmap usage to not take guest space
...
SHM stats and CallRet stack was accidentally using system mmap which
means it would take VA space from the guest. Ensure it uses the
Allocator helpers so that doesn't happen.
Gives 32-bit guests 8-ish megabyte of VA space back.
2025-10-06 11:20:00 -07:00
Ryan Houdek
2017100ff3
Merge pull request #4941 from lioncash/unused
...
OpcodeDispatcher: Remove unimplemented function prototypes
2025-10-06 10:18:18 -07:00
Lioncache
72cb29d36b
OpcodeDispatcher: Remove unimplemented function prototypes
...
Just cleans out the interface a little.
2025-10-06 13:08:07 -04:00
Ryan Houdek
a2b0d594fb
Merge pull request #4939 from lioncash/invalid
...
OpcodeDispatcher: Default alignment parameters for store helpers
2025-10-06 09:11:49 -07:00
Lioncache
a16d4ff1f3
OpcodeDispatcher: Deduplicate in LEAOp/SMSWOp
...
We can shorten a few lines here by just storing the op addr value
to a local variable.
2025-10-06 11:13:00 -04:00
Lioncache
305b1ecf2d
OpcodeDispatcher: Default alignment parameters for store helpers
...
Avoids actively doing this wonky thing where we're passing
iInvalid all over the place to mean variable alignment depending
on store element size or GPR size.
Makes using the API a little more visibly straightforward and makes
cases where alignment matters more explicit.
2025-10-06 11:04:12 -04:00
Ryan Houdek
3cc0cae249
Merge pull request #4938 from lioncash/prctl
...
PrctlUtils: Move to include folder
2025-10-05 23:27:38 -07:00
Lioncache
137aa59254
PrctlUtils: Move to include folder
...
We can group more prctl value handling in here.
2025-10-06 02:12:29 -04:00
LC
5f8cb0dc54
Merge pull request #4937 from Sonicadvance1/name_vma
...
Allocator: Name FEX's VMA regions for allocation
2025-10-05 22:40:58 -04:00
Ryan Houdek
45978474f3
Allocator: Name FEX's VMA regions for allocation
...
Will allow external tools to track how much memory FEX allocates.
Necessary since we can't use traditional memory usage tools to track FEX
memory allocation independently of guest allocations. Plus most tools
like heaptrack hook allocation symbols, which break under jemalloc.
Using this information I can see with Steam loaded with my library that
FEX consumes ~825MB. Total process resident memory is 1204M, accounting
for around 379MB being used by steam itself. This is /relatively/ close
to my desktop running steam at around 261MB. There's a bit of variance
due to what Steam chooses to do at startup.
This tracking will be the first step towards seeing where our memory
usage is going.
2025-10-05 19:30:59 -07:00
Ryan Houdek
75206c7a51
Merge pull request #4936 from lioncash/str
...
Common/StringConv: std::stoull -> std::strtoull for enum handler
2025-10-05 13:14:02 -07:00
Ryan Houdek
06ff0a45a7
Merge pull request #4935 from lioncash/move
...
IR: Remove Swap1/Swap2 ops
2025-10-05 11:57:35 -07:00
Ryan Houdek
c948d532a7
Merge pull request #4934 from lioncash/select
...
OpcodeDispatcher: Move off implicit _Select
2025-10-05 11:54:59 -07:00
Ryan Houdek
3825483f79
Merge pull request #4933 from lioncash/reg
...
RedundantFlagCalculationElimination: Eliminate unnecessary vector copy
2025-10-05 11:53:56 -07:00
Lioncache
0b238d942e
Common/StringConv: std::stoull -> std::strtoull for enum handler
...
Missed this when simplifying the conversion facilities, but
we should be using std::strtoull here, as per the programming
concerns.
2025-10-05 14:49:07 -04:00
Lioncache
16b09a9dd3
OpcodeDispatcher: Move off implicit _Select
...
Resolves a lingering TODO.
2025-10-05 13:57:36 -04:00
Lioncache
4f6800b768
IR: Remove Swap1/Swap2 ops
...
These are no longer used.
2025-10-05 13:26:51 -04:00
Lioncache
c84801adb3
RedundantFlagCalc: Avoid vector copy in OptimizeParity()
...
Previously this was making a copy of the vector, when we only
need to read from it.
2025-10-05 12:17:45 -04:00
Lioncache
69f990c1f8
RedundantFlagCalc: Organize headers
...
Also remove incorrect comment that this pass isn't used.
2025-10-05 12:17:45 -04:00
Lioncache
8a83564678
RedundantFlagCalc: Remove unimplemented prototype
...
Just tidies the interface a little.
2025-10-05 12:17:45 -04:00
Lioncache
43d93f836f
RedundantFlagCalc: Mark members as const where applicable
...
These don't affect member state.
2025-10-05 03:14:21 -04:00
Ryan Houdek
7c2c0f7fe5
Merge pull request #4932 from lioncash/python
...
json_ir_generator: Minor cleanup
2025-10-04 11:44:08 -07:00
Lioncache
3ff47cf677
json_ir_generator: Add missing error message
...
ExitError() expects a string argument. Unlikely error case to be hit,
but we should still make the error useful to the reader.
2025-10-04 11:00:05 -04:00
Lioncache
3165dce89e
json_ir_generator: Turn IROpNameMap into a set
...
This is only used to track for duplicates, so we only really need
the key name, since the values are never used.
2025-10-04 11:00:00 -04:00
Lioncache
d4fad0a3b0
json_ir_generator: Simplify some looping
...
We can use enumerate to collapse a few of these
2025-10-04 10:37:34 -04:00
Lioncache
15fcaa794f
json_ir_generator: Simplify is_ssa_type
...
Same behavior, but a little more straightforward
2025-10-04 08:47:08 -04:00
Lioncache
6a1a505336
json_ir_generator: Add type annotations for top level vars
...
Makes the types a little more explicit and also makes member
suggestions in IDEs (vscode, etc) work a little better.
2025-10-04 08:45:08 -04:00
LC
85937a7bfb
Merge pull request #4931 from Sonicadvance1/sse4a
...
Implement remaining SSE4a instructions
2025-10-04 08:22:58 -04:00
Ryan Houdek
3baa598b9e
HostFeatures: Adds flag for SSE4a
2025-10-04 02:51:28 -07:00
Ryan Houdek
6f83b10af6
InstcountCI: Update
2025-10-04 02:46:27 -07:00
Ryan Houdek
f52bcb49ab
unittests/ASM: Adds new variable SSE4a tests
2025-10-04 02:46:14 -07:00
Ryan Houdek
9cef8ff7ce
OpcodeDispatcher: Implement support for SSE4a variable extrq/insertq
2025-10-04 02:44:56 -07:00