home page

In 1991, Apple, IBM and Motorola ally to create the PowerPC CPU architecture, used on Apple Macintoshes until c. 2007.

Starting from 1999, Apple integrates the PowerPC G4 in its new machines. This CPU has SIMD capabilities, called AltiVec, which allows it process 128-bit wide vectors. This extension comes with 32 additional registers, and 162 new instructions.
In 2001, Nintendo releases the GameCube, whose CPU, the Gekko, is also a PowerPC family member. It comes with its own SIMD extension, commonly called paired-single instructions.

Those instructions give the capability of performing special operations with the floating-point registers (already present in the base PowerPC architecture). I present more details about them in /gekko.

paired single -> altivec?

the object of this blogpost is to define a translation scheme from paired-single instructions to AltiVec instructions, in the frame of an ahead-of-time compiler that wants to ensure a 1:1 correspondence between guest and host's GPRs and FPRs before and after host's handling of a guest instruction.