Browse Source

Merge pull request #5823 from SparkiDev/arm32-ldrd-fixes

ARM32 ASM: don't use ldrd on user data
David Garske 1 year ago
parent
commit
0c2f713ca3

+ 3 - 336
wolfcrypt/src/port/arm/armv8-32-aes-asm.S

@@ -24,6 +24,9 @@
  *   ruby ./aes/aes.rb arm32 ../wolfssl/wolfcrypt/src/port/arm/armv8-32-aes-asm.S
  */
 
+#ifdef HAVE_CONFIG_H
+    #include <config.h>
+#endif /* HAVE_CONFIG_H */
 #include <wolfssl/wolfcrypt/settings.h>
 
 #ifdef WOLFSSL_ARMASM
@@ -1435,18 +1438,10 @@ AES_ECB_encrypt:
 	beq	L_AES_ECB_encrypt_start_block_192
 	mov	r12, #0xff
 L_AES_ECB_encrypt_loop_block_256:
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r4, [r0]
 	ldr	r5, [r0, #4]
-#else
-	ldrd	r4, r5, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r6, [r0, #8]
 	ldr	r7, [r0, #12]
-#else
-	ldrd	r6, r7, [r0, #8]
-#endif
 	rev	r4, r4
 	rev	r5, r5
 	rev	r6, r6
@@ -1466,18 +1461,10 @@ L_AES_ECB_encrypt_loop_block_256:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -1486,18 +1473,10 @@ L_AES_ECB_encrypt_loop_block_256:
 L_AES_ECB_encrypt_start_block_192:
 	mov	r12, #0xff
 L_AES_ECB_encrypt_loop_block_192:
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r4, [r0]
 	ldr	r5, [r0, #4]
-#else
-	ldrd	r4, r5, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r6, [r0, #8]
 	ldr	r7, [r0, #12]
-#else
-	ldrd	r6, r7, [r0, #8]
-#endif
 	rev	r4, r4
 	rev	r5, r5
 	rev	r6, r6
@@ -1517,18 +1496,10 @@ L_AES_ECB_encrypt_loop_block_192:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -1537,18 +1508,10 @@ L_AES_ECB_encrypt_loop_block_192:
 L_AES_ECB_encrypt_start_block_128:
 	mov	r12, #0xff
 L_AES_ECB_encrypt_loop_block_128:
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r4, [r0]
 	ldr	r5, [r0, #4]
-#else
-	ldrd	r4, r5, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r6, [r0, #8]
 	ldr	r7, [r0, #12]
-#else
-	ldrd	r6, r7, [r0, #8]
-#endif
 	rev	r4, r4
 	rev	r5, r5
 	rev	r6, r6
@@ -1568,18 +1531,10 @@ L_AES_ECB_encrypt_loop_block_128:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -1612,18 +1567,10 @@ AES_CBC_encrypt:
 	beq	L_AES_CBC_encrypt_start_block_192
 	mov	r12, #0xff
 L_AES_CBC_encrypt_loop_block_256:
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r8, [r0]
 	ldr	r9, [r0, #4]
-#else
-	ldrd	r8, r9, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r10, [r0, #8]
 	ldr	r11, [r0, #12]
-#else
-	ldrd	r10, r11, [r0, #8]
-#endif
 	eor	r4, r4, r8
 	eor	r5, r5, r9
 	eor	r6, r6, r10
@@ -1647,18 +1594,10 @@ L_AES_CBC_encrypt_loop_block_256:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -1667,18 +1606,10 @@ L_AES_CBC_encrypt_loop_block_256:
 L_AES_CBC_encrypt_start_block_192:
 	mov	r12, #0xff
 L_AES_CBC_encrypt_loop_block_192:
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r8, [r0]
 	ldr	r9, [r0, #4]
-#else
-	ldrd	r8, r9, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r10, [r0, #8]
 	ldr	r11, [r0, #12]
-#else
-	ldrd	r10, r11, [r0, #8]
-#endif
 	eor	r4, r4, r8
 	eor	r5, r5, r9
 	eor	r6, r6, r10
@@ -1702,18 +1633,10 @@ L_AES_CBC_encrypt_loop_block_192:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -1722,18 +1645,10 @@ L_AES_CBC_encrypt_loop_block_192:
 L_AES_CBC_encrypt_start_block_128:
 	mov	r12, #0xff
 L_AES_CBC_encrypt_loop_block_128:
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r8, [r0]
 	ldr	r9, [r0, #4]
-#else
-	ldrd	r8, r9, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r10, [r0, #8]
 	ldr	r11, [r0, #12]
-#else
-	ldrd	r10, r11, [r0, #8]
-#endif
 	eor	r4, r4, r8
 	eor	r5, r5, r9
 	eor	r6, r6, r10
@@ -1757,18 +1672,10 @@ L_AES_CBC_encrypt_loop_block_128:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -1829,34 +1736,18 @@ L_AES_CTR_encrypt_loop_block_256:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r8, [r0]
 	ldr	r9, [r0, #4]
-#else
-	ldrd	r8, r9, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r10, [r0, #8]
 	ldr	r11, [r0, #12]
-#else
-	ldrd	r10, r11, [r0, #8]
-#endif
 	eor	r4, r8
 	eor	r5, r9
 	eor	r6, r10
 	eor	r7, r11
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	ldr	r8, [sp]
 	ldm	r8, {r4, r5, r6, r7}
 	subs	r2, r2, #16
@@ -1888,34 +1779,18 @@ L_AES_CTR_encrypt_loop_block_192:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r8, [r0]
 	ldr	r9, [r0, #4]
-#else
-	ldrd	r8, r9, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r10, [r0, #8]
 	ldr	r11, [r0, #12]
-#else
-	ldrd	r10, r11, [r0, #8]
-#endif
 	eor	r4, r8
 	eor	r5, r9
 	eor	r6, r10
 	eor	r7, r11
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	ldr	r8, [sp]
 	ldm	r8, {r4, r5, r6, r7}
 	subs	r2, r2, #16
@@ -1947,34 +1822,18 @@ L_AES_CTR_encrypt_loop_block_128:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r8, [r0]
 	ldr	r9, [r0, #4]
-#else
-	ldrd	r8, r9, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r10, [r0, #8]
 	ldr	r11, [r0, #12]
-#else
-	ldrd	r10, r11, [r0, #8]
-#endif
 	eor	r4, r8
 	eor	r5, r9
 	eor	r6, r10
 	eor	r7, r11
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	ldr	r8, [sp]
 	ldm	r8, {r4, r5, r6, r7}
 	subs	r2, r2, #16
@@ -2249,18 +2108,10 @@ AES_ECB_decrypt:
 	cmp	r8, #12
 	beq	L_AES_ECB_decrypt_start_block_192
 L_AES_ECB_decrypt_loop_block_256:
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r4, [r0]
 	ldr	r5, [r0, #4]
-#else
-	ldrd	r4, r5, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r6, [r0, #8]
 	ldr	r7, [r0, #12]
-#else
-	ldrd	r6, r7, [r0, #8]
-#endif
 	rev	r4, r4
 	rev	r5, r5
 	rev	r6, r6
@@ -2281,18 +2132,10 @@ L_AES_ECB_decrypt_loop_block_256:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -2300,18 +2143,10 @@ L_AES_ECB_decrypt_loop_block_256:
 	b	L_AES_ECB_decrypt_end
 L_AES_ECB_decrypt_start_block_192:
 L_AES_ECB_decrypt_loop_block_192:
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r4, [r0]
 	ldr	r5, [r0, #4]
-#else
-	ldrd	r4, r5, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r6, [r0, #8]
 	ldr	r7, [r0, #12]
-#else
-	ldrd	r6, r7, [r0, #8]
-#endif
 	rev	r4, r4
 	rev	r5, r5
 	rev	r6, r6
@@ -2332,18 +2167,10 @@ L_AES_ECB_decrypt_loop_block_192:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -2351,18 +2178,10 @@ L_AES_ECB_decrypt_loop_block_192:
 	b	L_AES_ECB_decrypt_end
 L_AES_ECB_decrypt_start_block_128:
 L_AES_ECB_decrypt_loop_block_128:
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r4, [r0]
 	ldr	r5, [r0, #4]
-#else
-	ldrd	r4, r5, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r6, [r0, #8]
 	ldr	r7, [r0, #12]
-#else
-	ldrd	r6, r7, [r0, #8]
-#endif
 	rev	r4, r4
 	rev	r5, r5
 	rev	r6, r6
@@ -2383,18 +2202,10 @@ L_AES_ECB_decrypt_loop_block_128:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -2436,18 +2247,10 @@ L_AES_CBC_decrypt_loop_block_256:
 	strd	r0, r1, [sp, #8]
 #endif
 	str	r2, [sp, #16]
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r4, [r0]
 	ldr	r5, [r0, #4]
-#else
-	ldrd	r4, r5, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r6, [r0, #8]
 	ldr	r7, [r0, #12]
-#else
-	ldrd	r6, r7, [r0, #8]
-#endif
 	ldr	r0, [sp, #20]
 #if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r0, #16]
@@ -2491,18 +2294,10 @@ L_AES_CBC_decrypt_loop_block_256:
 	eor	r5, r5, r9
 	eor	r6, r6, r10
 	eor	r7, r7, r11
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -2514,18 +2309,10 @@ L_AES_CBC_decrypt_loop_block_256:
 	strd	r0, r1, [sp, #8]
 #endif
 	str	r2, [sp, #16]
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r4, [r0]
 	ldr	r5, [r0, #4]
-#else
-	ldrd	r4, r5, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r6, [r0, #8]
 	ldr	r7, [r0, #12]
-#else
-	ldrd	r6, r7, [r0, #8]
-#endif
 	ldr	r0, [sp, #20]
 #if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r0]
@@ -2580,18 +2367,10 @@ L_AES_CBC_decrypt_loop_block_256:
 	eor	r5, r5, r9
 	eor	r6, r6, r10
 	eor	r7, r7, r11
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -2605,18 +2384,10 @@ L_AES_CBC_decrypt_loop_block_192:
 	strd	r0, r1, [sp, #8]
 #endif
 	str	r2, [sp, #16]
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r4, [r0]
 	ldr	r5, [r0, #4]
-#else
-	ldrd	r4, r5, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r6, [r0, #8]
 	ldr	r7, [r0, #12]
-#else
-	ldrd	r6, r7, [r0, #8]
-#endif
 	ldr	r0, [sp, #20]
 #if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r0, #16]
@@ -2660,18 +2431,10 @@ L_AES_CBC_decrypt_loop_block_192:
 	eor	r5, r5, r9
 	eor	r6, r6, r10
 	eor	r7, r7, r11
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -2683,18 +2446,10 @@ L_AES_CBC_decrypt_loop_block_192:
 	strd	r0, r1, [sp, #8]
 #endif
 	str	r2, [sp, #16]
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r4, [r0]
 	ldr	r5, [r0, #4]
-#else
-	ldrd	r4, r5, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r6, [r0, #8]
 	ldr	r7, [r0, #12]
-#else
-	ldrd	r6, r7, [r0, #8]
-#endif
 	ldr	r0, [sp, #20]
 #if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r0]
@@ -2749,18 +2504,10 @@ L_AES_CBC_decrypt_loop_block_192:
 	eor	r5, r5, r9
 	eor	r6, r6, r10
 	eor	r7, r7, r11
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -2774,18 +2521,10 @@ L_AES_CBC_decrypt_loop_block_128:
 	strd	r0, r1, [sp, #8]
 #endif
 	str	r2, [sp, #16]
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r4, [r0]
 	ldr	r5, [r0, #4]
-#else
-	ldrd	r4, r5, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r6, [r0, #8]
 	ldr	r7, [r0, #12]
-#else
-	ldrd	r6, r7, [r0, #8]
-#endif
 	ldr	r0, [sp, #20]
 #if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r0, #16]
@@ -2829,18 +2568,10 @@ L_AES_CBC_decrypt_loop_block_128:
 	eor	r5, r5, r9
 	eor	r6, r6, r10
 	eor	r7, r7, r11
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -2852,18 +2583,10 @@ L_AES_CBC_decrypt_loop_block_128:
 	strd	r0, r1, [sp, #8]
 #endif
 	str	r2, [sp, #16]
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r4, [r0]
 	ldr	r5, [r0, #4]
-#else
-	ldrd	r4, r5, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r6, [r0, #8]
 	ldr	r7, [r0, #12]
-#else
-	ldrd	r6, r7, [r0, #8]
-#endif
 	ldr	r0, [sp, #20]
 #if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r0]
@@ -2918,18 +2641,10 @@ L_AES_CBC_decrypt_loop_block_128:
 	eor	r5, r5, r9
 	eor	r6, r6, r10
 	eor	r7, r7, r11
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	subs	r2, r2, #16
 	add	r0, r0, #16
 	add	r1, r1, #16
@@ -3592,34 +3307,18 @@ L_AES_GCM_encrypt_loop_block_256:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r8, [r0]
 	ldr	r9, [r0, #4]
-#else
-	ldrd	r8, r9, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r10, [r0, #8]
 	ldr	r11, [r0, #12]
-#else
-	ldrd	r10, r11, [r0, #8]
-#endif
 	eor	r4, r8
 	eor	r5, r9
 	eor	r6, r10
 	eor	r7, r11
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	ldr	r8, [sp]
 	ldm	r8, {r4, r5, r6, r7}
 	subs	r2, r2, #16
@@ -3648,34 +3347,18 @@ L_AES_GCM_encrypt_loop_block_192:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r8, [r0]
 	ldr	r9, [r0, #4]
-#else
-	ldrd	r8, r9, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r10, [r0, #8]
 	ldr	r11, [r0, #12]
-#else
-	ldrd	r10, r11, [r0, #8]
-#endif
 	eor	r4, r8
 	eor	r5, r9
 	eor	r6, r10
 	eor	r7, r11
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	ldr	r8, [sp]
 	ldm	r8, {r4, r5, r6, r7}
 	subs	r2, r2, #16
@@ -3704,34 +3387,18 @@ L_AES_GCM_encrypt_loop_block_128:
 	rev	r5, r5
 	rev	r6, r6
 	rev	r7, r7
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r8, [r0]
 	ldr	r9, [r0, #4]
-#else
-	ldrd	r8, r9, [r0]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r10, [r0, #8]
 	ldr	r11, [r0, #12]
-#else
-	ldrd	r10, r11, [r0, #8]
-#endif
 	eor	r4, r8
 	eor	r5, r9
 	eor	r6, r10
 	eor	r7, r11
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r4, [r1]
 	str	r5, [r1, #4]
-#else
-	strd	r4, r5, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r6, [r1, #8]
 	str	r7, [r1, #12]
-#else
-	strd	r6, r7, [r1, #8]
-#endif
 	ldr	r8, [sp]
 	ldm	r8, {r4, r5, r6, r7}
 	subs	r2, r2, #16

+ 0 - 16
wolfcrypt/src/port/arm/armv8-32-curve25519.S

@@ -46,30 +46,14 @@ fe_init:
 	.type	fe_frombytes, %function
 fe_frombytes:
 	push	{r4, r5, r6, r7, r8, r9, lr}
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r2, [r1]
 	ldr	r3, [r1, #4]
-#else
-	ldrd	r2, r3, [r1]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r4, [r1, #8]
 	ldr	r5, [r1, #12]
-#else
-	ldrd	r4, r5, [r1, #8]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r6, [r1, #16]
 	ldr	r7, [r1, #20]
-#else
-	ldrd	r6, r7, [r1, #16]
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	ldr	r8, [r1, #24]
 	ldr	r9, [r1, #28]
-#else
-	ldrd	r8, r9, [r1, #24]
-#endif
 	and	r9, r9, #0x7fffffff
 #if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
 	str	r2, [r0]

+ 0 - 16
wolfcrypt/src/port/arm/armv8-32-curve25519_c.c

@@ -57,30 +57,14 @@ void fe_frombytes(fe out_p, const unsigned char* in_p)
     register const unsigned char* in asm ("r1") = in_p;
 
     __asm__ __volatile__ (
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
         "ldr	r2, [%[in]]\n\t"
         "ldr	r3, [%[in], #4]\n\t"
-#else
-        "ldrd	r2, r3, [%[in]]\n\t"
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
         "ldr	r4, [%[in], #8]\n\t"
         "ldr	r5, [%[in], #12]\n\t"
-#else
-        "ldrd	r4, r5, [%[in], #8]\n\t"
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
         "ldr	r6, [%[in], #16]\n\t"
         "ldr	r7, [%[in], #20]\n\t"
-#else
-        "ldrd	r6, r7, [%[in], #16]\n\t"
-#endif
-#if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
         "ldr	r8, [%[in], #24]\n\t"
         "ldr	r9, [%[in], #28]\n\t"
-#else
-        "ldrd	r8, r9, [%[in], #24]\n\t"
-#endif
         "and	r9, r9, #0x7fffffff\n\t"
 #if defined(WOLFSSL_SP_ARM_ARCH) && (WOLFSSL_SP_ARM_ARCH < 7)
         "str	r2, [%[out]]\n\t"

+ 3 - 0
wolfcrypt/src/port/arm/armv8-32-sha256-asm.S

@@ -24,6 +24,9 @@
  *   ruby ./sha2/sha256.rb arm32 ../wolfssl/wolfcrypt/src/port/arm/armv8-32-sha256-asm.S
  */
 
+#ifdef HAVE_CONFIG_H
+    #include <config.h>
+#endif /* HAVE_CONFIG_H */
 #include <wolfssl/wolfcrypt/settings.h>
 
 #ifdef WOLFSSL_ARMASM

+ 3 - 0
wolfcrypt/src/port/arm/armv8-32-sha256-asm_c.c

@@ -24,6 +24,9 @@
  *   ruby ./sha2/sha256.rb arm32 ../wolfssl/wolfcrypt/src/port/arm/armv8-32-sha256-asm.c
  */
 
+#ifdef HAVE_CONFIG_H
+    #include <config.h>
+#endif /* HAVE_CONFIG_H */
 #include <wolfssl/wolfcrypt/settings.h>
 
 #ifdef WOLFSSL_ARMASM

+ 3 - 0
wolfcrypt/src/port/arm/armv8-32-sha512-asm.S

@@ -24,6 +24,9 @@
  *   ruby ./sha2/sha512.rb arm32 ../wolfssl/wolfcrypt/src/port/arm/armv8-32-sha512-asm.S
  */
 
+#ifdef HAVE_CONFIG_H
+    #include <config.h>
+#endif /* HAVE_CONFIG_H */
 #include <wolfssl/wolfcrypt/settings.h>
 
 #ifdef WOLFSSL_ARMASM

+ 3 - 0
wolfcrypt/src/port/arm/armv8-32-sha512-asm_c.c

@@ -24,6 +24,9 @@
  *   ruby ./sha2/sha512.rb arm32 ../wolfssl/wolfcrypt/src/port/arm/armv8-32-sha512-asm.c
  */
 
+#ifdef HAVE_CONFIG_H
+    #include <config.h>
+#endif /* HAVE_CONFIG_H */
 #include <wolfssl/wolfcrypt/settings.h>
 
 #ifdef WOLFSSL_ARMASM