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 cmp r1, #0xc0
beq L_AES_set_encrypt_key_start_192 beq L_AES_set_encrypt_key_start_192
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -1038,8 +1037,7 @@ L_AES_set_encrypt_key_loop_256:
b L_AES_set_encrypt_key_end b L_AES_set_encrypt_key_end
L_AES_set_encrypt_key_start_192: L_AES_set_encrypt_key_start_192:
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -1203,8 +1201,7 @@ L_AES_set_encrypt_key_loop_192:
b L_AES_set_encrypt_key_end b L_AES_set_encrypt_key_end
L_AES_set_encrypt_key_start_128: L_AES_set_encrypt_key_start_128:
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -3952,8 +3949,7 @@ L_AES_CBC_decrypt_loop_block_256:
ldr r7, [lr, #12] ldr r7, [lr, #12]
ldr lr, [sp, #16] ldr lr, [sp, #16]
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [lr] stm lr, {r4, r5}
str r5, [lr, #4]
#else #else
strd r4, r5, [lr] strd r4, r5, [lr]
#endif #endif
@@ -4141,8 +4137,7 @@ L_AES_CBC_decrypt_loop_block_192:
ldr r7, [lr, #12] ldr r7, [lr, #12]
ldr lr, [sp, #16] ldr lr, [sp, #16]
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [lr] stm lr, {r4, r5}
str r5, [lr, #4]
#else #else
strd r4, r5, [lr] strd r4, r5, [lr]
#endif #endif
@@ -4330,8 +4325,7 @@ L_AES_CBC_decrypt_loop_block_128:
ldr r7, [lr, #12] ldr r7, [lr, #12]
ldr lr, [sp, #16] ldr lr, [sp, #16]
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [lr] stm lr, {r4, r5}
str r5, [lr, #4]
#else #else
strd r4, r5, [lr] strd r4, r5, [lr]
#endif #endif
@@ -4438,8 +4432,7 @@ L_AES_CBC_decrypt_end_odd:
ldrd r10, r11, [r4, #24] ldrd r10, r11, [r4, #24]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r8, [r4] stm r4, {r8, r9}
str r9, [r4, #4]
#else #else
strd r8, r9, [r4] strd r8, r9, [r4]
#endif #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" "cmp %[len], #0xc0\n\t"
"beq L_AES_set_encrypt_key_start_192_%=\n\t" "beq L_AES_set_encrypt_key_start_192_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[key]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[key], #4]\n\t"
#else #else
"ldrd r4, r5, [%[key]]\n\t" "ldrd r4, r5, [%[key]]\n\t"
#endif #endif
@@ -673,8 +672,7 @@ void AES_set_encrypt_key(const unsigned char* key_p, word32 len_p,
"\n" "\n"
"L_AES_set_encrypt_key_start_192_%=: \n\t" "L_AES_set_encrypt_key_start_192_%=: \n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[key]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[key], #4]\n\t"
#else #else
"ldrd r4, r5, [%[key]]\n\t" "ldrd r4, r5, [%[key]]\n\t"
#endif #endif
@@ -840,8 +838,7 @@ void AES_set_encrypt_key(const unsigned char* key_p, word32 len_p,
"\n" "\n"
"L_AES_set_encrypt_key_start_128_%=: \n\t" "L_AES_set_encrypt_key_start_128_%=: \n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[key]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[key], #4]\n\t"
#else #else
"ldrd r4, r5, [%[key]]\n\t" "ldrd r4, r5, [%[key]]\n\t"
#endif #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 r7, [lr, #12]\n\t"
"ldr lr, [sp, #16]\n\t" "ldr lr, [sp, #16]\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [lr]\n\t" "stm lr, {r4, r5}\n\t"
"str r5, [lr, #4]\n\t"
#else #else
"strd r4, r5, [lr]\n\t" "strd r4, r5, [lr]\n\t"
#endif #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 r7, [lr, #12]\n\t"
"ldr lr, [sp, #16]\n\t" "ldr lr, [sp, #16]\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [lr]\n\t" "stm lr, {r4, r5}\n\t"
"str r5, [lr, #4]\n\t"
#else #else
"strd r4, r5, [lr]\n\t" "strd r4, r5, [lr]\n\t"
#endif #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 r7, [lr, #12]\n\t"
"ldr lr, [sp, #16]\n\t" "ldr lr, [sp, #16]\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [lr]\n\t" "stm lr, {r4, r5}\n\t"
"str r5, [lr, #4]\n\t"
#else #else
"strd r4, r5, [lr]\n\t" "strd r4, r5, [lr]\n\t"
#endif #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" "ldrd r10, r11, [r4, #24]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r8, [r4]\n\t" "stm r4, {r8, r9}\n\t"
"str r9, [r4, #4]\n\t"
#else #else
"strd r8, r9, [r4]\n\t" "strd r8, r9, [r4]\n\t"
#endif #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 adr r3, L_SHA256_transform_len_k
# Copy digest to add in at end # Copy digest to add in at end
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -186,8 +185,7 @@ L_SHA256_transform_len_begin:
eor r6, r6, r10, lsr #8 eor r6, r6, r10, lsr #8
eor r7, r7, r11, lsr #8 eor r7, r7, r11, lsr #8
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [sp] stm sp, {r4, r5}
str r5, [sp, #4]
#else #else
strd r4, r5, [sp] strd r4, r5, [sp]
#endif #endif
@@ -311,8 +309,7 @@ L_SHA256_transform_len_begin:
rev r10, r10 rev r10, r10
rev r11, r11 rev r11, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [sp] stm sp, {r4, r5}
str r5, [sp, #4]
#else #else
strd r4, r5, [sp] strd r4, r5, [sp]
#endif #endif
@@ -1650,8 +1647,7 @@ L_SHA256_transform_len_start:
str r9, [r0] str r9, [r0]
# Add in digest from start # Add in digest from start
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -1678,8 +1674,7 @@ L_SHA256_transform_len_start:
add r6, r6, r10 add r6, r6, r10
add r7, r7, r11 add r7, r7, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #endif
@@ -1841,8 +1836,7 @@ Transform_Sha256_Len:
vpush {d8-d11} vpush {d8-d11}
sub sp, sp, #24 sub sp, sp, #24
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r0, [sp] stm sp, {r0, r1}
str r1, [sp, #4]
#else #else
strd r0, r1, [sp] strd r0, r1, [sp]
#endif #endif
@@ -1850,8 +1844,7 @@ Transform_Sha256_Len:
adr r12, L_SHA256_transform_neon_len_k adr r12, L_SHA256_transform_neon_len_k
# Load digest into registers # Load digest into registers
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r2, [r0] ldm r0, {r2, r3}
ldr r3, [r0, #4]
#else #else
ldrd r2, r3, [r0] ldrd r2, r3, [r0]
#endif #endif
@@ -2799,16 +2792,14 @@ L_SHA256_transform_neon_len_start:
ldr r10, [sp] ldr r10, [sp]
# Add in digest from start # Add in digest from start
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r0, [r10] ldm r10, {r0, r1}
ldr r1, [r10, #4]
#else #else
ldrd r0, r1, [r10] ldrd r0, r1, [r10]
#endif #endif
add r2, r2, r0 add r2, r2, r0
add r3, r3, r1 add r3, r3, r1
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r2, [r10] stm r10, {r2, r3}
str r3, [r10, #4]
#else #else
strd r2, r3, [r10] strd r2, r3, [r10]
#endif #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" "sub sp, sp, #0xc0\n\t"
/* Copy digest to add in at end */ /* Copy digest to add in at end */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha256]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha256], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha256]]\n\t" "ldrd r4, r5, [%[sha256]]\n\t"
#endif #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 r6, r6, r10, lsr #8\n\t"
"eor r7, r7, r11, lsr #8\n\t" "eor r7, r7, r11, lsr #8\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [sp]\n\t" "stm sp, {r4, r5}\n\t"
"str r5, [sp, #4]\n\t"
#else #else
"strd r4, r5, [sp]\n\t" "strd r4, r5, [sp]\n\t"
#endif #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 r10, r10\n\t"
"rev r11, r11\n\t" "rev r11, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [sp]\n\t" "stm sp, {r4, r5}\n\t"
"str r5, [sp, #4]\n\t"
#else #else
"strd r4, r5, [sp]\n\t" "strd r4, r5, [sp]\n\t"
#endif #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" "str r9, [%[sha256]]\n\t"
/* Add in digest from start */ /* Add in digest from start */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha256]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha256], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha256]]\n\t" "ldrd r4, r5, [%[sha256]]\n\t"
#endif #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 r6, r6, r10\n\t"
"add r7, r7, r11\n\t" "add r7, r7, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha256]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha256], #4]\n\t"
#else #else
"strd r4, r5, [%[sha256]]\n\t" "strd r4, r5, [%[sha256]]\n\t"
#endif #endif
@@ -1774,8 +1769,7 @@ void Transform_Sha256_Len(wc_Sha256* sha256_p, const byte* data_p, word32 len_p)
__asm__ __volatile__ ( __asm__ __volatile__ (
"sub sp, sp, #24\n\t" "sub sp, sp, #24\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str %[sha256], [sp]\n\t" "stm sp, {r0, r1}\n\t"
"str %[data], [sp, #4]\n\t"
#else #else
"strd %[sha256], %[data], [sp]\n\t" "strd %[sha256], %[data], [sp]\n\t"
#endif #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" "mov r12, %[L_SHA256_transform_neon_len_k]\n\t"
/* Load digest into registers */ /* Load digest into registers */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr %[len], [%[sha256]]\n\t" "ldm r0, {r2, r3}\n\t"
"ldr r3, [%[sha256], #4]\n\t"
#else #else
"ldrd %[len], r3, [%[sha256]]\n\t" "ldrd %[len], r3, [%[sha256]]\n\t"
#endif #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" "ldr r10, [sp]\n\t"
/* Add in digest from start */ /* Add in digest from start */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr %[sha256], [r10]\n\t" "ldm r10, {r0, r1}\n\t"
"ldr %[data], [r10, #4]\n\t"
#else #else
"ldrd %[sha256], %[data], [r10]\n\t" "ldrd %[sha256], %[data], [r10]\n\t"
#endif #endif
"add %[len], %[len], %[sha256]\n\t" "add %[len], %[len], %[sha256]\n\t"
"add r3, r3, %[data]\n\t" "add r3, r3, %[data]\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str %[len], [r10]\n\t" "stm r10, {r2, r3}\n\t"
"str r3, [r10, #4]\n\t"
#else #else
"strd %[len], r3, [r10]\n\t" "strd %[len], r3, [r10]\n\t"
#endif #endif

View File

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

View File

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

View File

@@ -210,8 +210,7 @@ Transform_Sha512_Len:
adr r3, L_SHA512_transform_len_k adr r3, L_SHA512_transform_len_k
# Copy digest to add in at end # Copy digest to add in at end
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -685,16 +684,14 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #56] ldrd r4, r5, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [sp] ldm sp, {r8, r9}
ldr r9, [sp, #4]
#else #else
ldrd r8, r9, [sp] ldrd r8, r9, [sp]
#endif #endif
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r3] ldm r3, {r6, r7}
ldr r7, [r3, #4]
#else #else
ldrd r6, r7, [r3] ldrd r6, r7, [r3]
#endif #endif
@@ -717,8 +714,7 @@ L_SHA512_transform_len_start:
adds r8, r8, r4 adds r8, r8, r4
adc r9, r9, r5 adc r9, r9, r5
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -753,8 +749,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0] ldm r0, {r8, r9}
ldr r9, [r0, #4]
#else #else
ldrd r8, r9, [r0] ldrd r8, r9, [r0]
#endif #endif
@@ -815,8 +810,7 @@ L_SHA512_transform_len_start:
eor r7, r7, r9 eor r7, r7, r9
eor r6, r6, r8 eor r6, r6, r8
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [sp] ldm sp, {r4, r5}
ldr r5, [sp, #4]
#else #else
ldrd r4, r5, [sp] ldrd r4, r5, [sp]
#endif #endif
@@ -831,8 +825,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r8 adds r4, r4, r8
adc r5, r5, r9 adc r5, r5, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [sp] stm sp, {r4, r5}
str r5, [sp, #4]
#else #else
strd r4, r5, [sp] strd r4, r5, [sp]
#endif #endif
@@ -858,16 +851,14 @@ L_SHA512_transform_len_start:
eor r7, r7, r9 eor r7, r7, r9
eor r6, r6, r8 eor r6, r6, r8
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [sp] ldm sp, {r4, r5}
ldr r5, [sp, #4]
#else #else
ldrd r4, r5, [sp] ldrd r4, r5, [sp]
#endif #endif
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [sp] stm sp, {r4, r5}
str r5, [sp, #4]
#else #else
strd r4, r5, [sp] strd r4, r5, [sp]
#endif #endif
@@ -1013,8 +1004,7 @@ L_SHA512_transform_len_start:
ldrd r8, r9, [r0, #56] ldrd r8, r9, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0] ldm r0, {r6, r7}
ldr r7, [r0, #4]
#else #else
ldrd r6, r7, [r0] ldrd r6, r7, [r0]
#endif #endif
@@ -1302,8 +1292,7 @@ L_SHA512_transform_len_start:
mov r11, r9 mov r11, r9
# Calc new W[2] # Calc new W[2]
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [sp] ldm sp, {r4, r5}
ldr r5, [sp, #4]
#else #else
ldrd r4, r5, [sp] ldrd r4, r5, [sp]
#endif #endif
@@ -1463,8 +1452,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r8 adds r4, r4, r8
adc r5, r5, r9 adc r5, r5, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0] ldm r0, {r8, r9}
ldr r9, [r0, #4]
#else #else
ldrd r8, r9, [r0] ldrd r8, r9, [r0]
#endif #endif
@@ -1485,8 +1473,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #40] ldrd r4, r5, [r0, #40]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r8, [r0] stm r0, {r8, r9}
str r9, [r0, #4]
#else #else
strd r8, r9, [r0] strd r8, r9, [r0]
#endif #endif
@@ -1635,8 +1622,7 @@ L_SHA512_transform_len_start:
#endif #endif
# Round 4 # Round 4
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -1671,8 +1657,7 @@ L_SHA512_transform_len_start:
strd r4, r5, [r0, #24] strd r4, r5, [r0, #24]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -1931,8 +1916,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #56] ldrd r4, r5, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0] ldm r0, {r6, r7}
ldr r7, [r0, #4]
#else #else
ldrd r6, r7, [r0] ldrd r6, r7, [r0]
#endif #endif
@@ -2191,8 +2175,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #56] ldrd r6, r7, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0] ldm r0, {r8, r9}
ldr r9, [r0, #4]
#else #else
ldrd r8, r9, [r0] ldrd r8, r9, [r0]
#endif #endif
@@ -2417,8 +2400,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #9 orr r9, r9, r4, lsr #9
orr r8, r8, r5, lsr #9 orr r8, r8, r5, lsr #9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -2427,8 +2409,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #endif
@@ -2457,8 +2438,7 @@ L_SHA512_transform_len_start:
eor r6, r6, r8 eor r6, r6, r8
eor r7, r7, r9 eor r7, r7, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -2487,8 +2467,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #endif
@@ -2521,8 +2500,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #7 orr r9, r9, r4, lsr #7
orr r8, r8, r5, lsr #7 orr r8, r8, r5, lsr #7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -2543,8 +2521,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #16] ldrd r6, r7, [r0, #16]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #endif
@@ -2555,16 +2532,14 @@ L_SHA512_transform_len_start:
eor r10, r10, r6 eor r10, r10, r6
eor r11, r11, r7 eor r11, r11, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0] ldm r0, {r6, r7}
ldr r7, [r0, #4]
#else #else
ldrd r6, r7, [r0] ldrd r6, r7, [r0]
#endif #endif
adds r6, r6, r10 adds r6, r6, r10
adc r7, r7, r11 adc r7, r7, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r6, [r0] stm r0, {r6, r7}
str r7, [r0, #4]
#else #else
strd r6, r7, [r0] strd r6, r7, [r0]
#endif #endif
@@ -2599,8 +2574,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [sp, #56] ldrd r4, r5, [sp, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [sp] ldm sp, {r8, r9}
ldr r9, [sp, #4]
#else #else
ldrd r8, r9, [sp] ldrd r8, r9, [sp]
#endif #endif
@@ -2749,8 +2723,7 @@ L_SHA512_transform_len_start:
adds r8, r8, r4 adds r8, r8, r4
adc r9, r9, r5 adc r9, r9, r5
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -2785,8 +2758,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0] ldm r0, {r8, r9}
ldr r9, [r0, #4]
#else #else
ldrd r8, r9, [r0] ldrd r8, r9, [r0]
#endif #endif
@@ -3045,8 +3017,7 @@ L_SHA512_transform_len_start:
ldrd r8, r9, [r0, #56] ldrd r8, r9, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0] ldm r0, {r6, r7}
ldr r7, [r0, #4]
#else #else
ldrd r6, r7, [r0] ldrd r6, r7, [r0]
#endif #endif
@@ -3495,8 +3466,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r8 adds r4, r4, r8
adc r5, r5, r9 adc r5, r5, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0] ldm r0, {r8, r9}
ldr r9, [r0, #4]
#else #else
ldrd r8, r9, [r0] ldrd r8, r9, [r0]
#endif #endif
@@ -3517,8 +3487,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #40] ldrd r4, r5, [r0, #40]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r8, [r0] stm r0, {r8, r9}
str r9, [r0, #4]
#else #else
strd r8, r9, [r0] strd r8, r9, [r0]
#endif #endif
@@ -3667,8 +3636,7 @@ L_SHA512_transform_len_start:
#endif #endif
# Round 12 # Round 12
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -3703,8 +3671,7 @@ L_SHA512_transform_len_start:
strd r4, r5, [r0, #24] strd r4, r5, [r0, #24]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -3963,8 +3930,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #56] ldrd r4, r5, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0] ldm r0, {r6, r7}
ldr r7, [r0, #4]
#else #else
ldrd r6, r7, [r0] ldrd r6, r7, [r0]
#endif #endif
@@ -4223,8 +4189,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #56] ldrd r6, r7, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0] ldm r0, {r8, r9}
ldr r9, [r0, #4]
#else #else
ldrd r8, r9, [r0] ldrd r8, r9, [r0]
#endif #endif
@@ -4449,8 +4414,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #9 orr r9, r9, r4, lsr #9
orr r8, r8, r5, lsr #9 orr r8, r8, r5, lsr #9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -4459,8 +4423,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #endif
@@ -4489,8 +4452,7 @@ L_SHA512_transform_len_start:
eor r6, r6, r8 eor r6, r6, r8
eor r7, r7, r9 eor r7, r7, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -4519,8 +4481,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #endif
@@ -4553,8 +4514,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #7 orr r9, r9, r4, lsr #7
orr r8, r8, r5, lsr #7 orr r8, r8, r5, lsr #7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -4575,8 +4535,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #16] ldrd r6, r7, [r0, #16]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #endif
@@ -4587,16 +4546,14 @@ L_SHA512_transform_len_start:
eor r10, r10, r6 eor r10, r10, r6
eor r11, r11, r7 eor r11, r11, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0] ldm r0, {r6, r7}
ldr r7, [r0, #4]
#else #else
ldrd r6, r7, [r0] ldrd r6, r7, [r0]
#endif #endif
adds r6, r6, r10 adds r6, r6, r10
adc r7, r7, r11 adc r7, r7, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r6, [r0] stm r0, {r6, r7}
str r7, [r0, #4]
#else #else
strd r6, r7, [r0] strd r6, r7, [r0]
#endif #endif
@@ -4647,8 +4604,7 @@ L_SHA512_transform_len_start:
strd r4, r5, [sp, #120] strd r4, r5, [sp, #120]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [sp] ldm sp, {r4, r5}
ldr r5, [sp, #4]
#else #else
ldrd r4, r5, [sp] ldrd r4, r5, [sp]
#endif #endif
@@ -4752,16 +4708,14 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #56] ldrd r4, r5, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [sp] ldm sp, {r8, r9}
ldr r9, [sp, #4]
#else #else
ldrd r8, r9, [sp] ldrd r8, r9, [sp]
#endif #endif
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r3] ldm r3, {r6, r7}
ldr r7, [r3, #4]
#else #else
ldrd r6, r7, [r3] ldrd r6, r7, [r3]
#endif #endif
@@ -4784,8 +4738,7 @@ L_SHA512_transform_len_start:
adds r8, r8, r4 adds r8, r8, r4
adc r9, r9, r5 adc r9, r9, r5
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -4820,8 +4773,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0] ldm r0, {r8, r9}
ldr r9, [r0, #4]
#else #else
ldrd r8, r9, [r0] ldrd r8, r9, [r0]
#endif #endif
@@ -5001,8 +4953,7 @@ L_SHA512_transform_len_start:
ldrd r8, r9, [r0, #56] ldrd r8, r9, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0] ldm r0, {r6, r7}
ldr r7, [r0, #4]
#else #else
ldrd r6, r7, [r0] ldrd r6, r7, [r0]
#endif #endif
@@ -5293,8 +5244,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r8 adds r4, r4, r8
adc r5, r5, r9 adc r5, r5, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0] ldm r0, {r8, r9}
ldr r9, [r0, #4]
#else #else
ldrd r8, r9, [r0] ldrd r8, r9, [r0]
#endif #endif
@@ -5315,8 +5265,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #40] ldrd r4, r5, [r0, #40]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r8, [r0] stm r0, {r8, r9}
str r9, [r0, #4]
#else #else
strd r8, r9, [r0] strd r8, r9, [r0]
#endif #endif
@@ -5386,8 +5335,7 @@ L_SHA512_transform_len_start:
mov r11, r9 mov r11, r9
# Round 4 # Round 4
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -5422,8 +5370,7 @@ L_SHA512_transform_len_start:
strd r4, r5, [r0, #24] strd r4, r5, [r0, #24]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -5603,8 +5550,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #56] ldrd r4, r5, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0] ldm r0, {r6, r7}
ldr r7, [r0, #4]
#else #else
ldrd r6, r7, [r0] ldrd r6, r7, [r0]
#endif #endif
@@ -5784,8 +5730,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #56] ldrd r6, r7, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0] ldm r0, {r8, r9}
ldr r9, [r0, #4]
#else #else
ldrd r8, r9, [r0] ldrd r8, r9, [r0]
#endif #endif
@@ -5931,8 +5876,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #9 orr r9, r9, r4, lsr #9
orr r8, r8, r5, lsr #9 orr r8, r8, r5, lsr #9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -5941,8 +5885,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #endif
@@ -5971,8 +5914,7 @@ L_SHA512_transform_len_start:
eor r6, r6, r8 eor r6, r6, r8
eor r7, r7, r9 eor r7, r7, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -6001,8 +5943,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #endif
@@ -6035,8 +5976,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #7 orr r9, r9, r4, lsr #7
orr r8, r8, r5, lsr #7 orr r8, r8, r5, lsr #7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -6057,8 +5997,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #16] ldrd r6, r7, [r0, #16]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #endif
@@ -6069,16 +6008,14 @@ L_SHA512_transform_len_start:
eor r10, r10, r6 eor r10, r10, r6
eor r11, r11, r7 eor r11, r11, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0] ldm r0, {r6, r7}
ldr r7, [r0, #4]
#else #else
ldrd r6, r7, [r0] ldrd r6, r7, [r0]
#endif #endif
adds r6, r6, r10 adds r6, r6, r10
adc r7, r7, r11 adc r7, r7, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r6, [r0] stm r0, {r6, r7}
str r7, [r0, #4]
#else #else
strd r6, r7, [r0] strd r6, r7, [r0]
#endif #endif
@@ -6184,8 +6121,7 @@ L_SHA512_transform_len_start:
adds r8, r8, r4 adds r8, r8, r4
adc r9, r9, r5 adc r9, r9, r5
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -6220,8 +6156,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0] ldm r0, {r8, r9}
ldr r9, [r0, #4]
#else #else
ldrd r8, r9, [r0] ldrd r8, r9, [r0]
#endif #endif
@@ -6401,8 +6336,7 @@ L_SHA512_transform_len_start:
ldrd r8, r9, [r0, #56] ldrd r8, r9, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0] ldm r0, {r6, r7}
ldr r7, [r0, #4]
#else #else
ldrd r6, r7, [r0] ldrd r6, r7, [r0]
#endif #endif
@@ -6693,8 +6627,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r8 adds r4, r4, r8
adc r5, r5, r9 adc r5, r5, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0] ldm r0, {r8, r9}
ldr r9, [r0, #4]
#else #else
ldrd r8, r9, [r0] ldrd r8, r9, [r0]
#endif #endif
@@ -6715,8 +6648,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #40] ldrd r4, r5, [r0, #40]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r8, [r0] stm r0, {r8, r9}
str r9, [r0, #4]
#else #else
strd r8, r9, [r0] strd r8, r9, [r0]
#endif #endif
@@ -6786,8 +6718,7 @@ L_SHA512_transform_len_start:
mov r11, r9 mov r11, r9
# Round 12 # Round 12
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -6822,8 +6753,7 @@ L_SHA512_transform_len_start:
strd r4, r5, [r0, #24] strd r4, r5, [r0, #24]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -7003,8 +6933,7 @@ L_SHA512_transform_len_start:
ldrd r4, r5, [r0, #56] ldrd r4, r5, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0] ldm r0, {r6, r7}
ldr r7, [r0, #4]
#else #else
ldrd r6, r7, [r0] ldrd r6, r7, [r0]
#endif #endif
@@ -7184,8 +7113,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #56] ldrd r6, r7, [r0, #56]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r8, [r0] ldm r0, {r8, r9}
ldr r9, [r0, #4]
#else #else
ldrd r8, r9, [r0] ldrd r8, r9, [r0]
#endif #endif
@@ -7331,8 +7259,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #9 orr r9, r9, r4, lsr #9
orr r8, r8, r5, lsr #9 orr r8, r8, r5, lsr #9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -7341,8 +7268,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #endif
@@ -7371,8 +7297,7 @@ L_SHA512_transform_len_start:
eor r6, r6, r8 eor r6, r6, r8
eor r7, r7, r9 eor r7, r7, r9
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -7401,8 +7326,7 @@ L_SHA512_transform_len_start:
adds r4, r4, r6 adds r4, r4, r6
adc r5, r5, r7 adc r5, r5, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #endif
@@ -7435,8 +7359,7 @@ L_SHA512_transform_len_start:
orr r9, r9, r4, lsr #7 orr r9, r9, r4, lsr #7
orr r8, r8, r5, lsr #7 orr r8, r8, r5, lsr #7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -7457,8 +7380,7 @@ L_SHA512_transform_len_start:
ldrd r6, r7, [r0, #16] ldrd r6, r7, [r0, #16]
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #endif
@@ -7469,16 +7391,14 @@ L_SHA512_transform_len_start:
eor r10, r10, r6 eor r10, r10, r6
eor r11, r11, r7 eor r11, r11, r7
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r6, [r0] ldm r0, {r6, r7}
ldr r7, [r0, #4]
#else #else
ldrd r6, r7, [r0] ldrd r6, r7, [r0]
#endif #endif
adds r6, r6, r10 adds r6, r6, r10
adc r7, r7, r11 adc r7, r7, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r6, [r0] stm r0, {r6, r7}
str r7, [r0, #4]
#else #else
strd r6, r7, [r0] strd r6, r7, [r0]
#endif #endif
@@ -7486,8 +7406,7 @@ L_SHA512_transform_len_start:
mov r11, r9 mov r11, r9
# Add in digest from start # Add in digest from start
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
ldr r4, [r0] ldm r0, {r4, r5}
ldr r5, [r0, #4]
#else #else
ldrd r4, r5, [r0] ldrd r4, r5, [r0]
#endif #endif
@@ -7514,8 +7433,7 @@ L_SHA512_transform_len_start:
adds r6, r6, r10 adds r6, r6, r10
adc r7, r7, r11 adc r7, r7, r11
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
str r4, [r0] stm r0, {r4, r5}
str r5, [r0, #4]
#else #else
strd r4, r5, [r0] strd r4, r5, [r0]
#endif #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" "sub sp, sp, #0xc0\n\t"
/* Copy digest to add in at end */ /* Copy digest to add in at end */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "ldrd r4, r5, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [sp]\n\t" "ldm sp, {r8, r9}\n\t"
"ldr r9, [sp, #4]\n\t"
#else #else
"ldrd r8, r9, [sp]\n\t" "ldrd r8, r9, [sp]\n\t"
#endif #endif
"adds r4, r4, r6\n\t" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [r3]\n\t" "ldm r3, {r6, r7}\n\t"
"ldr r7, [r3, #4]\n\t"
#else #else
"ldrd r6, r7, [r3]\n\t" "ldrd r6, r7, [r3]\n\t"
#endif #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" "adds r8, r8, r4\n\t"
"adc r9, r9, r5\n\t" "adc r9, r9, r5\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[sha512], #4]\n\t"
#else #else
"ldrd r8, r9, [%[sha512]]\n\t" "ldrd r8, r9, [%[sha512]]\n\t"
#endif #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 r7, r7, r9\n\t"
"eor r6, r6, r8\n\t" "eor r6, r6, r8\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [sp]\n\t" "ldm sp, {r4, r5}\n\t"
"ldr r5, [sp, #4]\n\t"
#else #else
"ldrd r4, r5, [sp]\n\t" "ldrd r4, r5, [sp]\n\t"
#endif #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" "adds r4, r4, r8\n\t"
"adc r5, r5, r9\n\t" "adc r5, r5, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [sp]\n\t" "stm sp, {r4, r5}\n\t"
"str r5, [sp, #4]\n\t"
#else #else
"strd r4, r5, [sp]\n\t" "strd r4, r5, [sp]\n\t"
#endif #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 r7, r7, r9\n\t"
"eor r6, r6, r8\n\t" "eor r6, r6, r8\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [sp]\n\t" "ldm sp, {r4, r5}\n\t"
"ldr r5, [sp, #4]\n\t"
#else #else
"ldrd r4, r5, [sp]\n\t" "ldrd r4, r5, [sp]\n\t"
#endif #endif
"adds r4, r4, r6\n\t" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [sp]\n\t" "stm sp, {r4, r5}\n\t"
"str r5, [sp, #4]\n\t"
#else #else
"strd r4, r5, [sp]\n\t" "strd r4, r5, [sp]\n\t"
#endif #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" "ldrd r8, r9, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t" "ldm r0, {r6, r7}\n\t"
"ldr r7, [%[sha512], #4]\n\t"
#else #else
"ldrd r6, r7, [%[sha512]]\n\t" "ldrd r6, r7, [%[sha512]]\n\t"
#endif #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" "mov r11, r9\n\t"
/* Calc new W[2] */ /* Calc new W[2] */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [sp]\n\t" "ldm sp, {r4, r5}\n\t"
"ldr r5, [sp, #4]\n\t"
#else #else
"ldrd r4, r5, [sp]\n\t" "ldrd r4, r5, [sp]\n\t"
#endif #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" "adds r4, r4, r8\n\t"
"adc r5, r5, r9\n\t" "adc r5, r5, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[sha512], #4]\n\t"
#else #else
"ldrd r8, r9, [%[sha512]]\n\t" "ldrd r8, r9, [%[sha512]]\n\t"
#endif #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" "ldrd r4, r5, [%[sha512], #40]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r8, [%[sha512]]\n\t" "stm r0, {r8, r9}\n\t"
"str r9, [%[sha512], #4]\n\t"
#else #else
"strd r8, r9, [%[sha512]]\n\t" "strd r8, r9, [%[sha512]]\n\t"
#endif #endif
@@ -1536,8 +1523,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
#endif #endif
/* Round 4 */ /* Round 4 */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "strd r4, r5, [%[sha512], #24]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "ldrd r4, r5, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t" "ldm r0, {r6, r7}\n\t"
"ldr r7, [%[sha512], #4]\n\t"
#else #else
"ldrd r6, r7, [%[sha512]]\n\t" "ldrd r6, r7, [%[sha512]]\n\t"
#endif #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" "ldrd r6, r7, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[sha512], #4]\n\t"
#else #else
"ldrd r8, r9, [%[sha512]]\n\t" "ldrd r8, r9, [%[sha512]]\n\t"
#endif #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 r9, r9, r4, lsr #9\n\t"
"orr r8, r8, r5, lsr #9\n\t" "orr r8, r8, r5, lsr #9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha512], #4]\n\t"
#else #else
"strd r4, r5, [%[sha512]]\n\t" "strd r4, r5, [%[sha512]]\n\t"
#endif #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 r6, r6, r8\n\t"
"eor r7, r7, r9\n\t" "eor r7, r7, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha512], #4]\n\t"
#else #else
"strd r4, r5, [%[sha512]]\n\t" "strd r4, r5, [%[sha512]]\n\t"
#endif #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 r9, r9, r4, lsr #7\n\t"
"orr r8, r8, r5, lsr #7\n\t" "orr r8, r8, r5, lsr #7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "ldrd r6, r7, [%[sha512], #16]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha512], #4]\n\t"
#else #else
"strd r4, r5, [%[sha512]]\n\t" "strd r4, r5, [%[sha512]]\n\t"
#endif #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 r10, r10, r6\n\t"
"eor r11, r11, r7\n\t" "eor r11, r11, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t" "ldm r0, {r6, r7}\n\t"
"ldr r7, [%[sha512], #4]\n\t"
#else #else
"ldrd r6, r7, [%[sha512]]\n\t" "ldrd r6, r7, [%[sha512]]\n\t"
#endif #endif
"adds r6, r6, r10\n\t" "adds r6, r6, r10\n\t"
"adc r7, r7, r11\n\t" "adc r7, r7, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r6, [%[sha512]]\n\t" "stm r0, {r6, r7}\n\t"
"str r7, [%[sha512], #4]\n\t"
#else #else
"strd r6, r7, [%[sha512]]\n\t" "strd r6, r7, [%[sha512]]\n\t"
#endif #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" "ldrd r4, r5, [sp, #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [sp]\n\t" "ldm sp, {r8, r9}\n\t"
"ldr r9, [sp, #4]\n\t"
#else #else
"ldrd r8, r9, [sp]\n\t" "ldrd r8, r9, [sp]\n\t"
#endif #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" "adds r8, r8, r4\n\t"
"adc r9, r9, r5\n\t" "adc r9, r9, r5\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[sha512], #4]\n\t"
#else #else
"ldrd r8, r9, [%[sha512]]\n\t" "ldrd r8, r9, [%[sha512]]\n\t"
#endif #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" "ldrd r8, r9, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t" "ldm r0, {r6, r7}\n\t"
"ldr r7, [%[sha512], #4]\n\t"
#else #else
"ldrd r6, r7, [%[sha512]]\n\t" "ldrd r6, r7, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r8\n\t"
"adc r5, r5, r9\n\t" "adc r5, r5, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[sha512], #4]\n\t"
#else #else
"ldrd r8, r9, [%[sha512]]\n\t" "ldrd r8, r9, [%[sha512]]\n\t"
#endif #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" "ldrd r4, r5, [%[sha512], #40]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r8, [%[sha512]]\n\t" "stm r0, {r8, r9}\n\t"
"str r9, [%[sha512], #4]\n\t"
#else #else
"strd r8, r9, [%[sha512]]\n\t" "strd r8, r9, [%[sha512]]\n\t"
#endif #endif
@@ -3568,8 +3537,7 @@ void Transform_Sha512_Len(wc_Sha512* sha512_p, const byte* data_p, word32 len_p)
#endif #endif
/* Round 12 */ /* Round 12 */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "strd r4, r5, [%[sha512], #24]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "ldrd r4, r5, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t" "ldm r0, {r6, r7}\n\t"
"ldr r7, [%[sha512], #4]\n\t"
#else #else
"ldrd r6, r7, [%[sha512]]\n\t" "ldrd r6, r7, [%[sha512]]\n\t"
#endif #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" "ldrd r6, r7, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[sha512], #4]\n\t"
#else #else
"ldrd r8, r9, [%[sha512]]\n\t" "ldrd r8, r9, [%[sha512]]\n\t"
#endif #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 r9, r9, r4, lsr #9\n\t"
"orr r8, r8, r5, lsr #9\n\t" "orr r8, r8, r5, lsr #9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha512], #4]\n\t"
#else #else
"strd r4, r5, [%[sha512]]\n\t" "strd r4, r5, [%[sha512]]\n\t"
#endif #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 r6, r6, r8\n\t"
"eor r7, r7, r9\n\t" "eor r7, r7, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha512], #4]\n\t"
#else #else
"strd r4, r5, [%[sha512]]\n\t" "strd r4, r5, [%[sha512]]\n\t"
#endif #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 r9, r9, r4, lsr #7\n\t"
"orr r8, r8, r5, lsr #7\n\t" "orr r8, r8, r5, lsr #7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "ldrd r6, r7, [%[sha512], #16]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha512], #4]\n\t"
#else #else
"strd r4, r5, [%[sha512]]\n\t" "strd r4, r5, [%[sha512]]\n\t"
#endif #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 r10, r10, r6\n\t"
"eor r11, r11, r7\n\t" "eor r11, r11, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t" "ldm r0, {r6, r7}\n\t"
"ldr r7, [%[sha512], #4]\n\t"
#else #else
"ldrd r6, r7, [%[sha512]]\n\t" "ldrd r6, r7, [%[sha512]]\n\t"
#endif #endif
"adds r6, r6, r10\n\t" "adds r6, r6, r10\n\t"
"adc r7, r7, r11\n\t" "adc r7, r7, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r6, [%[sha512]]\n\t" "stm r0, {r6, r7}\n\t"
"str r7, [%[sha512], #4]\n\t"
#else #else
"strd r6, r7, [%[sha512]]\n\t" "strd r6, r7, [%[sha512]]\n\t"
#endif #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" "strd r4, r5, [sp, #120]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [sp]\n\t" "ldm sp, {r4, r5}\n\t"
"ldr r5, [sp, #4]\n\t"
#else #else
"ldrd r4, r5, [sp]\n\t" "ldrd r4, r5, [sp]\n\t"
#endif #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" "ldrd r4, r5, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [sp]\n\t" "ldm sp, {r8, r9}\n\t"
"ldr r9, [sp, #4]\n\t"
#else #else
"ldrd r8, r9, [sp]\n\t" "ldrd r8, r9, [sp]\n\t"
#endif #endif
"adds r4, r4, r6\n\t" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [r3]\n\t" "ldm r3, {r6, r7}\n\t"
"ldr r7, [r3, #4]\n\t"
#else #else
"ldrd r6, r7, [r3]\n\t" "ldrd r6, r7, [r3]\n\t"
#endif #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" "adds r8, r8, r4\n\t"
"adc r9, r9, r5\n\t" "adc r9, r9, r5\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[sha512], #4]\n\t"
#else #else
"ldrd r8, r9, [%[sha512]]\n\t" "ldrd r8, r9, [%[sha512]]\n\t"
#endif #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" "ldrd r8, r9, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t" "ldm r0, {r6, r7}\n\t"
"ldr r7, [%[sha512], #4]\n\t"
#else #else
"ldrd r6, r7, [%[sha512]]\n\t" "ldrd r6, r7, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r8\n\t"
"adc r5, r5, r9\n\t" "adc r5, r5, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[sha512], #4]\n\t"
#else #else
"ldrd r8, r9, [%[sha512]]\n\t" "ldrd r8, r9, [%[sha512]]\n\t"
#endif #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" "ldrd r4, r5, [%[sha512], #40]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r8, [%[sha512]]\n\t" "stm r0, {r8, r9}\n\t"
"str r9, [%[sha512], #4]\n\t"
#else #else
"strd r8, r9, [%[sha512]]\n\t" "strd r8, r9, [%[sha512]]\n\t"
#endif #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" "mov r11, r9\n\t"
/* Round 4 */ /* Round 4 */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "strd r4, r5, [%[sha512], #24]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "ldrd r4, r5, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t" "ldm r0, {r6, r7}\n\t"
"ldr r7, [%[sha512], #4]\n\t"
#else #else
"ldrd r6, r7, [%[sha512]]\n\t" "ldrd r6, r7, [%[sha512]]\n\t"
#endif #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" "ldrd r6, r7, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[sha512], #4]\n\t"
#else #else
"ldrd r8, r9, [%[sha512]]\n\t" "ldrd r8, r9, [%[sha512]]\n\t"
#endif #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 r9, r9, r4, lsr #9\n\t"
"orr r8, r8, r5, lsr #9\n\t" "orr r8, r8, r5, lsr #9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha512], #4]\n\t"
#else #else
"strd r4, r5, [%[sha512]]\n\t" "strd r4, r5, [%[sha512]]\n\t"
#endif #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 r6, r6, r8\n\t"
"eor r7, r7, r9\n\t" "eor r7, r7, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha512], #4]\n\t"
#else #else
"strd r4, r5, [%[sha512]]\n\t" "strd r4, r5, [%[sha512]]\n\t"
#endif #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 r9, r9, r4, lsr #7\n\t"
"orr r8, r8, r5, lsr #7\n\t" "orr r8, r8, r5, lsr #7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "ldrd r6, r7, [%[sha512], #16]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha512], #4]\n\t"
#else #else
"strd r4, r5, [%[sha512]]\n\t" "strd r4, r5, [%[sha512]]\n\t"
#endif #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 r10, r10, r6\n\t"
"eor r11, r11, r7\n\t" "eor r11, r11, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t" "ldm r0, {r6, r7}\n\t"
"ldr r7, [%[sha512], #4]\n\t"
#else #else
"ldrd r6, r7, [%[sha512]]\n\t" "ldrd r6, r7, [%[sha512]]\n\t"
#endif #endif
"adds r6, r6, r10\n\t" "adds r6, r6, r10\n\t"
"adc r7, r7, r11\n\t" "adc r7, r7, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r6, [%[sha512]]\n\t" "stm r0, {r6, r7}\n\t"
"str r7, [%[sha512], #4]\n\t"
#else #else
"strd r6, r7, [%[sha512]]\n\t" "strd r6, r7, [%[sha512]]\n\t"
#endif #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" "adds r8, r8, r4\n\t"
"adc r9, r9, r5\n\t" "adc r9, r9, r5\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[sha512], #4]\n\t"
#else #else
"ldrd r8, r9, [%[sha512]]\n\t" "ldrd r8, r9, [%[sha512]]\n\t"
#endif #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" "ldrd r8, r9, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t" "ldm r0, {r6, r7}\n\t"
"ldr r7, [%[sha512], #4]\n\t"
#else #else
"ldrd r6, r7, [%[sha512]]\n\t" "ldrd r6, r7, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r8\n\t"
"adc r5, r5, r9\n\t" "adc r5, r5, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[sha512], #4]\n\t"
#else #else
"ldrd r8, r9, [%[sha512]]\n\t" "ldrd r8, r9, [%[sha512]]\n\t"
#endif #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" "ldrd r4, r5, [%[sha512], #40]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r8, [%[sha512]]\n\t" "stm r0, {r8, r9}\n\t"
"str r9, [%[sha512], #4]\n\t"
#else #else
"strd r8, r9, [%[sha512]]\n\t" "strd r8, r9, [%[sha512]]\n\t"
#endif #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" "mov r11, r9\n\t"
/* Round 12 */ /* Round 12 */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "strd r4, r5, [%[sha512], #24]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "ldrd r4, r5, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t" "ldm r0, {r6, r7}\n\t"
"ldr r7, [%[sha512], #4]\n\t"
#else #else
"ldrd r6, r7, [%[sha512]]\n\t" "ldrd r6, r7, [%[sha512]]\n\t"
#endif #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" "ldrd r6, r7, [%[sha512], #56]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[sha512]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[sha512], #4]\n\t"
#else #else
"ldrd r8, r9, [%[sha512]]\n\t" "ldrd r8, r9, [%[sha512]]\n\t"
#endif #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 r9, r9, r4, lsr #9\n\t"
"orr r8, r8, r5, lsr #9\n\t" "orr r8, r8, r5, lsr #9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha512], #4]\n\t"
#else #else
"strd r4, r5, [%[sha512]]\n\t" "strd r4, r5, [%[sha512]]\n\t"
#endif #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 r6, r6, r8\n\t"
"eor r7, r7, r9\n\t" "eor r7, r7, r9\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "adds r4, r4, r6\n\t"
"adc r5, r5, r7\n\t" "adc r5, r5, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha512], #4]\n\t"
#else #else
"strd r4, r5, [%[sha512]]\n\t" "strd r4, r5, [%[sha512]]\n\t"
#endif #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 r9, r9, r4, lsr #7\n\t"
"orr r8, r8, r5, lsr #7\n\t" "orr r8, r8, r5, lsr #7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "ldrd r6, r7, [%[sha512], #16]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha512], #4]\n\t"
#else #else
"strd r4, r5, [%[sha512]]\n\t" "strd r4, r5, [%[sha512]]\n\t"
#endif #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 r10, r10, r6\n\t"
"eor r11, r11, r7\n\t" "eor r11, r11, r7\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r6, [%[sha512]]\n\t" "ldm r0, {r6, r7}\n\t"
"ldr r7, [%[sha512], #4]\n\t"
#else #else
"ldrd r6, r7, [%[sha512]]\n\t" "ldrd r6, r7, [%[sha512]]\n\t"
#endif #endif
"adds r6, r6, r10\n\t" "adds r6, r6, r10\n\t"
"adc r7, r7, r11\n\t" "adc r7, r7, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r6, [%[sha512]]\n\t" "stm r0, {r6, r7}\n\t"
"str r7, [%[sha512], #4]\n\t"
#else #else
"strd r6, r7, [%[sha512]]\n\t" "strd r6, r7, [%[sha512]]\n\t"
#endif #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" "mov r11, r9\n\t"
/* Add in digest from start */ /* Add in digest from start */
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[sha512]]\n\t" "ldm r0, {r4, r5}\n\t"
"ldr r5, [%[sha512], #4]\n\t"
#else #else
"ldrd r4, r5, [%[sha512]]\n\t" "ldrd r4, r5, [%[sha512]]\n\t"
#endif #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" "adds r6, r6, r10\n\t"
"adc r7, r7, r11\n\t" "adc r7, r7, r11\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r4, [%[sha512]]\n\t" "stm r0, {r4, r5}\n\t"
"str r5, [%[sha512], #4]\n\t"
#else #else
"strd r4, r5, [%[sha512]]\n\t" "strd r4, r5, [%[sha512]]\n\t"
#endif #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" "mov r3, #-1\n\t"
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r4, #0x1\n\t" "mov r4, #0x7c\n\t"
"lsl r4, r4, #8\n\t" "orr r4, r4, #0x100\n\t"
"add r4, r4, #0x7c\n\t"
#else #else
"mov r4, #0x17c\n\t" "mov r4, #0x17c\n\t"
#endif #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" "mov r3, #-1\n\t"
#ifdef WOLFSSL_SP_SMALL #ifdef WOLFSSL_SP_SMALL
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r4, #0x1\n\t" "mov r4, #0xfc\n\t"
"lsl r4, r4, #8\n\t" "orr r4, r4, #0x100\n\t"
"add r4, r4, #0xfc\n\t"
#else #else
"mov r4, #0x1fc\n\t" "mov r4, #0x1fc\n\t"
#endif #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" "strd r8, r9, [%[r], #24]\n\t"
#endif #endif
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r2, [%[a]]\n\t" "ldm r1, {r2, r3}\n\t"
"ldr r3, [%[a], #4]\n\t"
#else #else
"ldrd r2, r3, [%[a]]\n\t" "ldrd r2, r3, [%[a]]\n\t"
#endif #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 r8, r8, r5, lsl #31\n\t"
"orr r9, r9, r12, lsl #31\n\t" "orr r9, r9, r12, lsl #31\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"str r6, [%[r]]\n\t" "stm r0, {r6, r7}\n\t"
"str r7, [%[r], #4]\n\t"
#else #else
"strd r6, r7, [%[r]]\n\t" "strd r6, r7, [%[r]]\n\t"
#endif #endif
@@ -78733,13 +78729,7 @@ static int sp_256_num_bits_8(const sp_digit* a_p)
"ldr r1, [%[a], #28]\n\t" "ldr r1, [%[a], #28]\n\t"
"cmp r1, #0\n\t" "cmp r1, #0\n\t"
"beq L_sp_256_num_bits_8_7_%=\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" "mov r2, #0x100\n\t"
#endif
"clz r12, r1\n\t" "clz r12, r1\n\t"
"sub r12, r2, r12\n\t" "sub r12, r2, r12\n\t"
"b L_sp_256_num_bits_8_9_%=\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" "L_sp_384_div2_mod_12_div2_%=: \n\t"
"sub %[r], %[r], #48\n\t" "sub %[r], %[r], #48\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[r]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[r], #4]\n\t"
#else #else
"ldrd r8, r9, [%[r]]\n\t" "ldrd r8, r9, [%[r]]\n\t"
#endif #endif
@@ -96183,9 +96172,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_11_3_%=\n\t" "beq L_sp_384_num_bits_12_11_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x78\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x78\n\t"
#else #else
"mov r2, #0x178\n\t" "mov r2, #0x178\n\t"
#endif #endif
@@ -96199,9 +96187,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_11_2_%=\n\t" "beq L_sp_384_num_bits_12_11_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x70\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x70\n\t"
#else #else
"mov r2, #0x170\n\t" "mov r2, #0x170\n\t"
#endif #endif
@@ -96215,9 +96202,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_11_1_%=\n\t" "beq L_sp_384_num_bits_12_11_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x68\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x68\n\t"
#else #else
"mov r2, #0x168\n\t" "mov r2, #0x168\n\t"
#endif #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" "L_sp_384_num_bits_12_11_1_%=: \n\t"
"and r3, r1, #0xff\n\t" "and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x60\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x60\n\t"
#else #else
"mov r2, #0x160\n\t" "mov r2, #0x160\n\t"
#endif #endif
@@ -96246,9 +96231,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_10_3_%=\n\t" "beq L_sp_384_num_bits_12_10_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x58\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x58\n\t"
#else #else
"mov r2, #0x158\n\t" "mov r2, #0x158\n\t"
#endif #endif
@@ -96262,9 +96246,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_10_2_%=\n\t" "beq L_sp_384_num_bits_12_10_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x50\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x50\n\t"
#else #else
"mov r2, #0x150\n\t" "mov r2, #0x150\n\t"
#endif #endif
@@ -96278,9 +96261,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_10_1_%=\n\t" "beq L_sp_384_num_bits_12_10_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x48\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x48\n\t"
#else #else
"mov r2, #0x148\n\t" "mov r2, #0x148\n\t"
#endif #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" "L_sp_384_num_bits_12_10_1_%=: \n\t"
"and r3, r1, #0xff\n\t" "and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x40\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x40\n\t"
#else #else
"mov r2, #0x140\n\t" "mov r2, #0x140\n\t"
#endif #endif
@@ -96309,9 +96290,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_9_3_%=\n\t" "beq L_sp_384_num_bits_12_9_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x38\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x38\n\t"
#else #else
"mov r2, #0x138\n\t" "mov r2, #0x138\n\t"
#endif #endif
@@ -96325,9 +96305,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_9_2_%=\n\t" "beq L_sp_384_num_bits_12_9_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x30\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x30\n\t"
#else #else
"mov r2, #0x130\n\t" "mov r2, #0x130\n\t"
#endif #endif
@@ -96341,9 +96320,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_9_1_%=\n\t" "beq L_sp_384_num_bits_12_9_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x28\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x28\n\t"
#else #else
"mov r2, #0x128\n\t" "mov r2, #0x128\n\t"
#endif #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" "L_sp_384_num_bits_12_9_1_%=: \n\t"
"and r3, r1, #0xff\n\t" "and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x20\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x20\n\t"
#else #else
"mov r2, #0x120\n\t" "mov r2, #0x120\n\t"
#endif #endif
@@ -96372,9 +96349,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_8_3_%=\n\t" "beq L_sp_384_num_bits_12_8_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x18\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x18\n\t"
#else #else
"mov r2, #0x118\n\t" "mov r2, #0x118\n\t"
#endif #endif
@@ -96388,9 +96364,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_8_2_%=\n\t" "beq L_sp_384_num_bits_12_8_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x10\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x10\n\t"
#else #else
"mov r2, #0x110\n\t" "mov r2, #0x110\n\t"
#endif #endif
@@ -96404,9 +96379,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_384_num_bits_12_8_1_%=\n\t" "beq L_sp_384_num_bits_12_8_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x8\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x8\n\t"
#else #else
"mov r2, #0x108\n\t" "mov r2, #0x108\n\t"
#endif #endif
@@ -96416,13 +96390,7 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"\n" "\n"
"L_sp_384_num_bits_12_8_1_%=: \n\t" "L_sp_384_num_bits_12_8_1_%=: \n\t"
"and r3, r1, #0xff\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" "mov r2, #0x100\n\t"
#endif
"ldrb r12, [lr, r3]\n\t" "ldrb r12, [lr, r3]\n\t"
"add r12, r2, r12\n\t" "add r12, r2, r12\n\t"
"b L_sp_384_num_bits_12_13_%=\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" "cmp r1, #0\n\t"
"beq L_sp_384_num_bits_12_11_%=\n\t" "beq L_sp_384_num_bits_12_11_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x80\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x80\n\t"
#else #else
"mov r2, #0x180\n\t" "mov r2, #0x180\n\t"
#endif #endif
@@ -96769,9 +96736,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r1, #0\n\t" "cmp r1, #0\n\t"
"beq L_sp_384_num_bits_12_10_%=\n\t" "beq L_sp_384_num_bits_12_10_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x60\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x60\n\t"
#else #else
"mov r2, #0x160\n\t" "mov r2, #0x160\n\t"
#endif #endif
@@ -96784,9 +96750,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r1, #0\n\t" "cmp r1, #0\n\t"
"beq L_sp_384_num_bits_12_9_%=\n\t" "beq L_sp_384_num_bits_12_9_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x40\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x40\n\t"
#else #else
"mov r2, #0x140\n\t" "mov r2, #0x140\n\t"
#endif #endif
@@ -96799,9 +96764,8 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"cmp r1, #0\n\t" "cmp r1, #0\n\t"
"beq L_sp_384_num_bits_12_8_%=\n\t" "beq L_sp_384_num_bits_12_8_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x20\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x20\n\t"
#else #else
"mov r2, #0x120\n\t" "mov r2, #0x120\n\t"
#endif #endif
@@ -96813,13 +96777,7 @@ static int sp_384_num_bits_12(const sp_digit* a_p)
"ldr r1, [%[a], #28]\n\t" "ldr r1, [%[a], #28]\n\t"
"cmp r1, #0\n\t" "cmp r1, #0\n\t"
"beq L_sp_384_num_bits_12_7_%=\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" "mov r2, #0x100\n\t"
#endif
"clz r12, r1\n\t" "clz r12, r1\n\t"
"sub r12, r2, r12\n\t" "sub r12, r2, r12\n\t"
"b L_sp_384_num_bits_12_13_%=\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 %[a], {r1, r2, r3, r4, r5}\n\t"
"ldm sp!, {r7, r8, r9, r10, r11}\n\t" "ldm sp!, {r7, r8, r9, r10, r11}\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov lr, #0x1\n\t" "mov lr, #0xff\n\t"
"lsl lr, lr, #8\n\t" "orr lr, lr, #0x100\n\t"
"add lr, lr, #0xff\n\t"
#else #else
"mov lr, #0x1ff\n\t" "mov lr, #0x1ff\n\t"
#endif #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" "cmp r9, #0x40\n\t"
"bne L_sp_521_mont_reduce_order_17_nomask_%=\n\t" "bne L_sp_521_mont_reduce_order_17_nomask_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r7, #0x1\n\t" "mov r7, #0xff\n\t"
"lsl r7, r7, #8\n\t" "orr r7, r7, #0x100\n\t"
"add r7, r7, #0xff\n\t"
#else #else
"mov r7, #0x1ff\n\t" "mov r7, #0x1ff\n\t"
#endif #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" "cmp r9, #0x40\n\t"
"bne L_sp_521_mont_reduce_order_17_nomask_%=\n\t" "bne L_sp_521_mont_reduce_order_17_nomask_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r7, #0x1\n\t" "mov r7, #0xff\n\t"
"lsl r7, r7, #8\n\t" "orr r7, r7, #0x100\n\t"
"add r7, r7, #0xff\n\t"
#else #else
"mov r7, #0x1ff\n\t" "mov r7, #0x1ff\n\t"
#endif #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" "cmp r12, #0x40\n\t"
"bne L_sp_521_mont_reduce_order_17_nomask_%=\n\t" "bne L_sp_521_mont_reduce_order_17_nomask_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r10, #0x1\n\t" "mov r10, #0xff\n\t"
"lsl r10, r10, #8\n\t" "orr r10, r10, #0x100\n\t"
"add r10, r10, #0xff\n\t"
#else #else
"mov r10, #0x1ff\n\t" "mov r10, #0x1ff\n\t"
#endif #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" "ldm %[b]!, {r4}\n\t"
"adcs r8, r8, r4\n\t" "adcs r8, r8, r4\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r12, #0x1\n\t" "mov r12, #0xff\n\t"
"lsl r12, r12, #8\n\t" "orr r12, r12, #0x100\n\t"
"add r12, r12, #0xff\n\t"
#else #else
"mov r12, #0x1ff\n\t" "mov r12, #0x1ff\n\t"
#endif #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" "ldm %[a]!, {r4}\n\t"
"adcs r4, r4, r4\n\t" "adcs r4, r4, r4\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r3, #0x1\n\t" "mov r3, #0xff\n\t"
"lsl r3, r3, #8\n\t" "orr r3, r3, #0x100\n\t"
"add r3, r3, #0xff\n\t"
#else #else
"mov r3, #0x1ff\n\t" "mov r3, #0x1ff\n\t"
#endif #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" "ldm %[a]!, {r8}\n\t"
"adcs r4, r4, r8\n\t" "adcs r4, r4, r8\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r3, #0x1\n\t" "mov r3, #0xff\n\t"
"lsl r3, r3, #8\n\t" "orr r3, r3, #0x100\n\t"
"add r3, r3, #0xff\n\t"
#else #else
"mov r3, #0x1ff\n\t" "mov r3, #0x1ff\n\t"
#endif #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" "ldm %[b]!, {r4}\n\t"
"sbcs r8, r8, r4\n\t" "sbcs r8, r8, r4\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r12, #0x1\n\t" "mov r12, #0xff\n\t"
"lsl r12, r12, #8\n\t" "orr r12, r12, #0x100\n\t"
"add r12, r12, #0xff\n\t"
#else #else
"mov r12, #0x1ff\n\t" "mov r12, #0x1ff\n\t"
#endif #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__ ( __asm__ __volatile__ (
"rsb r12, %[n], #32\n\t" "rsb r12, %[n], #32\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r4, [%[a]]\n\t" "ldm r1, {r4, r5}\n\t"
"ldr r5, [%[a], #4]\n\t"
#else #else
"ldrd r4, r5, [%[a]]\n\t" "ldrd r4, r5, [%[a]]\n\t"
#endif #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" "L_sp_521_div2_mod_17_div2_%=: \n\t"
"sub %[r], %[r], #0x44\n\t" "sub %[r], %[r], #0x44\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"ldr r8, [%[r]]\n\t" "ldm r0, {r8, r9}\n\t"
"ldr r9, [%[r], #4]\n\t"
#else #else
"ldrd r8, r9, [%[r]]\n\t" "ldrd r8, r9, [%[r]]\n\t"
#endif #endif
@@ -124746,9 +124694,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_16_3_%=\n\t" "beq L_sp_521_num_bits_17_16_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x2\n\t" "mov r2, #0x18\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x200\n\t"
"add r2, r2, #0x18\n\t"
#else #else
"mov r2, #0x218\n\t" "mov r2, #0x218\n\t"
#endif #endif
@@ -124762,9 +124709,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_16_2_%=\n\t" "beq L_sp_521_num_bits_17_16_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x2\n\t" "mov r2, #0x10\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x200\n\t"
"add r2, r2, #0x10\n\t"
#else #else
"mov r2, #0x210\n\t" "mov r2, #0x210\n\t"
#endif #endif
@@ -124778,9 +124724,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_16_1_%=\n\t" "beq L_sp_521_num_bits_17_16_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x2\n\t" "mov r2, #0x8\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x200\n\t"
"add r2, r2, #0x8\n\t"
#else #else
"mov r2, #0x208\n\t" "mov r2, #0x208\n\t"
#endif #endif
@@ -124790,13 +124735,7 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"\n" "\n"
"L_sp_521_num_bits_17_16_1_%=: \n\t" "L_sp_521_num_bits_17_16_1_%=: \n\t"
"and r3, r1, #0xff\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" "mov r2, #0x200\n\t"
#endif
"ldrb r12, [lr, r3]\n\t" "ldrb r12, [lr, r3]\n\t"
"add r12, r2, r12\n\t" "add r12, r2, r12\n\t"
"b L_sp_521_num_bits_17_18_%=\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" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_15_3_%=\n\t" "beq L_sp_521_num_bits_17_15_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xf8\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xf8\n\t"
#else #else
"mov r2, #0x1f8\n\t" "mov r2, #0x1f8\n\t"
#endif #endif
@@ -124825,9 +124763,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_15_2_%=\n\t" "beq L_sp_521_num_bits_17_15_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xf0\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xf0\n\t"
#else #else
"mov r2, #0x1f0\n\t" "mov r2, #0x1f0\n\t"
#endif #endif
@@ -124841,9 +124778,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_15_1_%=\n\t" "beq L_sp_521_num_bits_17_15_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xe8\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xe8\n\t"
#else #else
"mov r2, #0x1e8\n\t" "mov r2, #0x1e8\n\t"
#endif #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" "L_sp_521_num_bits_17_15_1_%=: \n\t"
"and r3, r1, #0xff\n\t" "and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xe0\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xe0\n\t"
#else #else
"mov r2, #0x1e0\n\t" "mov r2, #0x1e0\n\t"
#endif #endif
@@ -124872,9 +124807,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_14_3_%=\n\t" "beq L_sp_521_num_bits_17_14_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xd8\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xd8\n\t"
#else #else
"mov r2, #0x1d8\n\t" "mov r2, #0x1d8\n\t"
#endif #endif
@@ -124888,9 +124822,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_14_2_%=\n\t" "beq L_sp_521_num_bits_17_14_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xd0\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xd0\n\t"
#else #else
"mov r2, #0x1d0\n\t" "mov r2, #0x1d0\n\t"
#endif #endif
@@ -124904,9 +124837,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_14_1_%=\n\t" "beq L_sp_521_num_bits_17_14_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xc8\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xc8\n\t"
#else #else
"mov r2, #0x1c8\n\t" "mov r2, #0x1c8\n\t"
#endif #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" "L_sp_521_num_bits_17_14_1_%=: \n\t"
"and r3, r1, #0xff\n\t" "and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xc0\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xc0\n\t"
#else #else
"mov r2, #0x1c0\n\t" "mov r2, #0x1c0\n\t"
#endif #endif
@@ -124935,9 +124866,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_13_3_%=\n\t" "beq L_sp_521_num_bits_17_13_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xb8\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xb8\n\t"
#else #else
"mov r2, #0x1b8\n\t" "mov r2, #0x1b8\n\t"
#endif #endif
@@ -124951,9 +124881,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_13_2_%=\n\t" "beq L_sp_521_num_bits_17_13_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xb0\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xb0\n\t"
#else #else
"mov r2, #0x1b0\n\t" "mov r2, #0x1b0\n\t"
#endif #endif
@@ -124967,9 +124896,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_13_1_%=\n\t" "beq L_sp_521_num_bits_17_13_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xa8\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xa8\n\t"
#else #else
"mov r2, #0x1a8\n\t" "mov r2, #0x1a8\n\t"
#endif #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" "L_sp_521_num_bits_17_13_1_%=: \n\t"
"and r3, r1, #0xff\n\t" "and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xa0\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xa0\n\t"
#else #else
"mov r2, #0x1a0\n\t" "mov r2, #0x1a0\n\t"
#endif #endif
@@ -124998,9 +124925,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_12_3_%=\n\t" "beq L_sp_521_num_bits_17_12_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x98\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x98\n\t"
#else #else
"mov r2, #0x198\n\t" "mov r2, #0x198\n\t"
#endif #endif
@@ -125014,9 +124940,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_12_2_%=\n\t" "beq L_sp_521_num_bits_17_12_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x90\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x90\n\t"
#else #else
"mov r2, #0x190\n\t" "mov r2, #0x190\n\t"
#endif #endif
@@ -125030,9 +124955,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_12_1_%=\n\t" "beq L_sp_521_num_bits_17_12_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x88\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x88\n\t"
#else #else
"mov r2, #0x188\n\t" "mov r2, #0x188\n\t"
#endif #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" "L_sp_521_num_bits_17_12_1_%=: \n\t"
"and r3, r1, #0xff\n\t" "and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x80\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x80\n\t"
#else #else
"mov r2, #0x180\n\t" "mov r2, #0x180\n\t"
#endif #endif
@@ -125061,9 +124984,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_11_3_%=\n\t" "beq L_sp_521_num_bits_17_11_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x78\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x78\n\t"
#else #else
"mov r2, #0x178\n\t" "mov r2, #0x178\n\t"
#endif #endif
@@ -125077,9 +124999,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_11_2_%=\n\t" "beq L_sp_521_num_bits_17_11_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x70\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x70\n\t"
#else #else
"mov r2, #0x170\n\t" "mov r2, #0x170\n\t"
#endif #endif
@@ -125093,9 +125014,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_11_1_%=\n\t" "beq L_sp_521_num_bits_17_11_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x68\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x68\n\t"
#else #else
"mov r2, #0x168\n\t" "mov r2, #0x168\n\t"
#endif #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" "L_sp_521_num_bits_17_11_1_%=: \n\t"
"and r3, r1, #0xff\n\t" "and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x60\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x60\n\t"
#else #else
"mov r2, #0x160\n\t" "mov r2, #0x160\n\t"
#endif #endif
@@ -125124,9 +125043,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_10_3_%=\n\t" "beq L_sp_521_num_bits_17_10_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x58\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x58\n\t"
#else #else
"mov r2, #0x158\n\t" "mov r2, #0x158\n\t"
#endif #endif
@@ -125140,9 +125058,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_10_2_%=\n\t" "beq L_sp_521_num_bits_17_10_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x50\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x50\n\t"
#else #else
"mov r2, #0x150\n\t" "mov r2, #0x150\n\t"
#endif #endif
@@ -125156,9 +125073,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_10_1_%=\n\t" "beq L_sp_521_num_bits_17_10_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x48\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x48\n\t"
#else #else
"mov r2, #0x148\n\t" "mov r2, #0x148\n\t"
#endif #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" "L_sp_521_num_bits_17_10_1_%=: \n\t"
"and r3, r1, #0xff\n\t" "and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x40\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x40\n\t"
#else #else
"mov r2, #0x140\n\t" "mov r2, #0x140\n\t"
#endif #endif
@@ -125187,9 +125102,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_9_3_%=\n\t" "beq L_sp_521_num_bits_17_9_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x38\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x38\n\t"
#else #else
"mov r2, #0x138\n\t" "mov r2, #0x138\n\t"
#endif #endif
@@ -125203,9 +125117,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_9_2_%=\n\t" "beq L_sp_521_num_bits_17_9_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x30\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x30\n\t"
#else #else
"mov r2, #0x130\n\t" "mov r2, #0x130\n\t"
#endif #endif
@@ -125219,9 +125132,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_9_1_%=\n\t" "beq L_sp_521_num_bits_17_9_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x28\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x28\n\t"
#else #else
"mov r2, #0x128\n\t" "mov r2, #0x128\n\t"
#endif #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" "L_sp_521_num_bits_17_9_1_%=: \n\t"
"and r3, r1, #0xff\n\t" "and r3, r1, #0xff\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x20\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x20\n\t"
#else #else
"mov r2, #0x120\n\t" "mov r2, #0x120\n\t"
#endif #endif
@@ -125250,9 +125161,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_8_3_%=\n\t" "beq L_sp_521_num_bits_17_8_3_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x18\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x18\n\t"
#else #else
"mov r2, #0x118\n\t" "mov r2, #0x118\n\t"
#endif #endif
@@ -125266,9 +125176,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_8_2_%=\n\t" "beq L_sp_521_num_bits_17_8_2_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x10\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x10\n\t"
#else #else
"mov r2, #0x110\n\t" "mov r2, #0x110\n\t"
#endif #endif
@@ -125282,9 +125191,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r3, #0\n\t" "cmp r3, #0\n\t"
"beq L_sp_521_num_bits_17_8_1_%=\n\t" "beq L_sp_521_num_bits_17_8_1_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x8\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x8\n\t"
#else #else
"mov r2, #0x108\n\t" "mov r2, #0x108\n\t"
#endif #endif
@@ -125294,13 +125202,7 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"\n" "\n"
"L_sp_521_num_bits_17_8_1_%=: \n\t" "L_sp_521_num_bits_17_8_1_%=: \n\t"
"and r3, r1, #0xff\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" "mov r2, #0x100\n\t"
#endif
"ldrb r12, [lr, r3]\n\t" "ldrb r12, [lr, r3]\n\t"
"add r12, r2, r12\n\t" "add r12, r2, r12\n\t"
"b L_sp_521_num_bits_17_18_%=\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" "cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_16_%=\n\t" "beq L_sp_521_num_bits_17_16_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x2\n\t" "mov r2, #0x20\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x200\n\t"
"add r2, r2, #0x20\n\t"
#else #else
"mov r2, #0x220\n\t" "mov r2, #0x220\n\t"
#endif #endif
@@ -125646,13 +125547,7 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"ldr r1, [%[a], #60]\n\t" "ldr r1, [%[a], #60]\n\t"
"cmp r1, #0\n\t" "cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_15_%=\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" "mov r2, #0x200\n\t"
#endif
"clz r12, r1\n\t" "clz r12, r1\n\t"
"sub r12, r2, r12\n\t" "sub r12, r2, r12\n\t"
"b L_sp_521_num_bits_17_18_%=\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" "cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_14_%=\n\t" "beq L_sp_521_num_bits_17_14_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xe0\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xe0\n\t"
#else #else
"mov r2, #0x1e0\n\t" "mov r2, #0x1e0\n\t"
#endif #endif
@@ -125677,9 +125571,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t" "cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_13_%=\n\t" "beq L_sp_521_num_bits_17_13_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xc0\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xc0\n\t"
#else #else
"mov r2, #0x1c0\n\t" "mov r2, #0x1c0\n\t"
#endif #endif
@@ -125692,9 +125585,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t" "cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_12_%=\n\t" "beq L_sp_521_num_bits_17_12_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0xa0\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0xa0\n\t"
#else #else
"mov r2, #0x1a0\n\t" "mov r2, #0x1a0\n\t"
#endif #endif
@@ -125707,9 +125599,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t" "cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_11_%=\n\t" "beq L_sp_521_num_bits_17_11_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x80\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x80\n\t"
#else #else
"mov r2, #0x180\n\t" "mov r2, #0x180\n\t"
#endif #endif
@@ -125722,9 +125613,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t" "cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_10_%=\n\t" "beq L_sp_521_num_bits_17_10_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x60\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x60\n\t"
#else #else
"mov r2, #0x160\n\t" "mov r2, #0x160\n\t"
#endif #endif
@@ -125737,9 +125627,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t" "cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_9_%=\n\t" "beq L_sp_521_num_bits_17_9_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x40\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x40\n\t"
#else #else
"mov r2, #0x140\n\t" "mov r2, #0x140\n\t"
#endif #endif
@@ -125752,9 +125641,8 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"cmp r1, #0\n\t" "cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_8_%=\n\t" "beq L_sp_521_num_bits_17_8_%=\n\t"
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7) #if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 7)
"mov r2, #0x1\n\t" "mov r2, #0x20\n\t"
"lsl r2, r2, #8\n\t" "orr r2, r2, #0x100\n\t"
"add r2, r2, #0x20\n\t"
#else #else
"mov r2, #0x120\n\t" "mov r2, #0x120\n\t"
#endif #endif
@@ -125766,13 +125654,7 @@ static int sp_521_num_bits_17(const sp_digit* a_p)
"ldr r1, [%[a], #28]\n\t" "ldr r1, [%[a], #28]\n\t"
"cmp r1, #0\n\t" "cmp r1, #0\n\t"
"beq L_sp_521_num_bits_17_7_%=\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" "mov r2, #0x100\n\t"
#endif
"clz r12, r1\n\t" "clz r12, r1\n\t"
"sub r12, r2, r12\n\t" "sub r12, r2, r12\n\t"
"b L_sp_521_num_bits_17_18_%=\n\t" "b L_sp_521_num_bits_17_18_%=\n\t"