Summary of changes between Arm® Compiler 6.5 and Arm® Compiler 6.6
summary of the changes between Arm® Compiler 6.5 and Arm Compiler 6.6.
The following are general changes in Arm Compiler 6.6:
Added support for the Armv8.3-A architecture. To target Armv8.3-A, use the following options:
State armclang options armasm, armlink, and fromelf options AArch64
Added support for the Armv8‑A AArch64 state Scalable Vector Extension (SVE) to the compiler. To target bare-metal systems with SVE, use the option
-march=armv8-a+sve. See the ARM Compiler Scalable Vector Extension User Guide for more information.
To disassemble objects that have been built for SVE, llvm-objdump is provided as an interim solution. fromelf is to be enhanced to support SVE in a future release of Arm Compiler.
SVE features are available under a separate license. Contact Arm for more information.
Added support for the Cortex®-R52 processor. To target Cortex-R52, use the following options:
Processor variant armclang options armasm, armlink, and fromelf options and Advanced SIMD
D16 and single-precision only
Added support for the Cortex‑M23 processor. To target Cortex‑M23, use the following options:
- armasm, armlink, and fromelf
Added support for the Cortex-M33 processor. To target Cortex-M33, use the following options:
Processor variant armclang options armasm, armlink, and fromelf options With both DSP and FP
Without DSP but with FP
With DSP but without FP
Without both DSP and FP
The default compiler behavior has changed. The following options are selected by default:
- Configuration options that select a smaller, less IEEE 754 compliant floating-point math library.
To restore the previous behavior, select from the following options:
NoteArm recommends not using this option to restore the previous behavior.
For more information about support level definitions and a subset of these options, see the armclang Reference Guide.
--cpu=option in armasm, armlink, and fromelf has changed to improve compatibility with the
Replace this option name With this option name
The following linker options are deprecated and are to be removed in a future release:
The following are enhancements in Arm Compiler 6.6:
- Compiler and integrated assembler (armclang)
Added support for:
__attribute__((naked))function attribute. This function attribute enables migration of Arm Compiler 5 and earlier embedded assembler functions to Arm Compiler 6.
- Use of floating-point code in secure functions when compiling with
- Added full support for link-time optimization (LTO). To use LTO, specify
-fltooption to the compiler and the
--ltooption to the linker.
- Libraries and system headers
- Added [ALPHA] support for multithreading features in the C++11 standard
library, for example
std::thread. The API for these features is in the arm-tpl.h header file, but you must implement the low-level interface to the underlying operating system. The specification of this thread porting API is available through a separate document. Contact Arm Support for more information.
- Added support to the Arm C library to implement semihosting calls using the
HLTinstruction for Armv8‑A and Armv8‑R targets in AArch32 state.
Added support for use of the C++ library without exceptions. To target C++ without exceptions, compile with the option
When linking objects compiled without exceptions, a specialized C++ library variant is selected that does not have the code-size overhead of exceptions. This C++ library variant has undefined behavior at points where the normal library variant results in an exception being thrown.
- Added [ALPHA] support for multithreading features in the C++11 standard library, for example