 RealView Compiler User's Guide |
|
| Eight‑byte alignment features2.8. Eight‑byte alignment featuresThe ARM compiler has the following eight‑byte alignment features: The Procedure Call Standard for the ARM Architecture (AAPCS) requires that the stack is eight‑byte aligned at all external interfaces. The ARM compiler and C libraries preserve the eight‑byte alignment of the stack. In addition, the default C library memory model maintains eight‑byte alignment of the heap. In RealView Compilation Tools (RVCT) v2.0 and above, all code is compiled with the REQUIRE8 and PRESERVE8 directives. If you have assembly files, or legacy objects, or libraries in your project, it is your responsibility to check that they preserve eight-byte stack alignment, and correct them if required. For more information, see the Assembler Guide and the Linker Guide. In RVCT v2.0 and above, double and long long data types are eight‑byte aligned. This enables efficient use of the LDRD and STRD instructions in ARMv5TE and above. The default implementations of malloc(), realloc(), and calloc() maintain an eight‑byte aligned heap. The default implementation of alloca() returns an eight‑byte aligned block of memory. See alloca() in the Libraries Guide for more information on this C library extension.
|
|