Merge pull request #8395 from SparkiDev/asm32_asm_older_opt

ARM32 ASM: optimize older platform alternatives
This commit is contained in:
David Garske
2025-01-30 15:47:25 -08:00
committed by GitHub
13 changed files with 2833 additions and 5563 deletions

View File

@@ -808,8 +808,7 @@ AES_set_encrypt_key:
cmp r1, #0xc0
beq L_AES_set_encrypt_key_start_192
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -1038,8 +1037,7 @@ L_AES_set_encrypt_key_loop_256:
b L_AES_set_encrypt_key_end
L_AES_set_encrypt_key_start_192:
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -1203,8 +1201,7 @@ L_AES_set_encrypt_key_loop_192:
b L_AES_set_encrypt_key_end
L_AES_set_encrypt_key_start_128:
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -3952,8 +3949,7 @@ L_AES_CBC_decrypt_loop_block_256:
ldr r7, [lr, #12]
ldr lr, [sp, #16]
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [lr]
str r5, [lr, #4]
stm lr, {r4, r5}
#else
strd r4, r5, [lr]
#endif
@@ -4141,8 +4137,7 @@ L_AES_CBC_decrypt_loop_block_192:
ldr r7, [lr, #12]
ldr lr, [sp, #16]
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [lr]
str r5, [lr, #4]
stm lr, {r4, r5}
#else
strd r4, r5, [lr]
#endif
@@ -4330,8 +4325,7 @@ L_AES_CBC_decrypt_loop_block_128:
ldr r7, [lr, #12]
ldr lr, [sp, #16]
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [lr]
str r5, [lr, #4]
stm lr, {r4, r5}
#else
strd r4, r5, [lr]
#endif
@@ -4438,8 +4432,7 @@ L_AES_CBC_decrypt_end_odd:
ldrd r10, r11, [r4, #24]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r8, [r4]
str r9, [r4, #4]
stm r4, {r8, r9}
#else
strd r8, r9, [r4]
#endif

View File

@@ -441,8 +441,7 @@ void AES_set_encrypt_key(const unsigned char* key_p, word32 len_p,
"cmp %[len], #0xc0\n\t"
"beq L_AES_set_encrypt_key_start_192_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[key]]\n\t"
"ldr r5, [%[key], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[key]]\n\t"
#endif
@@ -673,8 +672,7 @@ void AES_set_encrypt_key(const unsigned char* key_p, word32 len_p,
"\n"
"L_AES_set_encrypt_key_start_192_%=: \n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[key]]\n\t"
"ldr r5, [%[key], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[key]]\n\t"
#endif
@@ -840,8 +838,7 @@ void AES_set_encrypt_key(const unsigned char* key_p, word32 len_p,
"\n"
"L_AES_set_encrypt_key_start_128_%=: \n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[key]]\n\t"
"ldr r5, [%[key], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[key]]\n\t"
#endif
@@ -3465,8 +3462,7 @@ void AES_CBC_decrypt(const unsigned char* in_p, unsigned char* out_p,
"ldr r7, [lr, #12]\n\t"
"ldr lr, [sp, #16]\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [lr]\n\t"
"str r5, [lr, #4]\n\t"
"stm lr, {r4, r5}\n\t"
#else
"strd r4, r5, [lr]\n\t"
#endif
@@ -3655,8 +3651,7 @@ void AES_CBC_decrypt(const unsigned char* in_p, unsigned char* out_p,
"ldr r7, [lr, #12]\n\t"
"ldr lr, [sp, #16]\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [lr]\n\t"
"str r5, [lr, #4]\n\t"
"stm lr, {r4, r5}\n\t"
#else
"strd r4, r5, [lr]\n\t"
#endif
@@ -3845,8 +3840,7 @@ void AES_CBC_decrypt(const unsigned char* in_p, unsigned char* out_p,
"ldr r7, [lr, #12]\n\t"
"ldr lr, [sp, #16]\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [lr]\n\t"
"str r5, [lr, #4]\n\t"
"stm lr, {r4, r5}\n\t"
#else
"strd r4, r5, [lr]\n\t"
#endif
@@ -3954,8 +3948,7 @@ void AES_CBC_decrypt(const unsigned char* in_p, unsigned char* out_p,
"ldrd r10, r11, [r4, #24]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r8, [r4]\n\t"
"str r9, [r4, #4]\n\t"
"stm r4, {r8, r9}\n\t"
#else
"strd r8, r9, [r4]\n\t"
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -114,8 +114,7 @@ Transform_Sha256_Len:
adr r3, L_SHA256_transform_len_k
# Copy digest to add in at end
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -186,8 +185,7 @@ L_SHA256_transform_len_begin:
eor r6, r6, r10, lsr #8
eor r7, r7, r11, lsr #8
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [sp]
str r5, [sp, #4]
stm sp, {r4, r5}
#else
strd r4, r5, [sp]
#endif
@@ -311,8 +309,7 @@ L_SHA256_transform_len_begin:
rev r10, r10
rev r11, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [sp]
str r5, [sp, #4]
stm sp, {r4, r5}
#else
strd r4, r5, [sp]
#endif
@@ -1650,8 +1647,7 @@ L_SHA256_transform_len_start:
str r9, [r0]
# Add in digest from start
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -1678,8 +1674,7 @@ L_SHA256_transform_len_start:
add r6, r6, r10
add r7, r7, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -1841,8 +1836,7 @@ Transform_Sha256_Len:
vpush {d8-d11}
sub sp, sp, #24
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r0, [sp]
str r1, [sp, #4]
stm sp, {r0, r1}
#else
strd r0, r1, [sp]
#endif
@@ -1850,8 +1844,7 @@ Transform_Sha256_Len:
adr r12, L_SHA256_transform_neon_len_k
# Load digest into registers
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r2, [r0]
ldr r3, [r0, #4]
ldm r0, {r2, r3}
#else
ldrd r2, r3, [r0]
#endif
@@ -2799,16 +2792,14 @@ L_SHA256_transform_neon_len_start:
ldr r10, [sp]
# Add in digest from start
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r0, [r10]
ldr r1, [r10, #4]
ldm r10, {r0, r1}
#else
ldrd r0, r1, [r10]
#endif
add r2, r2, r0
add r3, r3, r1
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r2, [r10]
str r3, [r10, #4]
stm r10, {r2, r3}
#else
strd r2, r3, [r10]
#endif

View File

@@ -85,8 +85,7 @@ void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p, word32 len_p)
"sub sp, sp, #0xc0\n\t"
/* Copy digest to add in at end */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha256]]\n\t"
"ldr r5, [%[sha256], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha256]]\n\t"
#endif
@@ -158,8 +157,7 @@ void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p, word32 len_p)
"eor r6, r6, r10, lsr #8\n\t"
"eor r7, r7, r11, lsr #8\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [sp]\n\t"
"str r5, [sp, #4]\n\t"
"stm sp, {r4, r5}\n\t"
#else
"strd r4, r5, [sp]\n\t"
#endif
@@ -283,8 +281,7 @@ void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p, word32 len_p)
"rev r10, r10\n\t"
"rev r11, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [sp]\n\t"
"str r5, [sp, #4]\n\t"
"stm sp, {r4, r5}\n\t"
#else
"strd r4, r5, [sp]\n\t"
#endif
@@ -1623,8 +1620,7 @@ void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p, word32 len_p)
"str r9, [%[sha256]]\n\t"
/* Add in digest from start */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha256]]\n\t"
"ldr r5, [%[sha256], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha256]]\n\t"
#endif
@@ -1651,8 +1647,7 @@ void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p, word32 len_p)
"add r6, r6, r10\n\t"
"add r7, r7, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha256]]\n\t"
"str r5, [%[sha256], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha256]]\n\t"
#endif
@@ -1774,8 +1769,7 @@ void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p, word32 len_p)
__asm__ __volatile__ (
"sub sp, sp, #24\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str %[sha256], [sp]\n\t"
"str %[data], [sp, #4]\n\t"
"stm sp, {r0, r1}\n\t"
#else
"strd %[sha256], %[data], [sp]\n\t"
#endif
@@ -1783,8 +1777,7 @@ void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p, word32 len_p)
"mov r12, %[L_SHA256_transform_neon_len_k]\n\t"
/* Load digest into registers */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr %[len], [%[sha256]]\n\t"
"ldr r3, [%[sha256], #4]\n\t"
"ldm r0, {r2, r3}\n\t"
#else
"ldrd %[len], r3, [%[sha256]]\n\t"
#endif
@@ -2734,16 +2727,14 @@ void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p, word32 len_p)
"ldr r10, [sp]\n\t"
/* Add in digest from start */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr %[sha256], [r10]\n\t"
"ldr %[data], [r10, #4]\n\t"
"ldm r10, {r0, r1}\n\t"
#else
"ldrd %[sha256], %[data], [r10]\n\t"
#endif
"add %[len], %[len], %[sha256]\n\t"
"add r3, r3, %[data]\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str %[len], [r10]\n\t"
"str r3, [r10, #4]\n\t"
"stm r10, {r2, r3}\n\t"
#else
"strd %[len], r3, [r10]\n\t"
#endif

View File

@@ -510,8 +510,7 @@ L_sha3_arm32_begin:
eor r3, r3, r5, lsl #1
# Calc b[0] and XOR t[0] into s[x*5+0]
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -548,8 +547,7 @@ L_sha3_arm32_begin:
eor r10, r10, r2
eor r11, r11, r3
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -724,8 +722,7 @@ L_sha3_arm32_begin:
str lr, [sp, #20]
# Calc t[1]
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r2, [sp]
ldr r3, [sp, #4]
ldm sp, {r2, r3}
#else
ldrd r2, r3, [sp]
#endif
@@ -884,8 +881,7 @@ L_sha3_arm32_begin:
ldrd r2, r3, [sp, #24]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [sp]
ldr r5, [sp, #4]
ldm sp, {r4, r5}
#else
ldrd r4, r5, [sp]
#endif
@@ -959,8 +955,7 @@ L_sha3_arm32_begin:
# Row Mix
# Row 0
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r2, [r0]
ldr r3, [r0, #4]
ldm r0, {r2, r3}
#else
ldrd r2, r3, [r0]
#endif
@@ -1036,8 +1031,7 @@ L_sha3_arm32_begin:
str lr, [sp, #36]
# Get constant
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r10, [r1]
ldr r11, [r1, #4]
ldm r1, {r10, r11}
#else
ldrd r10, r11, [r1]
#endif
@@ -1493,8 +1487,7 @@ L_sha3_arm32_begin:
eor r3, r3, r5, lsl #1
# Calc b[0] and XOR t[0] into s[x*5+0]
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [sp]
ldr r5, [sp, #4]
ldm sp, {r4, r5}
#else
ldrd r4, r5, [sp]
#endif
@@ -1531,8 +1524,7 @@ L_sha3_arm32_begin:
eor r10, r10, r2
eor r11, r11, r3
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [sp]
str r5, [sp, #4]
stm sp, {r4, r5}
#else
strd r4, r5, [sp]
#endif
@@ -1707,8 +1699,7 @@ L_sha3_arm32_begin:
str lr, [r0, #20]
# Calc t[1]
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r2, [r0]
ldr r3, [r0, #4]
ldm r0, {r2, r3}
#else
ldrd r2, r3, [r0]
#endif
@@ -1867,8 +1858,7 @@ L_sha3_arm32_begin:
ldrd r2, r3, [r0, #24]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -1942,8 +1932,7 @@ L_sha3_arm32_begin:
# Row Mix
# Row 0
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r2, [sp]
ldr r3, [sp, #4]
ldm sp, {r2, r3}
#else
ldrd r2, r3, [sp]
#endif
@@ -2019,8 +2008,7 @@ L_sha3_arm32_begin:
str lr, [r0, #36]
# Get constant
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r10, [r1]
ldr r11, [r1, #4]
ldm r1, {r10, r11}
#else
ldrd r10, r11, [r1]
#endif

View File

@@ -462,8 +462,7 @@ void BlockSha3(word64* state_p)
"eor r3, r3, r5, lsl #1\n\t"
/* Calc b[0] and XOR t[0] into s[x*5+0] */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[state]]\n\t"
"ldr r5, [%[state], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[state]]\n\t"
#endif
@@ -500,8 +499,7 @@ void BlockSha3(word64* state_p)
"eor r10, r10, r2\n\t"
"eor r11, r11, r3\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[state]]\n\t"
"str r5, [%[state], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[state]]\n\t"
#endif
@@ -676,8 +674,7 @@ void BlockSha3(word64* state_p)
"str lr, [sp, #20]\n\t"
/* Calc t[1] */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r2, [sp]\n\t"
"ldr r3, [sp, #4]\n\t"
"ldm sp, {r2, r3}\n\t"
#else
"ldrd r2, r3, [sp]\n\t"
#endif
@@ -836,8 +833,7 @@ void BlockSha3(word64* state_p)
"ldrd r2, r3, [sp, #24]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [sp]\n\t"
"ldr r5, [sp, #4]\n\t"
"ldm sp, {r4, r5}\n\t"
#else
"ldrd r4, r5, [sp]\n\t"
#endif
@@ -911,8 +907,7 @@ void BlockSha3(word64* state_p)
/* Row Mix */
/* Row 0 */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r2, [%[state]]\n\t"
"ldr r3, [%[state], #4]\n\t"
"ldm r0, {r2, r3}\n\t"
#else
"ldrd r2, r3, [%[state]]\n\t"
#endif
@@ -988,8 +983,7 @@ void BlockSha3(word64* state_p)
"str lr, [sp, #36]\n\t"
/* Get constant */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r10, [r1]\n\t"
"ldr r11, [r1, #4]\n\t"
"ldm r1, {r10, r11}\n\t"
#else
"ldrd r10, r11, [r1]\n\t"
#endif
@@ -1445,8 +1439,7 @@ void BlockSha3(word64* state_p)
"eor r3, r3, r5, lsl #1\n\t"
/* Calc b[0] and XOR t[0] into s[x*5+0] */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [sp]\n\t"
"ldr r5, [sp, #4]\n\t"
"ldm sp, {r4, r5}\n\t"
#else
"ldrd r4, r5, [sp]\n\t"
#endif
@@ -1483,8 +1476,7 @@ void BlockSha3(word64* state_p)
"eor r10, r10, r2\n\t"
"eor r11, r11, r3\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [sp]\n\t"
"str r5, [sp, #4]\n\t"
"stm sp, {r4, r5}\n\t"
#else
"strd r4, r5, [sp]\n\t"
#endif
@@ -1659,8 +1651,7 @@ void BlockSha3(word64* state_p)
"str lr, [%[state], #20]\n\t"
/* Calc t[1] */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r2, [%[state]]\n\t"
"ldr r3, [%[state], #4]\n\t"
"ldm r0, {r2, r3}\n\t"
#else
"ldrd r2, r3, [%[state]]\n\t"
#endif
@@ -1819,8 +1810,7 @@ void BlockSha3(word64* state_p)
"ldrd r2, r3, [%[state], #24]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[state]]\n\t"
"ldr r5, [%[state], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[state]]\n\t"
#endif
@@ -1894,8 +1884,7 @@ void BlockSha3(word64* state_p)
/* Row Mix */
/* Row 0 */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r2, [sp]\n\t"
"ldr r3, [sp, #4]\n\t"
"ldm sp, {r2, r3}\n\t"
#else
"ldrd r2, r3, [sp]\n\t"
#endif
@@ -1971,8 +1960,7 @@ void BlockSha3(word64* state_p)
"str lr, [%[state], #36]\n\t"
/* Get constant */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r10, [r1]\n\t"
"ldr r11, [r1, #4]\n\t"
"ldm r1, {r10, r11}\n\t"
#else
"ldrd r10, r11, [r1]\n\t"
#endif

View File

@@ -210,8 +210,7 @@ Transform_Sha512_Len:
adr r3, L_SHA512_transform_len_k
# Copy digest to add in at end
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -685,16 +684,14 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [sp]
ldr r9, [sp, #4]
ldm sp, {r8, r9}
#else
ldrd r8, r9, [sp]
#endif
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r3]
ldr r7, [r3, #4]
ldm r3, {r6, r7}
#else
ldrd r6, r7, [r3]
#endif
@@ -717,8 +714,7 @@ L_SHA512_transform_len_start:
adds r8, r8, r4
adc r9, r9, r5
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -753,8 +749,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0]
ldr r9, [r0, #4]
ldm r0, {r8, r9}
#else
ldrd r8, r9, [r0]
#endif
@@ -815,8 +810,7 @@ L_SHA512_transform_len_start:
eor r7, r7, r9
eor r6, r6, r8
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [sp]
ldr r5, [sp, #4]
ldm sp, {r4, r5}
#else
ldrd r4, r5, [sp]
#endif
@@ -831,8 +825,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r8
adc r5, r5, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [sp]
str r5, [sp, #4]
stm sp, {r4, r5}
#else
strd r4, r5, [sp]
#endif
@@ -858,16 +851,14 @@ L_SHA512_transform_len_start:
eor r7, r7, r9
eor r6, r6, r8
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [sp]
ldr r5, [sp, #4]
ldm sp, {r4, r5}
#else
ldrd r4, r5, [sp]
#endif
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [sp]
str r5, [sp, #4]
stm sp, {r4, r5}
#else
strd r4, r5, [sp]
#endif
@@ -1013,8 +1004,7 @@ L_SHA512_transform_len_start:
ldrd r8, r9, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0]
ldr r7, [r0, #4]
ldm r0, {r6, r7}
#else
ldrd r6, r7, [r0]
#endif
@@ -1302,8 +1292,7 @@ L_SHA512_transform_len_start:
mov r11, r9
# Calc new W[2]
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [sp]
ldr r5, [sp, #4]
ldm sp, {r4, r5}
#else
ldrd r4, r5, [sp]
#endif
@@ -1463,8 +1452,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r8
adc r5, r5, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0]
ldr r9, [r0, #4]
ldm r0, {r8, r9}
#else
ldrd r8, r9, [r0]
#endif
@@ -1485,8 +1473,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #40]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r8, [r0]
str r9, [r0, #4]
stm r0, {r8, r9}
#else
strd r8, r9, [r0]
#endif
@@ -1635,8 +1622,7 @@ L_SHA512_transform_len_start:
#endif
# Round 4
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -1671,8 +1657,7 @@ L_SHA512_transform_len_start:
strd r4, r5, [r0, #24]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -1931,8 +1916,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0]
ldr r7, [r0, #4]
ldm r0, {r6, r7}
#else
ldrd r6, r7, [r0]
#endif
@@ -2191,8 +2175,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0]
ldr r9, [r0, #4]
ldm r0, {r8, r9}
#else
ldrd r8, r9, [r0]
#endif
@@ -2417,8 +2400,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #9
orr r8, r8, r5, lsr #9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -2427,8 +2409,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -2457,8 +2438,7 @@ L_SHA512_transform_len_start:
eor r6, r6, r8
eor r7, r7, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -2487,8 +2467,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -2521,8 +2500,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #7
orr r8, r8, r5, lsr #7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -2543,8 +2521,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #16]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -2555,16 +2532,14 @@ L_SHA512_transform_len_start:
eor r10, r10, r6
eor r11, r11, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0]
ldr r7, [r0, #4]
ldm r0, {r6, r7}
#else
ldrd r6, r7, [r0]
#endif
adds r6, r6, r10
adc r7, r7, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r6, [r0]
str r7, [r0, #4]
stm r0, {r6, r7}
#else
strd r6, r7, [r0]
#endif
@@ -2599,8 +2574,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [sp, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [sp]
ldr r9, [sp, #4]
ldm sp, {r8, r9}
#else
ldrd r8, r9, [sp]
#endif
@@ -2749,8 +2723,7 @@ L_SHA512_transform_len_start:
adds r8, r8, r4
adc r9, r9, r5
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -2785,8 +2758,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0]
ldr r9, [r0, #4]
ldm r0, {r8, r9}
#else
ldrd r8, r9, [r0]
#endif
@@ -3045,8 +3017,7 @@ L_SHA512_transform_len_start:
ldrd r8, r9, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0]
ldr r7, [r0, #4]
ldm r0, {r6, r7}
#else
ldrd r6, r7, [r0]
#endif
@@ -3495,8 +3466,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r8
adc r5, r5, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0]
ldr r9, [r0, #4]
ldm r0, {r8, r9}
#else
ldrd r8, r9, [r0]
#endif
@@ -3517,8 +3487,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #40]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r8, [r0]
str r9, [r0, #4]
stm r0, {r8, r9}
#else
strd r8, r9, [r0]
#endif
@@ -3667,8 +3636,7 @@ L_SHA512_transform_len_start:
#endif
# Round 12
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -3703,8 +3671,7 @@ L_SHA512_transform_len_start:
strd r4, r5, [r0, #24]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -3963,8 +3930,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0]
ldr r7, [r0, #4]
ldm r0, {r6, r7}
#else
ldrd r6, r7, [r0]
#endif
@@ -4223,8 +4189,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0]
ldr r9, [r0, #4]
ldm r0, {r8, r9}
#else
ldrd r8, r9, [r0]
#endif
@@ -4449,8 +4414,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #9
orr r8, r8, r5, lsr #9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -4459,8 +4423,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -4489,8 +4452,7 @@ L_SHA512_transform_len_start:
eor r6, r6, r8
eor r7, r7, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -4519,8 +4481,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -4553,8 +4514,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #7
orr r8, r8, r5, lsr #7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -4575,8 +4535,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #16]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -4587,16 +4546,14 @@ L_SHA512_transform_len_start:
eor r10, r10, r6
eor r11, r11, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0]
ldr r7, [r0, #4]
ldm r0, {r6, r7}
#else
ldrd r6, r7, [r0]
#endif
adds r6, r6, r10
adc r7, r7, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r6, [r0]
str r7, [r0, #4]
stm r0, {r6, r7}
#else
strd r6, r7, [r0]
#endif
@@ -4647,8 +4604,7 @@ L_SHA512_transform_len_start:
strd r4, r5, [sp, #120]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [sp]
ldr r5, [sp, #4]
ldm sp, {r4, r5}
#else
ldrd r4, r5, [sp]
#endif
@@ -4752,16 +4708,14 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [sp]
ldr r9, [sp, #4]
ldm sp, {r8, r9}
#else
ldrd r8, r9, [sp]
#endif
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r3]
ldr r7, [r3, #4]
ldm r3, {r6, r7}
#else
ldrd r6, r7, [r3]
#endif
@@ -4784,8 +4738,7 @@ L_SHA512_transform_len_start:
adds r8, r8, r4
adc r9, r9, r5
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -4820,8 +4773,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0]
ldr r9, [r0, #4]
ldm r0, {r8, r9}
#else
ldrd r8, r9, [r0]
#endif
@@ -5001,8 +4953,7 @@ L_SHA512_transform_len_start:
ldrd r8, r9, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0]
ldr r7, [r0, #4]
ldm r0, {r6, r7}
#else
ldrd r6, r7, [r0]
#endif
@@ -5293,8 +5244,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r8
adc r5, r5, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0]
ldr r9, [r0, #4]
ldm r0, {r8, r9}
#else
ldrd r8, r9, [r0]
#endif
@@ -5315,8 +5265,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #40]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r8, [r0]
str r9, [r0, #4]
stm r0, {r8, r9}
#else
strd r8, r9, [r0]
#endif
@@ -5386,8 +5335,7 @@ L_SHA512_transform_len_start:
mov r11, r9
# Round 4
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -5422,8 +5370,7 @@ L_SHA512_transform_len_start:
strd r4, r5, [r0, #24]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -5603,8 +5550,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0]
ldr r7, [r0, #4]
ldm r0, {r6, r7}
#else
ldrd r6, r7, [r0]
#endif
@@ -5784,8 +5730,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0]
ldr r9, [r0, #4]
ldm r0, {r8, r9}
#else
ldrd r8, r9, [r0]
#endif
@@ -5931,8 +5876,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #9
orr r8, r8, r5, lsr #9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -5941,8 +5885,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -5971,8 +5914,7 @@ L_SHA512_transform_len_start:
eor r6, r6, r8
eor r7, r7, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -6001,8 +5943,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -6035,8 +5976,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #7
orr r8, r8, r5, lsr #7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -6057,8 +5997,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #16]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -6069,16 +6008,14 @@ L_SHA512_transform_len_start:
eor r10, r10, r6
eor r11, r11, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0]
ldr r7, [r0, #4]
ldm r0, {r6, r7}
#else
ldrd r6, r7, [r0]
#endif
adds r6, r6, r10
adc r7, r7, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r6, [r0]
str r7, [r0, #4]
stm r0, {r6, r7}
#else
strd r6, r7, [r0]
#endif
@@ -6184,8 +6121,7 @@ L_SHA512_transform_len_start:
adds r8, r8, r4
adc r9, r9, r5
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -6220,8 +6156,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0]
ldr r9, [r0, #4]
ldm r0, {r8, r9}
#else
ldrd r8, r9, [r0]
#endif
@@ -6401,8 +6336,7 @@ L_SHA512_transform_len_start:
ldrd r8, r9, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0]
ldr r7, [r0, #4]
ldm r0, {r6, r7}
#else
ldrd r6, r7, [r0]
#endif
@@ -6693,8 +6627,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r8
adc r5, r5, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0]
ldr r9, [r0, #4]
ldm r0, {r8, r9}
#else
ldrd r8, r9, [r0]
#endif
@@ -6715,8 +6648,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #40]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r8, [r0]
str r9, [r0, #4]
stm r0, {r8, r9}
#else
strd r8, r9, [r0]
#endif
@@ -6786,8 +6718,7 @@ L_SHA512_transform_len_start:
mov r11, r9
# Round 12
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -6822,8 +6753,7 @@ L_SHA512_transform_len_start:
strd r4, r5, [r0, #24]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -7003,8 +6933,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0]
ldr r7, [r0, #4]
ldm r0, {r6, r7}
#else
ldrd r6, r7, [r0]
#endif
@@ -7184,8 +7113,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #56]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0]
ldr r9, [r0, #4]
ldm r0, {r8, r9}
#else
ldrd r8, r9, [r0]
#endif
@@ -7331,8 +7259,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #9
orr r8, r8, r5, lsr #9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -7341,8 +7268,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -7371,8 +7297,7 @@ L_SHA512_transform_len_start:
eor r6, r6, r8
eor r7, r7, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -7401,8 +7326,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6
adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -7435,8 +7359,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #7
orr r8, r8, r5, lsr #7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -7457,8 +7380,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #16]
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif
@@ -7469,16 +7391,14 @@ L_SHA512_transform_len_start:
eor r10, r10, r6
eor r11, r11, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0]
ldr r7, [r0, #4]
ldm r0, {r6, r7}
#else
ldrd r6, r7, [r0]
#endif
adds r6, r6, r10
adc r7, r7, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r6, [r0]
str r7, [r0, #4]
stm r0, {r6, r7}
#else
strd r6, r7, [r0]
#endif
@@ -7486,8 +7406,7 @@ L_SHA512_transform_len_start:
mov r11, r9
# Add in digest from start
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0]
ldr r5, [r0, #4]
ldm r0, {r4, r5}
#else
ldrd r4, r5, [r0]
#endif
@@ -7514,8 +7433,7 @@ L_SHA512_transform_len_start:
adds r6, r6, r10
adc r7, r7, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0]
str r5, [r0, #4]
stm r0, {r4, r5}
#else
strd r4, r5, [r0]
#endif

View File

@@ -109,8 +109,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"sub sp, sp, #0xc0\n\t"
/* Copy digest to add in at end */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -586,16 +585,14 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r4, r5, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [sp]\n\t"
"ldr r9, [sp, #4]\n\t"
"ldm sp, {r8, r9}\n\t"
#else
"ldrd r8, r9, [sp]\n\t"
#endif
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [r3]\n\t"
"ldr r7, [r3, #4]\n\t"
"ldm r3, {r6, r7}\n\t"
#else
"ldrd r6, r7, [r3]\n\t"
#endif
@@ -618,8 +615,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r8, r8, r4\n\t"
"adc r9, r9, r5\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -654,8 +650,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t"
"ldr r9, [%[sha512], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[sha512]]\n\t"
#endif
@@ -716,8 +711,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"eor r7, r7, r9\n\t"
"eor r6, r6, r8\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [sp]\n\t"
"ldr r5, [sp, #4]\n\t"
"ldm sp, {r4, r5}\n\t"
#else
"ldrd r4, r5, [sp]\n\t"
#endif
@@ -732,8 +726,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r8\n\t"
"adc r5, r5, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [sp]\n\t"
"str r5, [sp, #4]\n\t"
"stm sp, {r4, r5}\n\t"
#else
"strd r4, r5, [sp]\n\t"
#endif
@@ -759,16 +752,14 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"eor r7, r7, r9\n\t"
"eor r6, r6, r8\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [sp]\n\t"
"ldr r5, [sp, #4]\n\t"
"ldm sp, {r4, r5}\n\t"
#else
"ldrd r4, r5, [sp]\n\t"
#endif
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [sp]\n\t"
"str r5, [sp, #4]\n\t"
"stm sp, {r4, r5}\n\t"
#else
"strd r4, r5, [sp]\n\t"
#endif
@@ -914,8 +905,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r8, r9, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t"
"ldr r7, [%[sha512], #4]\n\t"
"ldm r0, {r6, r7}\n\t"
#else
"ldrd r6, r7, [%[sha512]]\n\t"
#endif
@@ -1203,8 +1193,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"mov r11, r9\n\t"
/* Calc new W[2] */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [sp]\n\t"
"ldr r5, [sp, #4]\n\t"
"ldm sp, {r4, r5}\n\t"
#else
"ldrd r4, r5, [sp]\n\t"
#endif
@@ -1364,8 +1353,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r8\n\t"
"adc r5, r5, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t"
"ldr r9, [%[sha512], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[sha512]]\n\t"
#endif
@@ -1386,8 +1374,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r4, r5, [%[sha512], #40]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r8, [%[sha512]]\n\t"
"str r9, [%[sha512], #4]\n\t"
"stm r0, {r8, r9}\n\t"
#else
"strd r8, r9, [%[sha512]]\n\t"
#endif
@@ -1536,8 +1523,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
#endif
/* Round 4 */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -1572,8 +1558,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"strd r4, r5, [%[sha512], #24]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -1832,8 +1817,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r4, r5, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t"
"ldr r7, [%[sha512], #4]\n\t"
"ldm r0, {r6, r7}\n\t"
#else
"ldrd r6, r7, [%[sha512]]\n\t"
#endif
@@ -2092,8 +2076,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r6, r7, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t"
"ldr r9, [%[sha512], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[sha512]]\n\t"
#endif
@@ -2318,8 +2301,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"orr r9, r9, r4, lsr #9\n\t"
"orr r8, r8, r5, lsr #9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -2328,8 +2310,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t"
"str r5, [%[sha512], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha512]]\n\t"
#endif
@@ -2358,8 +2339,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"eor r6, r6, r8\n\t"
"eor r7, r7, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -2388,8 +2368,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t"
"str r5, [%[sha512], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha512]]\n\t"
#endif
@@ -2422,8 +2401,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"orr r9, r9, r4, lsr #7\n\t"
"orr r8, r8, r5, lsr #7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -2444,8 +2422,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r6, r7, [%[sha512], #16]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t"
"str r5, [%[sha512], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha512]]\n\t"
#endif
@@ -2456,16 +2433,14 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"eor r10, r10, r6\n\t"
"eor r11, r11, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t"
"ldr r7, [%[sha512], #4]\n\t"
"ldm r0, {r6, r7}\n\t"
#else
"ldrd r6, r7, [%[sha512]]\n\t"
#endif
"adds r6, r6, r10\n\t"
"adc r7, r7, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r6, [%[sha512]]\n\t"
"str r7, [%[sha512], #4]\n\t"
"stm r0, {r6, r7}\n\t"
#else
"strd r6, r7, [%[sha512]]\n\t"
#endif
@@ -2500,8 +2475,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r4, r5, [sp, #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [sp]\n\t"
"ldr r9, [sp, #4]\n\t"
"ldm sp, {r8, r9}\n\t"
#else
"ldrd r8, r9, [sp]\n\t"
#endif
@@ -2650,8 +2624,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r8, r8, r4\n\t"
"adc r9, r9, r5\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -2686,8 +2659,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t"
"ldr r9, [%[sha512], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[sha512]]\n\t"
#endif
@@ -2946,8 +2918,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r8, r9, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t"
"ldr r7, [%[sha512], #4]\n\t"
"ldm r0, {r6, r7}\n\t"
#else
"ldrd r6, r7, [%[sha512]]\n\t"
#endif
@@ -3396,8 +3367,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r8\n\t"
"adc r5, r5, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t"
"ldr r9, [%[sha512], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[sha512]]\n\t"
#endif
@@ -3418,8 +3388,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r4, r5, [%[sha512], #40]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r8, [%[sha512]]\n\t"
"str r9, [%[sha512], #4]\n\t"
"stm r0, {r8, r9}\n\t"
#else
"strd r8, r9, [%[sha512]]\n\t"
#endif
@@ -3568,8 +3537,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
#endif
/* Round 12 */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -3604,8 +3572,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"strd r4, r5, [%[sha512], #24]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -3864,8 +3831,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r4, r5, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t"
"ldr r7, [%[sha512], #4]\n\t"
"ldm r0, {r6, r7}\n\t"
#else
"ldrd r6, r7, [%[sha512]]\n\t"
#endif
@@ -4124,8 +4090,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r6, r7, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t"
"ldr r9, [%[sha512], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[sha512]]\n\t"
#endif
@@ -4350,8 +4315,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"orr r9, r9, r4, lsr #9\n\t"
"orr r8, r8, r5, lsr #9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -4360,8 +4324,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t"
"str r5, [%[sha512], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha512]]\n\t"
#endif
@@ -4390,8 +4353,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"eor r6, r6, r8\n\t"
"eor r7, r7, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -4420,8 +4382,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t"
"str r5, [%[sha512], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha512]]\n\t"
#endif
@@ -4454,8 +4415,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"orr r9, r9, r4, lsr #7\n\t"
"orr r8, r8, r5, lsr #7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -4476,8 +4436,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r6, r7, [%[sha512], #16]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t"
"str r5, [%[sha512], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha512]]\n\t"
#endif
@@ -4488,16 +4447,14 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"eor r10, r10, r6\n\t"
"eor r11, r11, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t"
"ldr r7, [%[sha512], #4]\n\t"
"ldm r0, {r6, r7}\n\t"
#else
"ldrd r6, r7, [%[sha512]]\n\t"
#endif
"adds r6, r6, r10\n\t"
"adc r7, r7, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r6, [%[sha512]]\n\t"
"str r7, [%[sha512], #4]\n\t"
"stm r0, {r6, r7}\n\t"
#else
"strd r6, r7, [%[sha512]]\n\t"
#endif
@@ -4548,8 +4505,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"strd r4, r5, [sp, #120]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [sp]\n\t"
"ldr r5, [sp, #4]\n\t"
"ldm sp, {r4, r5}\n\t"
#else
"ldrd r4, r5, [sp]\n\t"
#endif
@@ -4653,16 +4609,14 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r4, r5, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [sp]\n\t"
"ldr r9, [sp, #4]\n\t"
"ldm sp, {r8, r9}\n\t"
#else
"ldrd r8, r9, [sp]\n\t"
#endif
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [r3]\n\t"
"ldr r7, [r3, #4]\n\t"
"ldm r3, {r6, r7}\n\t"
#else
"ldrd r6, r7, [r3]\n\t"
#endif
@@ -4685,8 +4639,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r8, r8, r4\n\t"
"adc r9, r9, r5\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -4721,8 +4674,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t"
"ldr r9, [%[sha512], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[sha512]]\n\t"
#endif
@@ -4902,8 +4854,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r8, r9, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t"
"ldr r7, [%[sha512], #4]\n\t"
"ldm r0, {r6, r7}\n\t"
#else
"ldrd r6, r7, [%[sha512]]\n\t"
#endif
@@ -5194,8 +5145,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r8\n\t"
"adc r5, r5, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t"
"ldr r9, [%[sha512], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[sha512]]\n\t"
#endif
@@ -5216,8 +5166,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r4, r5, [%[sha512], #40]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r8, [%[sha512]]\n\t"
"str r9, [%[sha512], #4]\n\t"
"stm r0, {r8, r9}\n\t"
#else
"strd r8, r9, [%[sha512]]\n\t"
#endif
@@ -5287,8 +5236,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"mov r11, r9\n\t"
/* Round 4 */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -5323,8 +5271,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"strd r4, r5, [%[sha512], #24]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -5504,8 +5451,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r4, r5, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t"
"ldr r7, [%[sha512], #4]\n\t"
"ldm r0, {r6, r7}\n\t"
#else
"ldrd r6, r7, [%[sha512]]\n\t"
#endif
@@ -5685,8 +5631,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r6, r7, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t"
"ldr r9, [%[sha512], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[sha512]]\n\t"
#endif
@@ -5832,8 +5777,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"orr r9, r9, r4, lsr #9\n\t"
"orr r8, r8, r5, lsr #9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -5842,8 +5786,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t"
"str r5, [%[sha512], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha512]]\n\t"
#endif
@@ -5872,8 +5815,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"eor r6, r6, r8\n\t"
"eor r7, r7, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -5902,8 +5844,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t"
"str r5, [%[sha512], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha512]]\n\t"
#endif
@@ -5936,8 +5877,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"orr r9, r9, r4, lsr #7\n\t"
"orr r8, r8, r5, lsr #7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -5958,8 +5898,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r6, r7, [%[sha512], #16]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t"
"str r5, [%[sha512], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha512]]\n\t"
#endif
@@ -5970,16 +5909,14 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"eor r10, r10, r6\n\t"
"eor r11, r11, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t"
"ldr r7, [%[sha512], #4]\n\t"
"ldm r0, {r6, r7}\n\t"
#else
"ldrd r6, r7, [%[sha512]]\n\t"
#endif
"adds r6, r6, r10\n\t"
"adc r7, r7, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r6, [%[sha512]]\n\t"
"str r7, [%[sha512], #4]\n\t"
"stm r0, {r6, r7}\n\t"
#else
"strd r6, r7, [%[sha512]]\n\t"
#endif
@@ -6085,8 +6022,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r8, r8, r4\n\t"
"adc r9, r9, r5\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -6121,8 +6057,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t"
"ldr r9, [%[sha512], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[sha512]]\n\t"
#endif
@@ -6302,8 +6237,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r8, r9, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t"
"ldr r7, [%[sha512], #4]\n\t"
"ldm r0, {r6, r7}\n\t"
#else
"ldrd r6, r7, [%[sha512]]\n\t"
#endif
@@ -6594,8 +6528,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r8\n\t"
"adc r5, r5, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t"
"ldr r9, [%[sha512], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[sha512]]\n\t"
#endif
@@ -6616,8 +6549,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r4, r5, [%[sha512], #40]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r8, [%[sha512]]\n\t"
"str r9, [%[sha512], #4]\n\t"
"stm r0, {r8, r9}\n\t"
#else
"strd r8, r9, [%[sha512]]\n\t"
#endif
@@ -6687,8 +6619,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"mov r11, r9\n\t"
/* Round 12 */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -6723,8 +6654,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"strd r4, r5, [%[sha512], #24]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -6904,8 +6834,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r4, r5, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t"
"ldr r7, [%[sha512], #4]\n\t"
"ldm r0, {r6, r7}\n\t"
#else
"ldrd r6, r7, [%[sha512]]\n\t"
#endif
@@ -7085,8 +7014,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r6, r7, [%[sha512], #56]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t"
"ldr r9, [%[sha512], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[sha512]]\n\t"
#endif
@@ -7232,8 +7160,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"orr r9, r9, r4, lsr #9\n\t"
"orr r8, r8, r5, lsr #9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -7242,8 +7169,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t"
"str r5, [%[sha512], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha512]]\n\t"
#endif
@@ -7272,8 +7198,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"eor r6, r6, r8\n\t"
"eor r7, r7, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -7302,8 +7227,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t"
"str r5, [%[sha512], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha512]]\n\t"
#endif
@@ -7336,8 +7260,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"orr r9, r9, r4, lsr #7\n\t"
"orr r8, r8, r5, lsr #7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -7358,8 +7281,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"ldrd r6, r7, [%[sha512], #16]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t"
"str r5, [%[sha512], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha512]]\n\t"
#endif
@@ -7370,16 +7292,14 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"eor r10, r10, r6\n\t"
"eor r11, r11, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t"
"ldr r7, [%[sha512], #4]\n\t"
"ldm r0, {r6, r7}\n\t"
#else
"ldrd r6, r7, [%[sha512]]\n\t"
#endif
"adds r6, r6, r10\n\t"
"adc r7, r7, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r6, [%[sha512]]\n\t"
"str r7, [%[sha512], #4]\n\t"
"stm r0, {r6, r7}\n\t"
#else
"strd r6, r7, [%[sha512]]\n\t"
#endif
@@ -7387,8 +7307,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"mov r11, r9\n\t"
/* Add in digest from start */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t"
"ldr r5, [%[sha512], #4]\n\t"
"ldm r0, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[sha512]]\n\t"
#endif
@@ -7415,8 +7334,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
"adds r6, r6, r10\n\t"
"adc r7, r7, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t"
"str r5, [%[sha512], #4]\n\t"
"stm r0, {r4, r5}\n\t"
#else
"strd r4, r5, [%[sha512]]\n\t"
#endif

View File

@@ -42808,9 +42808,8 @@ static sp_int32 sp_3072_cmp_96(const sp_digit* a_p, const sp_digit* b_p)
"mov r3, #-1\n\t"
#ifdef WOLFSSL_SP_SMALL
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r4, #0x1\n\t"
"lsl r4, r4, #8\n\t"
"add r4, r4, #0x7c\n\t"
"mov r4, #0x7c\n\t"
"orr r4, r4, #0x100\n\t"
#else
"mov r4, #0x17c\n\t"
#endif
@@ -57896,9 +57895,8 @@ static sp_int32 sp_4096_cmp_128(const sp_digit* a_p, const sp_digit* b_p)
"mov r3, #-1\n\t"
#ifdef WOLFSSL_SP_SMALL
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r4, #0x1\n\t"
"lsl r4, r4, #8\n\t"
"add r4, r4, #0xfc\n\t"
"mov r4, #0xfc\n\t"
"orr r4, r4, #0x100\n\t"
#else
"mov r4, #0x1fc\n\t"
#endif
@@ -78239,8 +78237,7 @@ static void sp_256_rshift1_8(sp_digit* r_p, const sp_digit* a_p)
"strd r8, r9, [%[r], #24]\n\t"
#endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r2, [%[a]]\n\t"
"ldr r3, [%[a], #4]\n\t"
"ldm r1, {r2, r3}\n\t"
#else
"ldrd r2, r3, [%[a]]\n\t"
#endif
@@ -78259,8 +78256,7 @@ static void sp_256_rshift1_8(sp_digit* r_p, const sp_digit* a_p)
"orr r8, r8, r5, lsl #31\n\t"
"orr r9, r9, r12, lsl #31\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r6, [%[r]]\n\t"
"str r7, [%[r], #4]\n\t"
"stm r0, {r6, r7}\n\t"
#else
"strd r6, r7, [%[r]]\n\t"
#endif
@@ -78733,13 +78729,7 @@ static int sp_256_num_bits_8(const sp_digit* a_p)
"ldr r1, [%[a], #28]\n\t"
"cmp r1, #0\n\t"
"beq L_sp_256_num_bits_8_7_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x0\n\t"
#else
"mov r2, #0x100\n\t"
#endif
"clz r12, r1\n\t"
"sub r12, r2, r12\n\t"
"b L_sp_256_num_bits_8_9_%=\n\t"
@@ -96074,8 +96064,7 @@ static void sp_384_div2_mod_12(sp_digit* r_p, const sp_digit* a_p, const sp_digi
"L_sp_384_div2_mod_12_div2_%=: \n\t"
"sub %[r], %[r], #48\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[r]]\n\t"
"ldr r9, [%[r], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[r]]\n\t"
#endif
@@ -96183,9 +96172,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_11_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x78\n\t"
"mov r2, #0x78\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x178\n\t"
#endif
@@ -96199,9 +96187,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_11_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x70\n\t"
"mov r2, #0x70\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x170\n\t"
#endif
@@ -96215,9 +96202,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_11_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x68\n\t"
"mov r2, #0x68\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x168\n\t"
#endif
@@ -96228,9 +96214,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"L_sp_384_num_bits_12_11_1_%=: \n\t"
"and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x60\n\t"
"mov r2, #0x60\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x160\n\t"
#endif
@@ -96246,9 +96231,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_10_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x58\n\t"
"mov r2, #0x58\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x158\n\t"
#endif
@@ -96262,9 +96246,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_10_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x50\n\t"
"mov r2, #0x50\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x150\n\t"
#endif
@@ -96278,9 +96261,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_10_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x48\n\t"
"mov r2, #0x48\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x148\n\t"
#endif
@@ -96291,9 +96273,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"L_sp_384_num_bits_12_10_1_%=: \n\t"
"and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x40\n\t"
"mov r2, #0x40\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x140\n\t"
#endif
@@ -96309,9 +96290,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_9_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x38\n\t"
"mov r2, #0x38\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x138\n\t"
#endif
@@ -96325,9 +96305,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_9_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x30\n\t"
"mov r2, #0x30\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x130\n\t"
#endif
@@ -96341,9 +96320,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_9_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x28\n\t"
"mov r2, #0x28\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x128\n\t"
#endif
@@ -96354,9 +96332,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"L_sp_384_num_bits_12_9_1_%=: \n\t"
"and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x20\n\t"
"mov r2, #0x20\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x120\n\t"
#endif
@@ -96372,9 +96349,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_8_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x18\n\t"
"mov r2, #0x18\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x118\n\t"
#endif
@@ -96388,9 +96364,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_8_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x10\n\t"
"mov r2, #0x10\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x110\n\t"
#endif
@@ -96404,9 +96379,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_8_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x8\n\t"
"mov r2, #0x8\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x108\n\t"
#endif
@@ -96416,13 +96390,7 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"\n"
"L_sp_384_num_bits_12_8_1_%=: \n\t"
"and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x0\n\t"
#else
"mov r2, #0x100\n\t"
#endif
"ldrb r12, [lr, r3]\n\t"
"add r12, r2, r12\n\t"
"b L_sp_384_num_bits_12_13_%=\n\t"
@@ -96754,9 +96722,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r1, #0\n\t"
"beq L_sp_384_num_bits_12_11_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x80\n\t"
"mov r2, #0x80\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x180\n\t"
#endif
@@ -96769,9 +96736,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r1, #0\n\t"
"beq L_sp_384_num_bits_12_10_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x60\n\t"
"mov r2, #0x60\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x160\n\t"
#endif
@@ -96784,9 +96750,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r1, #0\n\t"
"beq L_sp_384_num_bits_12_9_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x40\n\t"
"mov r2, #0x40\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x140\n\t"
#endif
@@ -96799,9 +96764,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r1, #0\n\t"
"beq L_sp_384_num_bits_12_8_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x20\n\t"
"mov r2, #0x20\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x120\n\t"
#endif
@@ -96813,13 +96777,7 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"ldr r1, [%[a], #28]\n\t"
"cmp r1, #0\n\t"
"beq L_sp_384_num_bits_12_7_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x0\n\t"
#else
"mov r2, #0x100\n\t"
#endif
"clz r12, r1\n\t"
"sub r12, r2, r12\n\t"
"b L_sp_384_num_bits_12_13_%=\n\t"
@@ -115793,9 +115751,8 @@ static SP_NOINLINE void sp_521_mont_reduce_17(sp_digit* a_p, const sp_digit* m_p
"ldm %[a], {r1, r2, r3, r4, r5}\n\t"
"ldm sp!, {r7, r8, r9, r10, r11}\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov lr, #0x1\n\t"
"lsl lr, lr, #8\n\t"
"add lr, lr, #0xff\n\t"
"mov lr, #0xff\n\t"
"orr lr, lr, #0x100\n\t"
#else
"mov lr, #0x1ff\n\t"
#endif
@@ -115872,9 +115829,8 @@ static SP_NOINLINE void sp_521_mont_reduce_order_17(sp_digit* a_p, const sp_digi
"cmp r9, #0x40\n\t"
"bne L_sp_521_mont_reduce_order_17_nomask_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r7, #0x1\n\t"
"lsl r7, r7, #8\n\t"
"add r7, r7, #0xff\n\t"
"mov r7, #0xff\n\t"
"orr r7, r7, #0x100\n\t"
#else
"mov r7, #0x1ff\n\t"
#endif
@@ -116500,9 +116456,8 @@ static SP_NOINLINE void sp_521_mont_reduce_order_17(sp_digit* a_p, const sp_digi
"cmp r9, #0x40\n\t"
"bne L_sp_521_mont_reduce_order_17_nomask_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r7, #0x1\n\t"
"lsl r7, r7, #8\n\t"
"add r7, r7, #0xff\n\t"
"mov r7, #0xff\n\t"
"orr r7, r7, #0x100\n\t"
#else
"mov r7, #0x1ff\n\t"
#endif
@@ -116762,9 +116717,8 @@ static SP_NOINLINE void sp_521_mont_reduce_order_17(sp_digit* a_p, const sp_digi
"cmp r12, #0x40\n\t"
"bne L_sp_521_mont_reduce_order_17_nomask_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r10, #0x1\n\t"
"lsl r10, r10, #8\n\t"
"add r10, r10, #0xff\n\t"
"mov r10, #0xff\n\t"
"orr r10, r10, #0x100\n\t"
#else
"mov r10, #0x1ff\n\t"
#endif
@@ -117414,9 +117368,8 @@ static void sp_521_mont_add_17(sp_digit* r_p, const sp_digit* a_p, const sp_digi
"ldm %[b]!, {r4}\n\t"
"adcs r8, r8, r4\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r12, #0x1\n\t"
"lsl r12, r12, #8\n\t"
"add r12, r12, #0xff\n\t"
"mov r12, #0xff\n\t"
"orr r12, r12, #0x100\n\t"
#else
"mov r12, #0x1ff\n\t"
#endif
@@ -117491,9 +117444,8 @@ static void sp_521_mont_dbl_17(sp_digit* r_p, const sp_digit* a_p, const sp_digi
"ldm %[a]!, {r4}\n\t"
"adcs r4, r4, r4\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r3, #0x1\n\t"
"lsl r3, r3, #8\n\t"
"add r3, r3, #0xff\n\t"
"mov r3, #0xff\n\t"
"orr r3, r3, #0x100\n\t"
#else
"mov r3, #0x1ff\n\t"
#endif
@@ -117602,9 +117554,8 @@ static void sp_521_mont_tpl_17(sp_digit* r_p, const sp_digit* a_p, const sp_digi
"ldm %[a]!, {r8}\n\t"
"adcs r4, r4, r8\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r3, #0x1\n\t"
"lsl r3, r3, #8\n\t"
"add r3, r3, #0xff\n\t"
"mov r3, #0xff\n\t"
"orr r3, r3, #0x100\n\t"
#else
"mov r3, #0x1ff\n\t"
#endif
@@ -117677,9 +117628,8 @@ static void sp_521_mont_sub_17(sp_digit* r_p, const sp_digit* a_p, const sp_digi
"ldm %[b]!, {r4}\n\t"
"sbcs r8, r8, r4\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r12, #0x1\n\t"
"lsl r12, r12, #8\n\t"
"add r12, r12, #0xff\n\t"
"mov r12, #0xff\n\t"
"orr r12, r12, #0x100\n\t"
#else
"mov r12, #0x1ff\n\t"
#endif
@@ -122419,8 +122369,7 @@ static void sp_521_rshift_17(sp_digit* r_p, const sp_digit* a_p, byte n_p)
__asm__ __volatile__ (
"rsb r12, %[n], #32\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[a]]\n\t"
"ldr r5, [%[a], #4]\n\t"
"ldm r1, {r4, r5}\n\t"
#else
"ldrd r4, r5, [%[a]]\n\t"
#endif
@@ -124617,8 +124566,7 @@ static void sp_521_div2_mod_17(sp_digit* r_p, const sp_digit* a_p, const sp_digi
"L_sp_521_div2_mod_17_div2_%=: \n\t"
"sub %[r], %[r], #0x44\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[r]]\n\t"
"ldr r9, [%[r], #4]\n\t"
"ldm r0, {r8, r9}\n\t"
#else
"ldrd r8, r9, [%[r]]\n\t"
#endif
@@ -124746,9 +124694,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_16_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x2\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x18\n\t"
"mov r2, #0x18\n\t"
"orr r2, r2, #0x200\n\t"
#else
"mov r2, #0x218\n\t"
#endif
@@ -124762,9 +124709,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_16_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x2\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x10\n\t"
"mov r2, #0x10\n\t"
"orr r2, r2, #0x200\n\t"
#else
"mov r2, #0x210\n\t"
#endif
@@ -124778,9 +124724,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_16_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x2\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x8\n\t"
"mov r2, #0x8\n\t"
"orr r2, r2, #0x200\n\t"
#else
"mov r2, #0x208\n\t"
#endif
@@ -124790,13 +124735,7 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"\n"
"L_sp_521_num_bits_17_16_1_%=: \n\t"
"and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x2\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x0\n\t"
#else
"mov r2, #0x200\n\t"
#endif
"ldrb r12, [lr, r3]\n\t"
"add r12, r2, r12\n\t"
"b L_sp_521_num_bits_17_18_%=\n\t"
@@ -124809,9 +124748,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_15_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xf8\n\t"
"mov r2, #0xf8\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1f8\n\t"
#endif
@@ -124825,9 +124763,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_15_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xf0\n\t"
"mov r2, #0xf0\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1f0\n\t"
#endif
@@ -124841,9 +124778,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_15_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xe8\n\t"
"mov r2, #0xe8\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1e8\n\t"
#endif
@@ -124854,9 +124790,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"L_sp_521_num_bits_17_15_1_%=: \n\t"
"and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xe0\n\t"
"mov r2, #0xe0\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1e0\n\t"
#endif
@@ -124872,9 +124807,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_14_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xd8\n\t"
"mov r2, #0xd8\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1d8\n\t"
#endif
@@ -124888,9 +124822,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_14_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xd0\n\t"
"mov r2, #0xd0\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1d0\n\t"
#endif
@@ -124904,9 +124837,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_14_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xc8\n\t"
"mov r2, #0xc8\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1c8\n\t"
#endif
@@ -124917,9 +124849,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"L_sp_521_num_bits_17_14_1_%=: \n\t"
"and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xc0\n\t"
"mov r2, #0xc0\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1c0\n\t"
#endif
@@ -124935,9 +124866,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_13_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xb8\n\t"
"mov r2, #0xb8\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1b8\n\t"
#endif
@@ -124951,9 +124881,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_13_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xb0\n\t"
"mov r2, #0xb0\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1b0\n\t"
#endif
@@ -124967,9 +124896,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_13_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xa8\n\t"
"mov r2, #0xa8\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1a8\n\t"
#endif
@@ -124980,9 +124908,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"L_sp_521_num_bits_17_13_1_%=: \n\t"
"and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xa0\n\t"
"mov r2, #0xa0\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1a0\n\t"
#endif
@@ -124998,9 +124925,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_12_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x98\n\t"
"mov r2, #0x98\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x198\n\t"
#endif
@@ -125014,9 +124940,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_12_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x90\n\t"
"mov r2, #0x90\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x190\n\t"
#endif
@@ -125030,9 +124955,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_12_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x88\n\t"
"mov r2, #0x88\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x188\n\t"
#endif
@@ -125043,9 +124967,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"L_sp_521_num_bits_17_12_1_%=: \n\t"
"and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x80\n\t"
"mov r2, #0x80\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x180\n\t"
#endif
@@ -125061,9 +124984,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_11_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x78\n\t"
"mov r2, #0x78\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x178\n\t"
#endif
@@ -125077,9 +124999,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_11_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x70\n\t"
"mov r2, #0x70\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x170\n\t"
#endif
@@ -125093,9 +125014,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_11_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x68\n\t"
"mov r2, #0x68\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x168\n\t"
#endif
@@ -125106,9 +125026,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"L_sp_521_num_bits_17_11_1_%=: \n\t"
"and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x60\n\t"
"mov r2, #0x60\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x160\n\t"
#endif
@@ -125124,9 +125043,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_10_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x58\n\t"
"mov r2, #0x58\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x158\n\t"
#endif
@@ -125140,9 +125058,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_10_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x50\n\t"
"mov r2, #0x50\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x150\n\t"
#endif
@@ -125156,9 +125073,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_10_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x48\n\t"
"mov r2, #0x48\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x148\n\t"
#endif
@@ -125169,9 +125085,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"L_sp_521_num_bits_17_10_1_%=: \n\t"
"and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x40\n\t"
"mov r2, #0x40\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x140\n\t"
#endif
@@ -125187,9 +125102,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_9_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x38\n\t"
"mov r2, #0x38\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x138\n\t"
#endif
@@ -125203,9 +125117,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_9_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x30\n\t"
"mov r2, #0x30\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x130\n\t"
#endif
@@ -125219,9 +125132,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_9_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x28\n\t"
"mov r2, #0x28\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x128\n\t"
#endif
@@ -125232,9 +125144,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"L_sp_521_num_bits_17_9_1_%=: \n\t"
"and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x20\n\t"
"mov r2, #0x20\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x120\n\t"
#endif
@@ -125250,9 +125161,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_8_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x18\n\t"
"mov r2, #0x18\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x118\n\t"
#endif
@@ -125266,9 +125176,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_8_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x10\n\t"
"mov r2, #0x10\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x110\n\t"
#endif
@@ -125282,9 +125191,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_8_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x8\n\t"
"mov r2, #0x8\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x108\n\t"
#endif
@@ -125294,13 +125202,7 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"\n"
"L_sp_521_num_bits_17_8_1_%=: \n\t"
"and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x0\n\t"
#else
"mov r2, #0x100\n\t"
#endif
"ldrb r12, [lr, r3]\n\t"
"add r12, r2, r12\n\t"
"b L_sp_521_num_bits_17_18_%=\n\t"
@@ -125632,9 +125534,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_16_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x2\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x20\n\t"
"mov r2, #0x20\n\t"
"orr r2, r2, #0x200\n\t"
#else
"mov r2, #0x220\n\t"
#endif
@@ -125646,13 +125547,7 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"ldr r1, [%[a], #60]\n\t"
"cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_15_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x2\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x0\n\t"
#else
"mov r2, #0x200\n\t"
#endif
"clz r12, r1\n\t"
"sub r12, r2, r12\n\t"
"b L_sp_521_num_bits_17_18_%=\n\t"
@@ -125662,9 +125557,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_14_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xe0\n\t"
"mov r2, #0xe0\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1e0\n\t"
#endif
@@ -125677,9 +125571,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_13_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xc0\n\t"
"mov r2, #0xc0\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1c0\n\t"
#endif
@@ -125692,9 +125585,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_12_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0xa0\n\t"
"mov r2, #0xa0\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x1a0\n\t"
#endif
@@ -125707,9 +125599,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_11_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x80\n\t"
"mov r2, #0x80\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x180\n\t"
#endif
@@ -125722,9 +125613,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_10_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x60\n\t"
"mov r2, #0x60\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x160\n\t"
#endif
@@ -125737,9 +125627,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_9_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x40\n\t"
"mov r2, #0x40\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x140\n\t"
#endif
@@ -125752,9 +125641,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_8_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x20\n\t"
"mov r2, #0x20\n\t"
"orr r2, r2, #0x100\n\t"
#else
"mov r2, #0x120\n\t"
#endif
@@ -125766,13 +125654,7 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"ldr r1, [%[a], #28]\n\t"
"cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_7_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t"
"lsl r2, r2, #8\n\t"
"add r2, r2, #0x0\n\t"
#else
"mov r2, #0x100\n\t"
#endif
"clz r12, r1\n\t"
"sub r12, r2, r12\n\t"
"b L_sp_521_num_bits_17_18_%=\n\t"