Summary of changes between Arm® Compiler 6.7 and Arm® Compiler 6.8
summary of the changes between Arm® Compiler 6.7 and Arm Compiler 6.8.
The following are general changes in Arm Compiler 6.8:
Added support for the optional Dot Product instructions in Armv8.2-A and Armv8.3-A. To target Armv8.2-A and Armv8.3-A with the Dot Product instructions, use the following options:
Processor armclang options armasm, armlink, and fromelf options Armv8.3-A and AArch64 state
Armv8.3-A and AArch32 state
Armv8.2-A and AArch64 state
Armv8.2-A and AArch32 state
Added support for the Cortex®‑A75 and Cortex‑A55 processors. To target Cortex‑A75 and Cortex‑A55, use the following options:
Processor armclang options armasm, armlink, and fromelf options Cortex‑A75 for AArch64 state
Cortex‑A75 for AArch32 state
Cortex‑A55 for AArch64 state
Cortex‑A55 for AArch32 state
When resolving the relocations of a branch instruction from a function with build attributes that include
~PRES8to another function with build attributes that include
REQ8, the linker previously reported:
Error: L6238E: <objname>(<secname>) contains invalid call from '~PRES8 (The user did not require code to preserve 8-byte alignment of 8-byte data objects)' function to 'REQ8 (Code was permitted to depend on the 8-byte alignment of 8-byte data items)' function <sym>.
This behavior has been changed. By default, the linker no longer reports an error in these circumstances. To restore the previous behavior, use the option
--strict_preserve8_require8. For more information about this option, see --strict_preserve8_require8 in the armlink User Guide.
To successfully link with
- Manually inspect assembly language source files that are assembled using the integrated assembler.
- Ensure that all functions preserve 8-byte alignment of the stack and of 8-byte data items.
- Add the directive
.eabi_attribute Tag_ABI_align_preserved, 1to each such source file.
The following are enhancements in Arm Compiler 6.8:
- Compiler and integrated assembler (armclang)
Previously, the inline assembler and integrated assembler provided limited support for instruction substitutions for the A32 and T32 instruction sets. Substitution occurs when a valid encoding does not exist for an instruction with a particular immediate, but an equivalent instruction that has the same result with the inverted or negated immediate is available. To disable this feature, use the option
-mno-neg-immediatess is not specified, the range of substitutions that the inline assembler and integrated assembler perform has also been extended to cover extra valid substitutions for A64, A32, and T32.
For more information about this option, see -mno-neg-immediates in the armclang Reference Guide.
Added support for:
#pragma clang section. This pragma enables migration of source code that previously used the legacy armcc feature
#pragma arm section. See #pragma clang section in the armclang Reference Guide.
-nostdlibincoptions that enable objects to be linked with other ABI-compliant libraries. See -nostdlib and -nostdlibinc in the armclang Reference Guide.
__unalignedkeyword. This keyword aids migration of source code that previously used the legacy armcc feature
__packed. See __unaligned in the armclang Reference Guide.
- General enhancements
Added support for C++14 source language modes. Use one of the following options to enable the compilation of C++14 source code:
See -std in the armclang Reference Guide.