SCEI EE gcc patches?
Posted: Sat Mar 19, 2005 2:09 am
Something I noticed when reading the (publicly available) paper from SCEA Research Procedural Rendering on PlayStation 2:
The "j" register type, along with better native support for the 128-bit data types, would be very nice.
Unlike the early days of the PS2 where everything had to be painstakingly pieced together from the manuals and example code, lately there are some new tools to help you program PS2. Most of these are freely available for registered developers from the PS2 support websites and nearly all come with source.
I've tried using some of this based on the examples, but with no success, so I'm assuming that these changes are not in our toolchain, but in one that's only available to registered developers. Has SCEI released this patch to the public? It would seem like a violation of the GPL if they haven't...The GCC inline assembler patch adds a number of new features to the inline assembler:
- Introduces a new j register type for 128-bit vector registers, allowing the compiler to know that these values are to be assigned to VU0 Macro Mode registers
- Allows register naming, so more descriptive symbols can be used.
- Allows access to fields in VU0 broadcast instructions allowing you to, say, template a function across broadcast fields (x, xy, xyz, xyzw)
- No more volatile inline assembly, the compiler is free to reorder instructions as the context is properly described.
- No more explicit loading and moving registers to and from VU registers, the compiler is free to keep values in VU registers as long as possible.
- No need to use explicit registers, unless you want to. The compiler can assign free registers
The "j" register type, along with better native support for the 128-bit data types, would be very nice.