SPRUI04G June 2015 – August 2025
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 |
| 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 |
| long double | Even/odd register pair | 64 bits aligned to 64-bit boundary |
| __x128_t (C6600 only)(2) | Register quad | 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 |
| cchar(4) | Bits 0-15 of register | 16 bits aligned to 8-bit boundary |
| cshort(4) | Bits 0-31 of register | 32 bits aligned to 16-bit boundary |
| cint(4) | Even/odd register pair | 64 bits aligned to 32-bit boundary |
| cfloat(4) | Even/odd register pair | 64 bits aligned to 32-bit boundary |
| clonglong(4) | Register quad | 128 bits aligned to 64-bit boundary |
| cdouble(4) | Register quad | 128 bits aligned to 64-bit boundary |