Commit graph

953 commits

Author SHA1 Message Date
Tyler Stachecki
0fb96ebedd Revamp the CMake generator file.
Add option to specify architecture support (SSE2, SSSE3, etc.)
for each compiler supported. Update UI window title to indicate
architecture folder and support.
2014-11-11 22:38:09 -05:00
Tyler Stachecki
7ce889135c Catch SIGINT when passed -nointerface. 2014-11-11 17:44:43 -05:00
Tyler Stachecki
538e344442 Add a -nointerface switch, remove spare '\t's. 2014-11-11 17:21:25 -05:00
Tyler Stachecki
71a126e425 Don't hangup the UI when the VI doesn't ack. 2014-11-11 17:02:21 -05:00
Tyler Stachecki
33d2e15278 Reduce size of rsp_vload_dmem dynarec code.
We're going to want to instantiate all possible branch targets
ahead of time to avoid SMC penalties, so we want each target to
fit into the smallest block of code possible.
2014-11-10 22:51:33 -05:00
Tyler Stachecki
fc22ab18ba Fix some corner-case bugs in the last commit. 2014-11-10 19:04:23 -05:00
Tyler Stachecki
b4b95d1f21 Fix SS2 RSP vector loads/stores implementation. 2014-11-10 18:32:12 -05:00
Tyler Stachecki
2794b1c2a0 Don't flag os/main as cold. 2014-11-10 14:40:05 -05:00
Tyler Stachecki
316214d82d (Finally) permit SSE2-only builds.
Add SSE2 codepaths where necessary (even if not complete), while
still allowing the project to be compiled with SSSE3+ intrinsics.
2014-11-10 14:29:13 -05:00
Tyler Stachecki
3a24a67f1f Fix poor SSE2-based RSP performance. 2014-11-10 11:02:57 -05:00
Tyler Stachecki
f66894935b Mark more initialization functions as cold. 2014-11-09 19:11:09 -05:00
Tyler Stachecki
f70c1a5fc5 More _mm_set_s* over _mm_load_s* stuff. 2014-11-09 18:54:07 -05:00
Tyler Stachecki
a0f1eb5d7c Move intrinsics to a common location. 2014-11-09 18:51:54 -05:00
Tyler Stachecki
ffe40c4c20 Mark VR4300 exception handlers as cold. 2014-11-09 18:41:09 -05:00
Tyler Stachecki
1513f3cac2 arch/x86_64: Prefer _mm_set_s* over _mm_load_s*. 2014-11-09 18:27:14 -05:00
Tyler Stachecki
e3d1934855 Enable non-standard-conforming optimizations. 2014-11-09 17:49:58 -05:00
Tyler Stachecki
9b3ce2134b Aggressively optimize loops when using GCC.
Mainly useful for tight RSP DMA copy loops.
2014-11-09 17:26:11 -05:00
Tyler Stachecki
2f0e33263d Add RSP reciprocal ROM contents. 2014-11-09 13:20:10 -05:00
Tyler Stachecki
380577dfe3 Remove an assertion from VSAR...
Thanks to krom for reverse engineering this!
2014-11-08 21:27:45 -05:00
Tyler Stachecki
4cfb7275a9 Fix and optimize rsp_uclamp_acc (once again). 2014-11-08 19:07:08 -05:00
Tyler Stachecki
9f8a9f9d62 Add implementations of VMADH and VMUDH. 2014-11-08 14:01:41 -05:00
Tyler Stachecki
007d72eda1 Add implementations of VMADL and VMADM. 2014-11-08 12:21:06 -05:00
Tyler Stachecki
e4da36ef72 Fix debug builds. 2014-11-05 19:22:40 -05:00
Tyler Stachecki
16a7c434da Fix/optimize the RSP accumulator clamp LO algorithm. 2014-11-05 16:58:59 -05:00
Tyler Stachecki
6a0604eaca Fix the RSP accumulator clamping algorithm. 2014-11-05 15:09:16 -05:00
Tyler Stachecki
e89f054674 Optimize extremely aggressively.
Tell GCC to optimize cold functions for size and stash them away in
a separate part of the binary. Put the simulate core, meanwhile, on
the hot path. Also, bump optimization to -O3 as we can now "afford"
to do so.
2014-11-05 08:39:47 -05:00
Tyler Stachecki
b668296589 Add implementations of VADD and VSUB. 2014-11-03 18:06:32 -05:00
Tyler Stachecki
083ad75286 arch/x86_64: Cache RSP accumulator regs in host CPU. 2014-11-03 16:48:38 -05:00
Tyler Stachecki
f741923329 AVX seems to help now; enable it again. 2014-11-02 23:06:47 -05:00
Tyler Stachecki
da0436cbe1 Fix SSE preprocessor macro mistake. 2014-11-02 22:50:06 -05:00
Tyler Stachecki
716410d7b0 Remove an extra newline. 2014-11-02 22:48:31 -05:00
Tyler Stachecki
d4a8f82b10 Change the RSP vector calling convention. 2014-11-02 22:45:33 -05:00
Tyler Stachecki
b5ff809881 Add an implementation of VMADN. 2014-11-02 22:31:58 -05:00
Tyler Stachecki
89ecd417d8 Pack RSP results into a result structure. 2014-11-02 13:40:49 -05:00
Tyler Stachecki
bf197cf3bd Implement VMUDL, VMUDM, VMUDN. 2014-11-02 12:44:19 -05:00
Tyler Stachecki
c4612418ed Implement VINV, fixup INV. 2014-11-02 11:57:26 -05:00
Tyler Stachecki
f6c77de8ea Fix an annoying little load-aligner bug. 2014-11-02 11:53:39 -05:00
Tyler Stachecki
6f54353825 Fix another incorrect RSP branch target. 2014-11-02 10:29:19 -05:00
Tyler Stachecki
87e856634f Undo changes from 1a90e6981e.
Only supposed to return bits [11:0] of the PC reg.
2014-11-02 10:00:22 -05:00
Tyler Stachecki
fae5dcca5d Get rid of some undefined behavior warnings. 2014-11-02 09:55:45 -05:00
Tyler Stachecki
1a90e6981e Make sure SP_PC_REG returns an address in IMEM. 2014-11-02 09:36:44 -05:00
Tyler Stachecki
aaf56a0928 Make sure RSP branch targets don't escape IMEM. 2014-11-02 09:35:50 -05:00
Tyler Stachecki
3f79c50369 Prevent wrap-arounds due to \t spillover. 2014-11-02 00:34:47 -04:00
Tyler Stachecki
a5b380c925 Couple temporary fixes for Windows/MSVC. 2014-11-02 00:28:05 -04:00
Tyler Stachecki
321c81b208 Start restoring the Windows/MSVC build. 2014-11-01 23:42:52 -04:00
Tyler Stachecki
1394c48f6b Cleanup vi/controller.c. 2014-11-01 23:37:17 -04:00
Tyler Stachecki
2bb8fa3b83 os/unix: Output VI/s in window title. 2014-11-01 21:49:58 -04:00
Tyler Stachecki
238d61d32e Cleanup hairy edges from the last commit. 2014-11-01 21:25:08 -04:00
Tyler Stachecki
9c9bdbe8bd os/unix: Thread the renderer and event system. 2014-11-01 20:42:40 -04:00
Tyler Stachecki
08439c0f5f Remove some calls to malloc(...). 2014-11-01 16:59:12 -04:00