Commit graph

20 commits

Author SHA1 Message Date
Derek "Turtle" Roe
c4afd44ed7 See long description
Replaced all references to simulation with emulation
Updated copyright year
Updated .gitignore to reduce chances of random files being uploaded to
the repo
Added .gitattributes to normalize all text files, and to ignore binary
files (which includes the logo and the NEC PDF)
2015-07-03 08:18:16 -04:00
Tyler Stachecki
5240b35d45 More cleanup of the fault/TLB code. 2015-01-04 15:37:47 -05:00
Tyler Stachecki
06d3d54c60 Restore most TLB functionality from backport. 2015-01-01 15:47:20 -05:00
Tyler Stachecki
31443e65c5 Mark another function as cen64_cold. 2014-11-14 22:22:00 -05:00
Tyler Stachecki
85654a891f Delay computing accurate value of count.
Instead, just bump the counter and don't track cycle count. When
it comes time to use count, shift it to the right by one instead.
2014-11-14 21:04:03 -05:00
Tyler Stachecki
f66894935b Mark more initialization functions as cold. 2014-11-09 19:11:09 -05:00
Tyler Stachecki
d011d9b5f5 Fix some obvious common TLB bugs. 2014-08-26 22:58:21 -04:00
Tyler Stachecki
3ed2957de7 Fix a careless mistake in the last commit. 2014-08-24 21:53:30 -04:00
Tyler Stachecki
dad4626533 Fix the showstopping coherency bug.
This bug is the result of an optimization gone wrong. To keep
performance high, we cache the last-used MIPS instruction and data
segments (useg, sseg, kseg, uxseg, etc.), instead of recomputing the
segment 1-2x per cycle (it's expensive).

Unfortunately, this means that the segments need to be manually
invalidated at certain points, lest one risks using a segment which
may no longer be valid. This was the case for this bug, in which the
segments were not invalidated following an ERET (exception return).
2014-08-24 20:58:16 -04:00
Tyler Stachecki
d72a7d38ef Last batch of TLB translation fixes. 2014-08-23 23:52:52 -04:00
Tyler Stachecki
e6bc8ebe64 Add more TLB support, verify things. 2014-08-23 20:06:45 -04:00
Tyler Stachecki
5f5d4da9a6 Commit preliminary (untested) TLB support. 2014-08-23 14:24:21 -04:00
Tyler Stachecki
2b94264a92 Pass IW to each opcode function.
Instead of having almost every opcode function load IW off the
stack through the VR4300 pointer, just pass it as an argument on
the stack to reduce binary size and hoist a load up.

Thanks go out to Narann for this idea.
2014-08-22 07:54:53 -04:00
Tyler Stachecki
490e896cc9 Reorganize pipeline code for lower binary size. 2014-07-31 13:27:04 -04:00
Tyler Stachecki
c28f74ba98 Fix up warnings, clean up initialization code. 2014-07-31 12:07:12 -04:00
Tyler Stachecki
9bd494b4e0 Make busy wait special casing safer. 2014-07-29 09:47:01 -04:00
Tyler Stachecki
691d3009e4 Housekeeping: Move CP0/CP1 functions around. 2014-07-02 21:43:07 -04:00
Tyler Stachecki
45a06d3532 Allow instructions to raise exceptions, add some CP1. 2014-05-20 22:16:12 -04:00
Tyler Stachecki
ca81cc95f5 Start executing PIF ROM. 2014-03-09 22:38:47 -04:00
Tyler Stachecki
2f3aded155 Initial commit. 2014-03-08 11:12:15 -05:00