Hi, this patch makes GDB aware of a special feature of the SPU hardware. Every SPU has its own dedicated memory, called the Local Store (LS). Currently this is 256K of memory. If accessing memory above this 256K, the address is wrapped to fit in 256K (modulo calculation). So every memory address is valid. The size of the Local Store is found in the SPU's LSLR register. This examples tries to access an address > LS size and runs into an error which is fixed by this patch: (gdb) p *0xfffd0162 Error accessing memory address 0xfffd0162: Invalid argument. The patch introduces three new functions to spu-tdep for address conversion which also will be used by the Cell Broadband Engine combined debugger. ChangeLog: * spu-tdep.c (spu_address_to_pointer): New function. (spu_pointer_to_address): Likewise. (spu_integer_to_address): Likewise. (spu_gdbarch_init): Add spu_address_to_pointer, spu_pointer_to_address and spu_integer_to_address to gdbarch. Tested on spu-elf. Testsuite showed no regression. Ok to commit? -- Markus Deuling GNU Toolchain for Linux on Cell BE deuling@de.ibm.com