SPRAB89A September 2011 – March 2014
The C99 standard dictates the layout and alignment of its _Complex types to be equivalent to a two-element array of the corresponding floating-point type, with the real part as the first element and the imaginary part as the second. This leaves the ABI little flexibility. Accordingly, the C6000 representation for complex types is as in Table 2-2:
Type | Generic Name | Size | Alignment | External Alignment |
---|---|---|---|---|
float _Complex | complex32 | 64 | 32 | 64 |
double _Complex | complex64 | 128 | 64 | 128 |
long double _Complex | complex64 | 128 | 64 | 128 |
Variables with type complex or array of complex with external visibility have stricter alignment requirements than that required by their type. The external alignment column of the table gives the minimum alignment for such variables.