SPRUI04F july 2015 – april 2023
The __x128_t container type is available when compiling for C6600 only, It stores 128-bits of data and its use is necessary when performing certain SIMD operations on C6600. Also, note the leading double underscore. When using the __x128_t container type, you must include c6x.h.
This type can be used to define objects that can be used with certain C6600 intrinsics. (See Table 8-7.) The object can be filled and manipulated using various intrinsics. The type is not a full-fledged built-in type (like long long), and so various native C operations are not allowed. Think of this type as a struct with private members and special manipulation functions.
When the compiler puts a __x128_t object in the register file, the __x128_t object takes four registers (a register quad). Objects of type __x128_t are aligned to a 64-bit boundary in memory.
When an __x128_t object is passed on the stack, it is placed on a 64-bit boundary relative to the beginning of the stack. (The stack itself is aligned to a 64-bit boundary by default.) See the note in Section 8.6.2 for details.
The following operations are supported:
__x128_t a;
). By default, it will be put in the .far section.
__x128_t a;
). It will be put on the stack.
__x128_t *a;
).
__x128_t a[10];
).The following operations are not supported: