3939#ifdef WOLFSSL_ARMASM_INLINE
4040
4141#ifdef WOLFSSL_ARMASM
42- #if !defined(__aarch64__ ) && defined(__arm__ )
42+ #if !defined(__aarch64__ ) && defined(__thumb__ )
4343
4444#ifdef __IAR_SYSTEMS_ICC__
4545#define __asm__ asm
@@ -84,8 +84,8 @@ void Transform_Sha256_Len(wc_Sha256* sha256, const byte* data, word32 len)
8484 register wc_Sha256 * sha256 __asm__ ("r0" ) = (wc_Sha256 * )sha256_p ;
8585 register const byte * data __asm__ ("r1" ) = (const byte * )data_p ;
8686 register word32 len __asm__ ("r2" ) = (word32 )len_p ;
87- #endif /* !WOLFSSL_NO_VAR_ASSIGN_REG */
8887 register uint32_t * L_SHA256_transform_len_k_c __asm__ ("r3" ) = (uint32_t * )& L_SHA256_transform_len_k ;
88+ #endif /* !WOLFSSL_NO_VAR_ASSIGN_REG */
8989
9090 __asm__ __volatile__ (
9191 "SUB sp, sp, #0xc0\n\t"
@@ -101,7 +101,7 @@ void Transform_Sha256_Len(wc_Sha256* sha256, const byte* data, word32 len)
101101 "STRD r10, r11, [sp, #88]\n\t"
102102 /* Start of loop processing a block */
103103 "\n"
104- "L_SHA256_transform_len_begin_%= :\n\t"
104+ "L_SHA256_transform_len_begin :\n\t"
105105 /* Load, Reverse and Store W - 64 bytes */
106106 "LDR r4, [%[data]]\n\t"
107107 "LDR r5, [%[data], #4]\n\t"
@@ -149,7 +149,7 @@ void Transform_Sha256_Len(wc_Sha256* sha256, const byte* data, word32 len)
149149 "MOV r12, #0x3\n\t"
150150 /* Start of 16 rounds */
151151 "\n"
152- "L_SHA256_transform_len_start_%= :\n\t"
152+ "L_SHA256_transform_len_start :\n\t"
153153 /* Round 0 */
154154 "LDR r5, [%[sha256], #16]\n\t"
155155 "LDR r6, [%[sha256], #20]\n\t"
@@ -905,9 +905,9 @@ void Transform_Sha256_Len(wc_Sha256* sha256, const byte* data, word32 len)
905905 "ADD r3, r3, #0x40\n\t"
906906 "SUBS r12, r12, #0x1\n\t"
907907#if defined(__GNUC__ ) || defined (__ICCARM__ ) || defined (__IAR_SYSTEMS_ICC__ )
908- "BNE L_SHA256_transform_len_start_%= \n\t"
908+ "BNE L_SHA256_transform_len_start \n\t"
909909#else
910- "BNE.N L_SHA256_transform_len_start_%= \n\t"
910+ "BNE.N L_SHA256_transform_len_start \n\t"
911911#endif
912912 /* Round 0 */
913913 "LDR r5, [%[sha256], #16]\n\t"
@@ -1450,12 +1450,17 @@ void Transform_Sha256_Len(wc_Sha256* sha256, const byte* data, word32 len)
14501450 "SUB r3, r3, #0xc0\n\t"
14511451 "ADD %[data], %[data], #0x40\n\t"
14521452#if defined(__GNUC__ ) || defined(__ICCARM__ ) || defined(__IAR_SYSTEMS_ICC__ )
1453- "BNE L_SHA256_transform_len_begin_%= \n\t"
1453+ "BNE L_SHA256_transform_len_begin \n\t"
14541454#else
1455- "BNE.N L_SHA256_transform_len_begin_%= \n\t"
1455+ "BNE.N L_SHA256_transform_len_begin \n\t"
14561456#endif
14571457 "ADD sp, sp, #0xc0\n\t"
1458- : [sha256 ] "+ r " (sha256), [data] " + r " (data), [len] " + r " (len), [L_SHA256_transform_len_k] " + r " (L_SHA256_transform_len_k_c)
1458+ : [sha256 ] "+ r " (sha256), [data] " + r " (data), [len] " + r " (len),
1459+ #ifndef WOLFSSL_NO_VAR_ASSIGN_REG
1460+ [L_SHA256_transform_len_k ] "+r" (L_SHA256_transform_len_k_c )
1461+ #else
1462+ [L_SHA256_transform_len_k ] "r" (L_SHA256_transform_len_k )
1463+ #endif /* WOLFSSL_NO_VAR_ASSIGN_REG */
14591464 :
14601465 : "memory" , "r4" , "r5" , "r6" , "r7" , "r8" , "r9" , "r10" , "r11" , "r12"
14611466 );
@@ -1465,7 +1470,7 @@ void Transform_Sha256_Len(wc_Sha256* sha256, const byte* data, word32 len)
14651470#endif /* !NO_SHA256 */
14661471#endif /* !__aarch64__ && __thumb__ */
14671472#endif /* WOLFSSL_ARMASM */
1468- #endif /* !defined(__aarch64__) && defined(__arm__ ) */
1473+ #endif /* !defined(__aarch64__) && defined(__thumb__ ) */
14691474#endif /* WOLFSSL_ARMASM */
14701475
14711476#endif /* WOLFSSL_ARMASM_INLINE */
0 commit comments