Ryan Houdek
b31ce13f68
IR: Change Pop to use IR::OpSize
2024-10-27 17:41:30 -07:00
Ryan Houdek
260d3b0b4e
IR: Change Push to use IR::OpSize
2024-10-27 17:39:21 -07:00
Ryan Houdek
c8c7ffbf05
IR: Change VBroadcastFromMem to use IR::OpSize
2024-10-27 17:35:56 -07:00
Ryan Houdek
4b03185b77
IR: Change VStoreVectorElement to use IR::OpSize
2024-10-27 17:32:25 -07:00
Ryan Houdek
52ec572db3
IR: Change VLoadVectorElement to use IR::OpSize
2024-10-27 17:27:42 -07:00
Ryan Houdek
3f6cdc2e03
IR: Change VLoadVectorMasked to use IR::OpSize
2024-10-27 17:20:18 -07:00
Ryan Houdek
014917301a
IR: Change StoreMem to use IR::OpSize
2024-10-27 17:14:18 -07:00
Ryan Houdek
07f8a4eadd
IR: Change LoadMem to use IR::OpSize
2024-10-27 16:33:14 -07:00
Ryan Houdek
5fd127b53a
IR: Change StoreContextIndexed to use IR::OpSize
2024-10-27 15:51:30 -07:00
Ryan Houdek
ece89ddeab
IR: Change LoadContextIndexed to use IR::OpSize
2024-10-27 15:50:03 -07:00
Ryan Houdek
2f9b0de742
IR: Change StoreContext to use IR::OpSize
2024-10-27 15:46:32 -07:00
Ryan Houdek
40fd4bbb66
IR: Change LoadContext to use IR::OpSize
2024-10-27 15:42:07 -07:00
Ryan Houdek
c045e14837
IR: Change StoreRegister to use IR::OpSize
2024-10-27 15:37:05 -07:00
Ryan Houdek
8f4113d859
IR: Change LoadRegister to use IR::OpSize
2024-10-27 15:34:46 -07:00
Ryan Houdek
4cfc2ac1a4
IR: Change AllocateFPR to use IR::OpSize
2024-10-27 15:30:11 -07:00
Ryan Houdek
e8baf4a28c
OpcodeDispatcher: Ensure IR ops use OpSize
...
NFC
2024-10-27 14:11:25 -07:00
Ryan Houdek
e438d32879
OpcodeDispatcher/Vector: Ensure IR ops use OpSize
...
NFC
2024-10-27 14:11:07 -07:00
Ryan Houdek
32ef10b273
OpcodeDispatcher/AVX128: Ensure IR ops use OpSize
...
NFC
2024-10-27 14:11:07 -07:00
Ryan Houdek
ad296051b7
OpcodeDispatcher/Crypto: Ensure IR ops use OpSize
...
NFC
2024-10-27 14:11:07 -07:00
Ryan Houdek
e603136918
OpcodeDispatcher/Flags: Ensure IR ops use OpSize
...
NFC
2024-10-27 14:11:07 -07:00
Ryan Houdek
f8a61f7d7e
OpcodeDispatcher/X87: Ensure IR ops use OpSize
...
NFC
2024-10-27 14:11:07 -07:00
Ryan Houdek
cb5ba8baae
OpcodeDispatcher/X87F64: Ensure IR ops use OpSize
...
NFC
2024-10-27 14:11:07 -07:00
Ryan Houdek
b31e4a3c27
JIT: Moves Arm64 JIT up one folder
...
We have only one JIT, there is no reason to subfolder this. Move it up
one folder.
NFC
2024-10-25 18:44:20 -07:00
LC
992d6e8477
Merge pull request #4136 from Sonicadvance1/support_tpidrro
...
FEXCore: Adds support for CPU Index through TPIDRRO
2024-10-25 21:43:33 -04:00
LC
f6cdb165a3
Merge pull request #4137 from Sonicadvance1/minor_pushf_opt
...
OpcodeDispatcher: Minor optimization to small pushf
2024-10-25 21:42:45 -04:00
Ryan Houdek
f143462ebe
OpcodeDispatcher: Minor optimization to small pushf
...
The push operation already truncates the result, there's no need to bfe
it. Noticed this while cleaning up in #4134 . Removes one instruction for
16-bit and 32-bit pushf instructions.
2024-10-25 15:41:22 -07:00
Ryan Houdek
048e967546
FEXCore: Adds support for CPU Index through TPIDRRO
2024-10-25 15:07:57 -07:00
Ryan Houdek
01a6e914f2
X86Tables: Removes XOP tables
...
These weren't even wired up to the frontend. We aren't going to support
XOP, so just remove the tables.
2024-10-25 14:32:13 -07:00
Paulo Matos
5f6c0d2245
X87 code simplification
...
Merges some of the code from reduced precision into the main path
since they are practically the same.
2024-10-24 18:15:49 +02:00
Ryan Houdek
caaacb6c15
Merge pull request #4127 from alyssarosenzweig/opt/masking
...
Optimize bsf, bsr, register cmpxchg, pcmpistri
2024-10-23 07:28:29 -07:00
Alyssa Rosenzweig
58a3d174ec
OpcodeDispatcher: explain why we provide defined bsf behaviour
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-10-22 13:36:24 -04:00
Alyssa Rosenzweig
9c605e7333
OpcodeDispatcher: optimize bsf/bsr
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-10-22 13:31:49 -04:00
Alyssa Rosenzweig
1fd7e88ffd
OpcodeDispatcher: optimize cmp in cmpxchg
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-10-22 13:29:47 -04:00
Alyssa Rosenzweig
c5e7da0631
OpcodeDispatcher: optimize more cmpxchg mask
...
none of it matters.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-10-22 13:29:47 -04:00
Alyssa Rosenzweig
68f58e415f
OpcodeDispatcher: optimize cmpxchg masking
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-10-22 13:29:47 -04:00
Alyssa Rosenzweig
698abec25c
JIT: drop FindMSB zero handling
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-10-22 13:29:47 -04:00
Alyssa Rosenzweig
1578f5ed47
JIT: drop FindLSB masking
...
consequence of the UB
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-10-22 13:29:47 -04:00
Alyssa Rosenzweig
80d7b5a5c9
JIT: drop FindLSB zero handling
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-10-22 13:29:47 -04:00
Ryan Houdek
fafc04a59e
OpcodeDispatcher/AVX128: Fixes glibc allocation
2024-10-21 09:34:59 -07:00
Ryan Houdek
fe8f5c745d
OpcodeDispatcher/AVX128: Use unified PSHUF{L,H}W implementation
...
Allows the AVX128 implementation to use the same implementation as the
128-bit SSE implementation, because it works per 128-bit lane just like
SSE. Is a minor optimization.
2024-10-21 09:24:38 -07:00
Ryan Houdek
d876224358
OpcodeDispatcher: Unify MMX and SSE PSHUF{L,H}W implementations
...
No functional change.
2024-10-21 09:11:05 -07:00
Ryan Houdek
d7afcee622
AVX128: Fixes asome AVX bugs
...
vblendvps, vblendvpd, vpblendvb all broke because of failing to zext the
128-bit register correctly.
vinsertps broke because it was accidentally using the wrong
implementation.
Extends each of their unittests to handle these cases.
2024-10-18 15:49:25 -07:00
Paulo Matos
10ec6b63b6
Fix FXTRACT for 0.0 and -0.0
...
Fixes fxtract by returning the correct values for 0.0 and -0.0. We moved the split of fxtract into _sig and _exp, to the opcode dispatcher, to ease some comparisons.
Also removed the IR node F80XTRACTStack which is not needed anymore.
2024-10-17 09:05:10 +02:00
Paulo Matos
49087007be
Implement NZCVSelectV for selection on FPRs
...
Behaves like NZCVSelect for FPRs.
2024-10-17 08:42:50 +02:00
Ryan Houdek
4b945a9041
Merge pull request #4105 from pmatos/X87MMXState
...
Implement explicit state switch between X87 and MMX
2024-10-16 15:52:27 -07:00
Paulo Matos
0d53f2b45c
Implements explicit state switch between X87 and MMX
...
Fixes #3850
2024-10-15 17:58:53 +02:00
Ryan Houdek
e53f3969e9
FEXCore: Change yield implementation to use wfe
...
According to
https://github.com/rust-lang/rust/commit/c064b6560b7ce0adeb9bbf5d7dcf12b1acb0c807
turns out that the arm yield instruction is effectively a nop on all
reasonably new CPUs.
Instead switch over to wfe because it matches x86 `PAUSE` semantics more
closely.
2024-10-15 05:50:26 -07:00
LC
389ad737e6
Merge pull request #4103 from Sonicadvance1/shared_vdso_mmap
...
VDSOEmulation: Support loading VDSO thunk as shared
2024-10-10 01:25:12 -04:00
Ryan Houdek
e82d2c70c3
Merge pull request #4095 from alyssarosenzweig/opt/jit-time
...
speed up the JIT
2024-10-04 09:00:03 -07:00
Ryan Houdek
c740801ea5
VDSOEmulation: Support loading VDSO thunk as shared
...
Just requires a thread pointer check to be fixed in FEXCore.
This doesn't need unique pages to exist for the file mapping and can be
shared since it's readonly mapped.
2024-10-03 21:06:35 -07:00