If you are wondering about websites and documents in order to gather information about certain parts of the PlayStation 3 here is a nice list to start with. Probably more things should be added here, but for now it is a good compilation of useful sources. If what your are looking for isn't below, remember that Google is your friend. If it's not, remember that other RPCS3 developers are your friends too. Ask them!
Best wishes and happy coding!
Some instructions contain an optional
OE(overflow excpetion) flag. We currently do not implement those versions of the instructions. For example we emulate
subfme but not
subfmo which are just the prior operations with the
OE flag set.
This flag writes to the
SO (overflow and summary overflow) bits of the XER (Fixed-Point Exception Register) register. The reason why it's not implemented is that the GCC code emitter does not use these instructions and so we haven't found any PS3 software that uses it.
If we find some software that has some handwritten assembly that use those instructions we'll need to implement it (or just for completeness). A good reference for XER bits can be found in PowerPC Microprocessor Family: The Programmer's Reference Guide chapter 1.3 and other linked references.
For the implementation of the interpreter it would probably be best to refrain from x86 assembly or compiler intrinsics like
__readeflags to determine a overflow. Probably something from the answers to this SO question is what we should consider.
(Some of this information can be deleted, or at least it should be properly organized).
sizeof(char)= 1 (= 8 bits)
sizeof(long long)= 8
Reading from invalid addresses / Trying to execute code from invalid addresses (e.g. stack) / Trying to write to invalid addresses (e.g. functions) makes the application exit on real PS3s.