Ryan Houdek
68c038085a
IR: Change VSub to use IR::OpSize
2024-10-28 00:10:21 -07:00
Ryan Houdek
176f5a2860
IR: Change VAdd to use IR::OpSize
2024-10-28 00:07:30 -07:00
Ryan Houdek
0ba501636e
IR: Change VSRSHR to use IR::OpSize
2024-10-27 23:33:49 -07:00
Ryan Houdek
ceca9fff17
IR: Change VSQXTUNPair to use IR::OpSize
2024-10-27 23:30:02 -07:00
Ryan Houdek
5247b7124f
IR: Change VSQXTNPair to use IR::OpSize
2024-10-27 23:26:55 -07:00
Ryan Houdek
0692b34192
IR: Change VSXTL to use IR::OpSize
2024-10-27 23:21:17 -07:00
Ryan Houdek
8cf92d3303
IR: Change VSShrI to use IR::OpSize
2024-10-27 23:03:21 -07:00
Ryan Houdek
9b981a4f61
IR: Change VShlI to use IR::OpSize
2024-10-27 22:55:08 -07:00
Ryan Houdek
c791893b4a
IR: Change VDupElement to use IR::OpSize
2024-10-27 22:50:47 -07:00
Ryan Houdek
0a34a43976
IR: Change VFSqrt to use IR::OpSize
2024-10-27 22:42:37 -07:00
Ryan Houdek
b533dcd86d
IR: Change VNot to use IR::OpSize
2024-10-27 22:27:28 -07:00
Ryan Houdek
886db4ffca
IR: Change LoadNamedVectorConstant to use IR::OpSize
2024-10-27 22:05:42 -07:00
Ryan Houdek
e6f6ee2bcd
IR: Change VectorImm to use IR::OpSize
2024-10-27 21:58:34 -07:00
Ryan Houdek
5566b4455b
IR: Change VFCMPScalarInsert to use IR::OpSize
2024-10-27 18:35:03 -07:00
Ryan Houdek
fed2c13521
IR: Change VFToIScalarInsert to use IR::OpSize
2024-10-27 18:32:11 -07:00
Ryan Houdek
5626f4e50a
IR: Change VSToFVectorInsert to use IR::OpSize
2024-10-27 18:27:39 -07:00
Ryan Houdek
081907e168
IR: Change VFAddScalarInsert to use IR::OpSize
2024-10-27 18:14:37 -07:00
Ryan Houdek
1a115a8ce6
IR: Change FCmp to use IR::OpSize
2024-10-27 18:06:34 -07:00
Ryan Houdek
1bde30a196
IR: Change Float_ToGPR_S to use IR::OpSize
2024-10-27 18:02:45 -07:00
Ryan Houdek
764aacaa8f
IR: Change VExtractToGPR to use IR::OpSize
2024-10-27 17:58:53 -07:00
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
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
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
e8baf4a28c
OpcodeDispatcher: Ensure IR ops use OpSize
...
NFC
2024-10-27 14:11:25 -07: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
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
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
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
0d53f2b45c
Implements explicit state switch between X87 and MMX
...
Fixes #3850
2024-10-15 17:58:53 +02:00
Alyssa Rosenzweig
e2d58809ed
OpcodeDispatcher: rm dead
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-10-02 13:38:48 -04:00
Alyssa Rosenzweig
967a74cda9
OpcodeDispatcher: manually inline constants
...
less work for constprop.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-10-02 13:38:48 -04:00
Ryan Houdek
dc2a26582f
FEXCore/OpcodeDispatcher: Fixes missing static on some tables
...
This was causing egregious stack usage in these two functions
2024-09-16 18:52:55 -07:00
Ryan Houdek
c984bdb42a
OpcodeDispatcher: Remove previous template instantiantions and use Bind
2024-09-16 18:52:54 -07:00
Ryan Houdek
2645b374a7
OpcodeDispatcher: Deduplicate InstallToTable helper
2024-09-16 18:52:54 -07:00
Ryan Houdek
0e57cbf5b9
OpcodeDispatcher: Remove EVEX table install
...
This hasn't been necessary for quite a while as we handle
invalid/unsupported opcodes in the frontend now.
2024-09-16 17:40:20 -07:00
Ryan Houdek
c7413d96ad
OpcodeDispatcher: Constexpr-ify VEX & VEXGroup tables
2024-09-16 17:40:20 -07:00
Ryan Houdek
f3ba8cb33c
OpcodeDispatcher: Constexpr-ify DDD tables
2024-09-16 17:40:20 -07:00
Ryan Houdek
e714933b10
OpcodeDispatcher: Constexpr-ify H0F3A tables
2024-09-16 17:40:20 -07:00
Ryan Houdek
9a0f83cbf6
OpcodeDispatcher: Constexpr-ify H0F38 tables
2024-09-16 17:40:20 -07:00
Ryan Houdek
c4d30e8437
OpcodeDispatcher: Constexpr-ify SecondaryModRM tables
2024-09-16 17:40:20 -07:00