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
Ryan Houdek
a499ad6404
IR: Implement two new IR ops
...
rbit is useful in generic algorithms.
`MaskGenerateFromBitWidth` is only really useful for SSE4a, but
implemented in the OpcodeDispatcher is rough, so add an operation.
2025-10-04 02:43:39 -07:00
Ryan Houdek
7c8767ab32
OpcodeDispatcher: Minor improvement to inserting constant to vector
2025-10-04 02:43:21 -07:00
Ryan Houdek
38a8559943
Merge pull request #4930 from lioncash/forward
...
IR: Move RegisterAllocationPass forward decl to JITClass
2025-10-03 21:22:17 -07:00
Lioncache
48c6acbc87
IR: Move RegisterAllocationPass forward decl to JITClass
...
This isn't actually used anywhere in the IR header, so we can
move it to where it's actually used.
Now the IR interface header doesn't have anything related to the
independent passes in it.
2025-10-04 00:08:58 -04:00
Ryan Houdek
b5d93bc4a0
Merge pull request #4928 from lioncash/passthru
...
EnumUtils: Add define for default passthrough formatting
2025-10-03 19:45:41 -07:00
LC
a9fffe771b
Merge pull request #4929 from Sonicadvance1/sse4a_imm
...
OpcodeDispatcher: Implement support for imm variants of SSE4a extrq/insertq
2025-10-03 17:40:19 -04:00
Ryan Houdek
69f3ab14b9
InstcountCI: Update
2025-10-03 13:51:51 -07:00
Ryan Houdek
a7b9a34ec9
unittests: Adds imm extrq/insertq tests
2025-10-03 13:34:32 -07:00
Ryan Houdek
f45be1f59e
OpcodeDispatcher: Implement support for imm extrq/insertq
...
Fairly straightforward to implement, but not exciting in their
performance.
2025-10-03 13:05:43 -07:00
Ryan Houdek
012c2ba851
IR: Fixes vector 64-bit binops
...
We were only supporting operating size of 256-bit and 128-bit. These
also support 64-bit which wasn't wired up.
SSE4a will want to use 64-bit.
2025-10-03 13:04:09 -07:00
Lioncache
a0c2ce0068
EnumUtils: Add define for default passthrough formatting
...
Handles a normal case where printing an enum type as an integral value
is still desirable.
Mainly just a way to reduce boilerplate.
2025-10-03 14:21:19 -04:00
Ryan Houdek
86898035da
Merge pull request #4926 from lioncash/enum
...
IR: Convert RegisterClassType to an enum class
2025-10-03 10:35:23 -07:00
Ryan Houdek
05eeffe0f7
Merge pull request #4927 from bylaws/ffds
...
Windows: Avoid redeclaring strtoll as unimplemented
2025-10-03 10:32:39 -07:00
Billy Laws
70cffce5eb
Windows: Avoid redeclaring strtoll as unimplemented
...
Included as part of the musl code we pull in. Fixes ARM64EC/WOW64 FEX.
2025-10-03 16:30:41 +02:00
Lioncache
0258e914e0
IR: Convert RegisterClassType to an enum class
...
Removes the last of the wrapper value types in favor of enum classes.
2025-10-03 03:54:56 -04:00
Ryan Houdek
c35b81d2c5
Merge pull request #4925 from lioncash/regclass
...
IREmitter: Add register class helpers
2025-10-02 22:14:41 -07:00
Lioncache
fc63dcedb6
IR: Migrate to new helpers
...
Reduces a bunch of noise related to the register classes and hoists them
out so that converting the classes over to enums should be fairly
straightforward.
2025-10-03 00:53:02 -04:00
Lioncache
c879650c4b
IR: Add GPR/FPR helpers
...
These will be utilized in follow up PRs
2025-10-02 23:53:50 -04:00