Skip to content

Commit e12c8dc

Browse files
daverodgmanmichaelthomasj
authored andcommitted
Merge pull request Mbed-TLS#6090 from hanno-arm/fix_bnmul_arm_v7a
Remove encoding width suffix from Arm bignum assembly
1 parent c2a4e4a commit e12c8dc

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

library/bn_mul.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -717,10 +717,10 @@
717717

718718
#define MULADDC_X1_CORE \
719719
".p2align 2 \n\t" \
720-
"ldr.w %[a], [%[in]], #4 \n\t" \
721-
"ldr.w %[b], [%[acc]] \n\t" \
720+
"ldr %[a], [%[in]], #4 \n\t" \
721+
"ldr %[b], [%[acc]] \n\t" \
722722
"umaal %[b], %[carry], %[scalar], %[a] \n\t" \
723-
"str.w %[b], [%[acc]], #4 \n\t"
723+
"str %[b], [%[acc]], #4 \n\t"
724724

725725
#define MULADDC_X1_STOP \
726726
: [a] "=&r" (tmp_a), \
@@ -751,14 +751,14 @@
751751
* 2 cycles, while subsequent loads/stores are single-cycle. */
752752
#define MULADDC_X2_CORE \
753753
".p2align 2 \n\t" \
754-
"ldr.w %[a0], [%[in]], #+8 \n\t" \
755-
"ldr.w %[b0], [%[acc]], #+8 \n\t" \
756-
"ldr.w %[a1], [%[in], #-4] \n\t" \
757-
"ldr.w %[b1], [%[acc], #-4] \n\t" \
754+
"ldr %[a0], [%[in]], #+8 \n\t" \
755+
"ldr %[b0], [%[acc]], #+8 \n\t" \
756+
"ldr %[a1], [%[in], #-4] \n\t" \
757+
"ldr %[b1], [%[acc], #-4] \n\t" \
758758
"umaal %[b0], %[carry], %[scalar], %[a0] \n\t" \
759759
"umaal %[b1], %[carry], %[scalar], %[a1] \n\t" \
760-
"str.w %[b0], [%[acc], #-8] \n\t" \
761-
"str.w %[b1], [%[acc], #-4] \n\t"
760+
"str %[b0], [%[acc], #-8] \n\t" \
761+
"str %[b1], [%[acc], #-4] \n\t"
762762

763763
#define MULADDC_X2_STOP \
764764
: [a0] "=&r" (tmp_a0), \

tests/scripts/all.sh

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2870,6 +2870,7 @@ component_build_armcc () {
28702870
scripts/config.py baremetal
28712871
# armc[56] don't support SHA-512 intrinsics
28722872
scripts/config.py unset MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT
2873+
scripts/config.py set MBEDTLS_HAVE_ASM
28732874

28742875
make CC="$ARMC5_CC" AR="$ARMC5_AR" WARNING_CFLAGS='--strict --c99' lib
28752876

@@ -2878,20 +2879,25 @@ component_build_armcc () {
28782879

28792880
make clean
28802881

2882+
# Compile with -O1 since some Arm inline assembly is disabled for -O0.
2883+
28812884
# ARM Compiler 6 - Target ARMv7-A
2882-
armc6_build_test "--target=arm-arm-none-eabi -march=armv7-a"
2885+
armc6_build_test "-O1 --target=arm-arm-none-eabi -march=armv7-a"
28832886

28842887
# ARM Compiler 6 - Target ARMv7-M
2885-
armc6_build_test "--target=arm-arm-none-eabi -march=armv7-m"
2888+
armc6_build_test "-O1 --target=arm-arm-none-eabi -march=armv7-m"
2889+
2890+
# ARM Compiler 6 - Target ARMv7-M+DSP
2891+
armc6_build_test "-O1 --target=arm-arm-none-eabi -march=armv7-m+dsp"
28862892

28872893
# ARM Compiler 6 - Target ARMv8-A - AArch32
2888-
armc6_build_test "--target=arm-arm-none-eabi -march=armv8.2-a"
2894+
armc6_build_test "-O1 --target=arm-arm-none-eabi -march=armv8.2-a"
28892895

28902896
# ARM Compiler 6 - Target ARMv8-M
2891-
armc6_build_test "--target=arm-arm-none-eabi -march=armv8-m.main"
2897+
armc6_build_test "-O1 --target=arm-arm-none-eabi -march=armv8-m.main"
28922898

28932899
# ARM Compiler 6 - Target ARMv8.2-A - AArch64
2894-
armc6_build_test "--target=aarch64-arm-none-eabi -march=armv8.2-a+crypto"
2900+
armc6_build_test "-O1 --target=aarch64-arm-none-eabi -march=armv8.2-a+crypto"
28952901
}
28962902

28972903
component_test_tls13_only () {

0 commit comments

Comments
 (0)