Don't use r7 in generic codepath
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/library/bn_mul.h b/library/bn_mul.h
index 936810e..c91743a 100644
--- a/library/bn_mul.h
+++ b/library/bn_mul.h
@@ -679,15 +679,8 @@
#elif defined(__thumb2__) // Thumb 2 ISA
- #if defined(__GNUC__) && !defined(__OPTIMIZE__)
- // gcc -O0: only V6+DSP codepath builds
- #if (__ARM_ARCH >= 6) && defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)
- #define ARM_V6_DSP
- #endif
- #else
- // gcc with optimisation, or armclang: any codepath builds
- #define ARM_V6_DSP_OR_THUMB_2
- #endif
+ // Any codepath builds.
+ #define ARM_V6_DSP_OR_THUMB_2
#elif defined(__arm__) // Arm ISA
@@ -841,9 +834,9 @@
"mov r5, #0 \n\t" \
"ldr r6, [r1] \n\t" \
"umlal r2, r5, r3, r4 \n\t" \
- "adds r7, r6, r2 \n\t" \
+ "adds r4, r6, r2 \n\t" \
"adc r2, r5, #0 \n\t" \
- "str r7, [r1], #4 \n\t"
+ "str r4, [r1], #4 \n\t"
#define MULADDC_X1_STOP \
"str r2, %0 \n\t" \
@@ -852,7 +845,7 @@
: "=m" (c), "=m" (d), "=m" (s) \
: "m" (s), "m" (d), "m" (c), "m" (b) \
: "r0", "r1", "r2", "r3", "r4", "r5", \
- "r6", "r7", "cc" \
+ "r6", "cc" \
);
#endif /* Arm */