Commit graph

58 commits

Author SHA1 Message Date
Wunkolo
40e2774b7f Implement arm64 LG2/EX2 2024-03-19 21:26:13 -07:00
Wunkolo
2b34ef4a89 Implement PICA200 compliant arm64 MUL
Adds `emitSafeMUL` to implement a PICA200 compliant multiplication that
handles the special `0 * inf = 0` case.
2024-03-14 12:30:42 -07:00
wheremyfoodat
25d8e5807f
Fix dynarmic submodule (#446)
* Remove dynarmic submodule

* Add dynarmic mirror

* Update oaknut

* Update shader JIT to work with latest oaknut

* Maybe fix oaknut finally

* hlep

* More arm64 shader derps

* Fixing more shader JIT brokenness

* aaaaaaaaaaaa

* Update shader_rec_emitter_arm64.hpp

* Update shader_rec_emitter_arm64.cpp
2024-03-07 19:47:21 +02:00
wheremyfoodat
6d78750824
Merge pull request #362 from wheremyfoodat/arm64-jot
WIP arm64 shader recompiler
2024-01-12 19:03:40 +02:00
wheremyfoodat
aaef3b66f9
Moar arm64 shader ops 2024-01-09 23:50:57 +02:00
wheremyfoodat
6c2e0be07d [arm64 shader JIT] Booting OoT now 2024-01-04 23:25:46 +02:00
wheremyfoodat
745da35324 Fix cmp in x64 shader JIT 2024-01-04 03:19:31 +02:00
wheremyfoodat
fe01df588b Get some demos running on a64 shader JIT 2024-01-03 22:00:16 +02:00
wheremyfoodat
c0621d0760 WIP arm64 shader recompiler 2024-01-03 00:39:36 +02:00
wheremyfoodat
1f8194dfa3 ShaderJIT: Make BREAK(C) emit a warning instead of crashing until implemented 2023-09-16 18:07:07 +03:00
wheremyfoodat
85c586b3d0 [Shader JIT] Add DPHI 2023-08-12 23:36:56 +03:00
wheremyfoodat
f73138c5de [Shader JIT] Implement SGE(I) 2023-08-02 19:30:35 +03:00
wheremyfoodat
5aa2e3c1d2 [Shader JIT] Add DPH 2023-08-02 00:23:05 +03:00
wheremyfoodat
826f0ac039 Fix up comments and readme 2023-07-16 19:23:42 +03:00
wheremyfoodat
f43c252e55 Switch LOG2/EX2 from x87 to SSE (adjusted from Citra)
Co-Authored-By: merry <8682882+merryhime@users.noreply.github.com>
Co-Authored-By: Wunk <wunkolo@gmail.com>
2023-07-16 01:34:59 +03:00
wheremyfoodat
15ede3bd6e [Shader JIT] Temporary EXP2/LOG2 implementations in x87 2023-07-09 01:29:51 +03:00
wheremyfoodat
005db316cf More shader instruction definitions 2023-07-01 01:17:04 +03:00
wheremyfoodat
726897231c [Shader JIT] Fix swizzle when loading from indexed reg 2023-07-01 00:49:34 +03:00
wheremyfoodat
5fecb6023a [Shader JIT] Fix MAD (again) 2023-06-30 23:59:34 +03:00
wheremyfoodat
3199f8ae67 [Shader JIT] Stub EMIT/SETEMIT 2023-06-30 14:39:25 +03:00
wheremyfoodat
3476d336ca [Shader JIT] Implement SLT/SLTI/MADI 2023-06-30 14:17:35 +03:00
wheremyfoodat
8a13b8c878 [Shader JIT] Compile MAD to FMA when possible 2023-06-30 02:02:56 +03:00
wheremyfoodat
cd04ed3770 [ShaderJIT] Fix storeRegister kinda hackily 2023-06-30 01:42:36 +03:00
wheremyfoodat
121653b806 [ShaderJIT] Add logging utility for diffing 2023-06-29 22:02:17 +03:00
wheremyfoodat
b027cda648 [Shader JIT[ Remove shadow stack stuff, remove pushing/popping context pointer 2023-06-28 22:31:51 +03:00
wheremyfoodat
28e9d87573 [Shader JIT] Start migrating to new, better ABI 2023-06-28 22:22:09 +03:00
wheremyfoodat
519fb35c5f Less UB 2023-06-16 14:22:29 +03:00
wheremyfoodat
79c3cf2661 [Shader JIT] Less UB 2023-06-15 19:30:51 +03:00
wheremyfoodat
3cf4bdd95f [Shader JIT] Use rotl+xor for combining hashes
Co-Authored-By: Wunk <wunkolo@gmail.com>
2023-06-15 01:58:00 +03:00
wheremyfoodat
f538d38c98 [Shader JIT] Add index = 3 to indexed register addressing 2023-06-12 00:16:21 +03:00
wheremyfoodat
3f2b713c4b [Shader JIT] Attempt to implement FLR and CALLU 2023-06-11 23:51:45 +03:00
wheremyfoodat
137b652840 [Shader JIT] Attempt to add CALLC/JMPC/JMPU/LOOP 2023-06-11 23:43:47 +03:00
wheremyfoodat
71fd8de92f [Shader JIT] Add MIN 2023-06-11 22:08:02 +03:00
wheremyfoodat
48b2af6a17 [Shader JIT] Mix in AVX-128 in some places, fix cmp 2023-06-11 01:49:08 +03:00
wheremyfoodat
18df6f9531 [ShaderJIT: MOVA] Fix oopsie 2023-06-10 23:49:42 +03:00
wheremyfoodat
402991a7ce Comment 2023-06-10 23:33:28 +03:00
wheremyfoodat
b5dbc40587 [Shader JIT] Fix CMP instruction when cmpX == cmpY 2023-06-10 23:18:33 +03:00
wheremyfoodat
158cbb8be1 [Shader JIT] Improve call/return 2023-06-10 21:50:05 +03:00
wheremyfoodat
7e6f267462 [Shader JIT] Implement returning 2023-06-10 18:20:15 +03:00
wheremyfoodat
3c0ca97b55 [Shader JIT] Add indexed register addressing 2023-06-10 17:54:07 +03:00
wheremyfoodat
5dcd828f66 [ShaderJIT] Implement mova 2023-06-10 17:25:16 +03:00
wheremyfoodat
48e25870a5 Add const equvalent for OpenGL::Vector operator[] 2023-06-10 16:09:13 +03:00
wheremyfoodat
df414acc23 [ShaderJIT] Migrate to #18 2023-06-10 14:04:15 +03:00
wheremyfoodat
b04ad7215b Clean up some getBits code 2023-06-10 13:22:34 +03:00
wheremyfoodat
2cb249927e [ShaderJIT] FIx crashes, moar instructions 2023-06-10 01:28:28 +03:00
wheremyfoodat
1aea8199c5 [ShaderJIT] CALL, DP4, IFC, IFU, MUL, RSQ 2023-06-10 00:58:38 +03:00
wheremyfoodat
1fe44c0098 [ShaderJIT] Add cmp 2023-06-09 22:31:06 +03:00
wheremyfoodat
ca3ae7a16e [Shader JIT] Add more function definitions 2023-06-09 17:14:04 +03:00
wheremyfoodat
fd411245fa [Shader JIT] Get first JIT trangle 2023-06-09 02:28:59 +03:00
wheremyfoodat
9bb1f31fc9 [ShaderJIT] Add MOV 2023-06-09 00:46:17 +03:00