SPRUI04F july 2015 – april 2023
For general information about data types, see Section 7.3. Table 8-1 lists register and memory storage for various data types:
Data Type | Register Storage | Memory Storage |
---|---|---|
char | Bits 0-7 of register | 8 bits aligned to 8-bit boundary |
unsigned char | Bits 0-7 of register | 8 bits aligned to 8-bit boundary |
short | Bits 0-15 of register | 16 bits aligned to 16-bit boundary |
unsigned short | Bits 0-15 of register | 16 bits aligned to 16-bit boundary |
int | Entire register | 32 bits aligned to 32-bit boundary |
unsigned int | Entire register | 32 bits aligned to 32-bit boundary |
enum (1) | Entire register or even/odd register pair | 32 bits aligned to 32-bit boundary or 64 bits aligned to 64-bit boundary |
float | Entire register | 32 bits aligned to 32-bit boundary |
float complex (4) | Even/odd register pair | 64 bits aligned to 32-bit boundary |
long | Entire register | 32 bits aligned to 32-bit boundary |
unsigned long | Entire register | 32 bits aligned to 32-bit boundary |
__int40_t | Even/odd register pair | 64 bits aligned to 64-bit boundary |
unsigned __int40_t | Even/odd register pair | 64 bits aligned to 64-bit boundary |
long long | Even/odd register pair | 64 bits aligned to 64-bit boundary |
unsigned long long | Even/odd register pair | 64 bits aligned to 64-bit boundary |
double | Even/odd register pair | 64 bits aligned to 64-bit boundary |
double complex (C6600 only)(4) | Register quad(5) | 128 bits aligned to 64-bit boundary |
long double | Even/odd register pair | 64 bits aligned to 64-bit boundary |
long double complex (C6600 only)(4) | Register quad(5) | 128 bits aligned to 64-bit boundary |
__x128_t (C6600 only)(2) | Register quad(5) | 128-bits aligned to 64-bit boundary |
struct | Members are stored as their individual types require. | Storage is a multiple of the alignment to the boundary of largest member type; members are stored and aligned as their individual types require. |
array | Members are stored as their individual types require. | Members are stored as their individual types require.(3) All arrays inside a structure are aligned according to the type of each element in the array. |
pointer to data member | Bits 0-31 of register | 32 bits aligned to 32-bit boundary |
pointer to member function | Components stored as their individual types require | 32 bits aligned to 32-bit boundary |