Build: Remove encoding width suffix from Arm bignum assembly
Older armclang compilers (6.13, 6.14, ...) fails to compile mbedtls,
with DSP enabled.
For more info about this patch, check:
https://github.com/Mbed-TLS/mbedtls/pull/6090/commits/907a367b5035ab120095c325b48fdf90b04a5081
Signed-off-by: Dávid Házi <david.hazi@arm.com>
Change-Id: I433014867e6239a7a1493a44f41a39a9089d25cc
diff --git a/lib/ext/mbedcrypto/0006-Build-Remove-encoding-width-suffix-from-Arm-bignum.patch b/lib/ext/mbedcrypto/0006-Build-Remove-encoding-width-suffix-from-Arm-bignum.patch
new file mode 100644
index 0000000..3c366df
--- /dev/null
+++ b/lib/ext/mbedcrypto/0006-Build-Remove-encoding-width-suffix-from-Arm-bignum.patch
@@ -0,0 +1,52 @@
+From 1698af1aa6a8cbf4ca59dd5dbd756418e58273d5 Mon Sep 17 00:00:00 2001
+From: Dávid Házi <david.hazi@arm.com>
+Date: Tue, 2 Aug 2022 14:38:32 +0200
+Subject: [PATCH 6/6] Build: Remove encoding width suffix from Arm bignum assembly
+
+Signed-off-by: Dávid Házi <david.hazi@arm.com>
+---
+ library/bn_mul.h | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/library/bn_mul.h b/library/bn_mul.h
+index 962d7a97..9cc84d06 100644
+--- a/library/bn_mul.h
++++ b/library/bn_mul.h
+@@ -717,10 +717,10 @@
+
+ #define MULADDC_X1_CORE \
+ ".p2align 2 \n\t" \
+- "ldr.w %[a], [%[in]], #4 \n\t" \
+- "ldr.w %[b], [%[acc]] \n\t" \
++ "ldr %[a], [%[in]], #4 \n\t" \
++ "ldr %[b], [%[acc]] \n\t" \
+ "umaal %[b], %[carry], %[scalar], %[a] \n\t" \
+- "str.w %[b], [%[acc]], #4 \n\t"
++ "str %[b], [%[acc]], #4 \n\t"
+
+ #define MULADDC_X1_STOP \
+ : [a] "=&r" (tmp_a), \
+@@ -751,14 +751,14 @@
+ * 2 cycles, while subsequent loads/stores are single-cycle. */
+ #define MULADDC_X2_CORE \
+ ".p2align 2 \n\t" \
+- "ldr.w %[a0], [%[in]], #+8 \n\t" \
+- "ldr.w %[b0], [%[acc]], #+8 \n\t" \
+- "ldr.w %[a1], [%[in], #-4] \n\t" \
+- "ldr.w %[b1], [%[acc], #-4] \n\t" \
++ "ldr %[a0], [%[in]], #+8 \n\t" \
++ "ldr %[b0], [%[acc]], #+8 \n\t" \
++ "ldr %[a1], [%[in], #-4] \n\t" \
++ "ldr %[b1], [%[acc], #-4] \n\t" \
+ "umaal %[b0], %[carry], %[scalar], %[a0] \n\t" \
+ "umaal %[b1], %[carry], %[scalar], %[a1] \n\t" \
+- "str.w %[b0], [%[acc], #-8] \n\t" \
+- "str.w %[b1], [%[acc], #-4] \n\t"
++ "str %[b0], [%[acc], #-8] \n\t" \
++ "str %[b1], [%[acc], #-4] \n\t"
+
+ #define MULADDC_X2_STOP \
+ : [a0] "=&r" (tmp_a0), \
+--
+2.34.1
+