- Rewrote the custom compare function to use the emitter instead of inline asm.
- Set Linux builds to use the function.
Note: If this revision causes microVU to crash on Linux, it means GCC isn't guaranteeing 16-byte alignment on microRegInfo and microBlock structs. So it'll need to use normal memcmp instead (see microVU_Misc.h)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1345 96395faa-99c1-11dd-bbfe-3dabce05a288
- Implemented E-bit Conditional Branches and Jumps. Should fix infinite loop problems in games like Zone of the Enders, but it hasn't been tested yet since I don't have the game xD.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1343 96395faa-99c1-11dd-bbfe-3dabce05a288
- Changed sVU/mVU allocation order and addresses to hopefully solve allocation problems a lot of people were having.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1325 96395faa-99c1-11dd-bbfe-3dabce05a288
Removed the doubled up timings on SIF DMA cycles (should have been done when it was spotted really)
Put in a fix for Scratchpad reads which cause a VTLB error.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1323 96395faa-99c1-11dd-bbfe-3dabce05a288
- Fixed a very rare case, where both upper and lower instructions read and write to each others regs.
Example:
ADD.xyzw VF1, VF2, VF3
MOVE.xyzw VF2, VF1
- Forgot to commit iVU0micro.cpp on my last update...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1319 96395faa-99c1-11dd-bbfe-3dabce05a288
- Implemented m-bit functionality. Fixes Crash Twinsanity and most-likely other games...
Note: If anyone has any games that have broken graphics when mVU prints "microVU0: M-bit set!" to console, then please notify me about it.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1318 96395faa-99c1-11dd-bbfe-3dabce05a288
- Removed flaghack1 since it didn't do much over flaghack2 (except break games :p).
Flaghack2 is now renamed to "Status Flag Hack", and so-far we haven't found a single game it breaks, so compatibility is high.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1313 96395faa-99c1-11dd-bbfe-3dabce05a288
- Second try at a status flag optimization. Still needs tweaking but too tired xD
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1309 96395faa-99c1-11dd-bbfe-3dabce05a288
- Minor Changes/Cleanup
Super VU:
- Used the Linux SysMmapEx address for windows as well.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1308 96395faa-99c1-11dd-bbfe-3dabce05a288
- Implemented some bizarre behavior where conditional branches will read old VI-reg values if the previous instructions continuously read+write to the VI reg.
example from zerorec's comments:
SQI vi5++
SQI vi5++
IBNE vi4, vi5
vi5's value in the branch should be the value before all the SQI's...
more examples in iVUzerorec.cpp
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1304 96395faa-99c1-11dd-bbfe-3dabce05a288
- Non-functional change... just storing some IR info I'll need to use later.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1303 96395faa-99c1-11dd-bbfe-3dabce05a288
- Tried a complex optimization with status flag updating.
Didn't seem to work out as well as I thought.
I need some benchmarks of mVU (w/o hacks) before this update and after this update to see how effective it is.
If its not much faster I might just revert the change (because I'm sure no-one is going to understand how it works this way).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1300 96395faa-99c1-11dd-bbfe-3dabce05a288
- Fixed a bug from r1254. (Fixes weird circles on the logo of ffxii after selecting new-game)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1299 96395faa-99c1-11dd-bbfe-3dabce05a288
- Gave the rec a better IR (intermediate representation) implementation.
- Renamed microVU_Alloc to microVU_IR
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1298 96395faa-99c1-11dd-bbfe-3dabce05a288