These are my notes for where I can see both PPC and SPU varying from ia32, as presented in the video Part 5 — Data Types. There’s not a lot to be said about this one, so there’s just the one post for both PPC and SPU architectures.
The main problem with assembling the provided VariableDemo.s is that gas doesn’t seem to like the .bss section for either PPC or SPU, producing an error. To be able to assemble this file on these architectures, I removed the .bss line and (obviously) removed (replaced) the ia32 asm instructions. objdump shows that “.comm LargeBuffer 10000” is placed in .bss, as intended.
(At this point, I’m quite out of my depth as to why this difference between the architectures exists — if someone can enlighten me, that’d be great :)
I was interested to see that gdb has no problem accessing the unaligned variables on the SPU. It’s worth noting that the assembler is quite happy to let you place data wherever you like (with great power comes great etc.). And I think I need to take a closer look at the .align directive.
Previous assembly primer notes…
Part 1 — System Organization — PPC — SPU
Part 2 — Memory Organisation — SPU
Part 3 — GDB Usage Primer — PPC & SPU
Part 4 — Hello World — PPC — SPU