1- /**************************************************************************/ /**
2- * @file cmsis_armclang_a.h
3- * @brief CMSIS compiler armclang (Arm Compiler 6) header file
4- * @version V1.2.3
5- * @date 11. October 2023
6- ******************************************************************************/
71/*
82 * Copyright (c) 2009-2023 Arm Limited. All rights reserved.
93 *
2216 * limitations under the License.
2317 */
2418
19+ /*
20+ * CMSIS-Core(A) Compiler ARMClang (Arm Compiler 6) Header File
21+ */
22+
2523#ifndef __CMSIS_ARMCLANG_A_H
2624#define __CMSIS_ARMCLANG_A_H
2725
102100 #define __COMPILER_BARRIER () __ASM volatile("":::"memory")
103101#endif
104102
103+
105104/* ########################## Core Instruction Access ######################### */
106105/**
107106 \brief No Operation
108107 \details No Operation does nothing. This instruction can be used for code alignment purposes.
109108 */
110109#define __NOP __builtin_arm_nop
111110
111+
112112/**
113113 \brief Wait For Interrupt
114114 \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs.
@@ -218,6 +218,7 @@ __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2)
218218 */
219219#define __RBIT __builtin_arm_rbit
220220
221+
221222/**
222223 \brief Count leading zeros
223224 \details Counts the number of leading zeros of a data value.
@@ -242,6 +243,7 @@ __STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value)
242243 return __builtin_clz (value );
243244}
244245
246+
245247/**
246248 \brief LDR Exclusive (8 bit)
247249 \details Executes a exclusive LDR instruction for 8 bit value.
@@ -502,7 +504,7 @@ __STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3)
502504 int32_t result ;
503505
504506 __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result ): "r" (op1 ), "r" (op2 ), "r" (op3 ) );
505- return (result );
507+ return (result );
506508}
507509
508510#endif /* (__ARM_FEATURE_DSP == 1) */
@@ -707,23 +709,23 @@ __STATIC_FORCEINLINE void __set_FPEXC(uint32_t fpexc)
707709__STATIC_INLINE void __FPU_Enable (void )
708710{
709711 __ASM volatile (
710- //Permit access to VFP/NEON, registers by modifying CPACR
712+ // Permit access to VFP/NEON, registers by modifying CPACR
711713 " MRC p15,0,R1,c1,c0,2 \n"
712714 " ORR R1,R1,#0x00F00000 \n"
713715 " MCR p15,0,R1,c1,c0,2 \n"
714716
715- //Ensure that subsequent instructions occur in the context of VFP/NEON access permitted
717+ // Ensure that subsequent instructions occur in the context of VFP/NEON access permitted
716718 " ISB \n"
717719
718- //Enable VFP/NEON
720+ // Enable VFP/NEON
719721 " VMRS R1,FPEXC \n"
720722 " ORR R1,R1,#0x40000000 \n"
721723 " VMSR FPEXC,R1 \n"
722724
723- //Initialise VFP/NEON registers to 0
725+ // Initialise VFP/NEON registers to 0
724726 " MOV R2,#0 \n"
725727
726- //Initialise D16 registers to 0
728+ // Initialise D16 registers to 0
727729 " VMOV D0, R2,R2 \n"
728730 " VMOV D1, R2,R2 \n"
729731 " VMOV D2, R2,R2 \n"
@@ -742,7 +744,7 @@ __STATIC_INLINE void __FPU_Enable(void)
742744 " VMOV D15,R2,R2 \n"
743745
744746#if (defined(__ARM_NEON ) && (__ARM_NEON == 1 ))
745- //Initialise D32 registers to 0
747+ // Initialise D32 registers to 0
746748 " VMOV D16,R2,R2 \n"
747749 " VMOV D17,R2,R2 \n"
748750 " VMOV D18,R2,R2 \n"
@@ -761,7 +763,7 @@ __STATIC_INLINE void __FPU_Enable(void)
761763 " VMOV D31,R2,R2 \n"
762764#endif
763765
764- // Initialise FPSCR to a known state
766+ // Initialise FPSCR to a known state
765767 " VMRS R1,FPSCR \n"
766768 " LDR R2,=0x00086060 \n" //Mask off all bits that do not have to be preserved. Non-preserved bits can/should be zero.
767769 " AND R1,R1,R2 \n"
0 commit comments