VU: Rework VU writes to be more generic
* Accessing the VU memory is more complex than it seems. Both VUs have their memory mapped to the main bus between 0x11000000 - 0x11010000. However the distinction between code and data once again comes to make this more complicated. Inside the VU code and data are considered different memory spaces, so their address spaces also different. This means that an address of 0x0 can refer to either, depending on the caller instruction. * Using this ahead-of-time knowledge we can use templates to make the compiler do the work for us and just have a small branch when the EE wants to write something directly, which is pretty rare.
Showing
- CMakeLists.txt 1 addition, 1 deletionCMakeLists.txt
- src/common/emulator.h 44 additions, 35 deletionssrc/common/emulator.h
- src/cpu/ee/ee.cc 2 additions, 2 deletionssrc/cpu/ee/ee.cc
- src/cpu/vu/common.h 0 additions, 46 deletionssrc/cpu/vu/common.h
- src/cpu/vu/vif.cc 14 additions, 2 deletionssrc/cpu/vu/vif.cc
- src/cpu/vu/vu.h 58 additions, 19 deletionssrc/cpu/vu/vu.h
Loading
Please register or sign in to comment