Registers, Unions, and Casting
SPU registers are 128 bits wide. In most cases, you'll be loading data into the registers in different ways. For example, you might use the SPU as a vector processor and load four 32-bit values into a register.
TotalView defines a union that displays this data in seven different ways, Figure 242.
Figure 242: Register Union
This picture shows how TotalView displays register R0. TotalView defines the data type of this register as union $spu_vec128. If you dive (double-click) on a member in the union, TotalView shows the contents of the register as if they were defined in this way. For example, diving in v4_float displays this information as an array of four floating point numbers.
After diving on a union member, the displayed values can be edited and stored back into memory.
If this union doesn't describe your data, you can display it in another way by altering the information in this window's Type field. However, casting the value into a data type smaller than 128 bits pulls the value from the preferred slot of the register that is appropriate for the type’s size.