Tyler Stachecki
1c1124bfd3
Temporarily patch the "render half frame" bug.
...
Not sure why copy_size should = 4 for a 16-bit frame, so
look into that. But for now, it won't cause any buffer
overruns, so enable it with a warning.
2015-01-04 12:18:10 -05:00
Tyler Stachecki
aa175bf6d6
Fix the JALR RSP bug, similar to last commit.
2015-01-04 12:18:03 -05:00
Tyler Stachecki
9fb9f24724
Fix bugs, implement WatchLo/Hi support.
2015-01-04 12:17:57 -05:00
Tyler Stachecki
db0bf1a594
Squash IC->RF latch data on a fault.
2015-01-03 13:13:20 -05:00
Tyler Stachecki
ac6dfe16da
Cleanup the VR4300 exception logic somewhat.
2015-01-03 12:39:40 -05:00
Tyler Stachecki
c795c4ad2d
Remove old function definitions.
2015-01-03 00:49:52 -05:00
Tyler Stachecki
2697ba9445
Merge more functions together.
2015-01-02 23:51:53 -05:00
Tyler Stachecki
d8f60c4afa
Merge a handful of the vector compares.
2015-01-02 23:51:40 -05:00
Tyler Stachecki
1c8f871df8
Start merging RSP vector functions.
...
No need to separate all these functions when they contain so
much common code, so start combining things for the sake of
locality and predictor effectiveness (and size). In addition
to these benefits, the CPU backend is usually busy during the
execution of these functions, so suffering a misprediction
isn't as painful (especially seeing as we can potentially
improve the prediction from the indirect branch).
2015-01-02 22:21:32 -05:00
Tyler Stachecki
d50450e624
Disable register caching for now.
...
Until we can work around system libraries stomping over the
registers we want to reserve, just disable register caching for
the time being.
2015-01-02 21:05:07 -05:00
Tyler Stachecki
c1f1998c78
Add an implementation for VMACU.
2015-01-02 21:04:44 -05:00
Tyler Stachecki
b55940f139
Fix VMACF accumulation issues and lighting problems.
2015-01-02 21:04:33 -05:00
Tyler Stachecki
9ad566c658
Hacky fix to patch register caching.
...
On Windows, acc_lo (%xmm5) was clashing with the x64 calling
convention, which states %xmm5 is a volatile register and is
the caller's responsibility to save. We need the register
preserved across calls, so until we have a better solution to
the problem, pick registers that are not volatile according to
the calling convention.
2015-01-02 15:39:21 -05:00
Tyler Stachecki
33fd6a394d
Fix a CFC2/VCE error that produced the wrong mask.
2015-01-01 23:15:45 -05:00
Tyler Stachecki
fbd0a646f6
Fix potential undefined behaviour issues.
2015-01-01 23:15:35 -05:00
Tyler Stachecki
742ffc1493
Fix a series of RSP bugs that krom pointed out.
2015-01-01 21:13:41 -05:00
Tyler Stachecki
fca1cbe022
Add support for building on OS X.
2015-01-01 21:13:35 -05:00
Tyler Stachecki
91cfe79cd1
Add a missing line to CMakeLists.txt.
2015-01-01 21:13:29 -05:00
Tyler Stachecki
4e34f9a910
Restore most TLB functionality from backport.
2015-01-01 15:53:52 -05:00
Tyler Stachecki
fd74a5eb55
Update README and prepare for GitHub push.
2015-01-01 15:01:46 -05:00
Tyler Stachecki
f74ff068c4
Don't boot when if the CIC type is not known.
2015-01-01 15:01:37 -05:00
Tyler Stachecki
40ff6bd9ac
Automatically seed the PIF RAM based on CIC type.
2015-01-01 15:01:33 -05:00
Tyler Stachecki
0524573137
os/windows: Only show the console when asked.
2015-01-01 15:01:27 -05:00
Tyler Stachecki
5bf50af698
Clean up some rough edges in the last commit.
2015-01-01 15:01:22 -05:00
Tyler Stachecki
267d56491e
Get the Windows build in running condition.
...
Conflicts:
rdp/n64video.c
2015-01-01 15:00:53 -05:00
Tyler Stachecki
64b9ce8f5f
os/unix: Shuffle things around to align with WINAPI.
2015-01-01 11:33:55 -05:00
Tyler Stachecki
1a7611b6dc
Commit some MSVC-specific workarounds.
2015-01-01 10:47:25 -05:00
Tyler Stachecki
eba6ce1420
Fix VLT clipping bugs.
...
Thank you, AIO, for pointing this out.
2015-01-01 10:47:07 -05:00
Tyler Stachecki
d9d4ebcb8b
os/unix: Don't race during window initialization.
2015-01-01 10:47:00 -05:00
Tyler Stachecki
62eacc11a4
Cleanup the recently-committed VCH.
...
We should refer to %xmm5 as acc_lo.
2015-01-01 10:46:53 -05:00
Tyler Stachecki
b52962aa19
Fix RSP bug that arises on BREAK.
2015-01-01 10:46:48 -05:00
Tyler Stachecki
e100147379
Add register-caching version of VCH.
...
Thanks go out to AIO for rounding out this commit with
his optimized SSE2 variant.
2015-01-01 10:46:41 -05:00
Tyler Stachecki
70efd3de4a
Fix a typo that broke some builds.
2015-01-01 10:46:34 -05:00
Tyler Stachecki
3e094c8985
Convert AIO's VABS optimization to AVX.
2015-01-01 10:46:28 -05:00
Tyler Stachecki
52afe866d4
Fix a mask typo in the last commit.
2015-01-01 10:46:22 -05:00
Tyler Stachecki
bf30cf29fd
Fix a buggy accumulator clamp algorithm.
2015-01-01 10:46:16 -05:00
Tyler Stachecki
5e313634d3
Enable register-caching on MinGW.
...
Use a prelude to get around Microsoft's stupid calling convention.
2015-01-01 10:46:10 -05:00
Tyler Stachecki
8047bf94d9
Unbreak Windows builds (again).
2015-01-01 10:46:03 -05:00
Tyler Stachecki
8cb3c319f9
Commit AIO's VLT optimizations.
2015-01-01 10:45:57 -05:00
Tyler Stachecki
d9b9171f92
Work in AIO's optimizations for VABS.
2015-01-01 10:45:52 -05:00
Tyler Stachecki
b6f0d0ec58
Set initial values for VCC/VCO/VCE.
...
Thanks, krom!
2015-01-01 10:45:45 -05:00
Tyler Stachecki
d9b19d3f32
Move around and patch bugs in new functions.
2015-01-01 10:45:38 -05:00
Tyler Stachecki
b54f9618df
Prevent register-caching on MinGW.
...
Since Microsoft decided to totally bork their x86_64 calling
convention, defer all Windows builds to non-optimized RSP
routines. When MinGW supports __vectorcall, this change can
be reverted.
2015-01-01 10:45:31 -05:00
Tyler Stachecki
5f10b427e1
Add support PE/COFF executable formats.
2015-01-01 10:45:22 -05:00
Tyler Stachecki
d32f8386cd
Update toolchains with GNU AS references.
2015-01-01 10:45:15 -05:00
Tyler Stachecki
26d65b2ebe
Optimize register-caching version of VMRG.
2015-01-01 10:45:07 -05:00
Tyler Stachecki
cc785f9f5b
Only use VEX-encoded SSE where it helps us.
...
Otherwise, stick to the "legacy" SSE instructions as they're
smaller and we don't use the upper halves of AVX registers
anyways.
2015-01-01 10:45:01 -05:00
Tyler Stachecki
84cc9c93cb
Fix register-caching version of VABS.
2015-01-01 10:44:54 -05:00
Tyler Stachecki
94ad149a12
Actually enable the register caching...
...
And fix a lot of bugs introduced with a regex.
2015-01-01 10:44:47 -05:00
Tyler Stachecki
7bc95ee3ee
Implement register-caching version of VLT.
2015-01-01 10:44:40 -05:00