assemblypowerpcplaystation3

Address size on PlayStation 3/PowerPC


I am looking at a crash report from parsing DWARFv2 in a binary file that was built by the SN Systems' ps3ppusnc compiler. The target is PlayStation - presumably 3, since 4 and 5 are no longer PowerPC based. The binary is an ELF file, its machine type is EM_PPC64 - one would presume, a 64 bit machine. Yet in the CU header at the crash point, the value of the address_size field is 4.

What's going on? Did PS3 use the CPU in 32 bit mode, or does the CPU/platform allow for mixing address size within the same program? Wikipedia says PS3 only had 512 MB of RAM (and, I presume, no pagefile), 64 bit addresses were not really necessary there.

I don't have the binary, or any PS3 binaries, or the capability to build them.


Solution

  • All signs point at the possibility of mixed bitness within the same binary on PowerPC. Some CUs in an otherwise 64 bit binary use 32-bit addresses, it looks like.