Disable reportedly broken assembly of Sparc(64)
fixes #292
diff --git a/ChangeLog b/ChangeLog
index 52935c3..f5267c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -21,6 +21,8 @@
size/curve against the profile. Before that, there was no way to set a
minimum key size for end-entity certificates with RSA keys. Found by
Matthew Page of Scannex Electronics Ltd.
+ * Fix failures in MPI on Sparc(64) due to use of bad assembly code.
+ Found by Kurt Danielson. #292
Changes
* Improved performance of mbedtls_ecp_muladd() when one of the scalars is 1
diff --git a/include/mbedtls/bn_mul.h b/include/mbedtls/bn_mul.h
index 003f605..5408d41 100644
--- a/include/mbedtls/bn_mul.h
+++ b/include/mbedtls/bn_mul.h
@@ -412,10 +412,11 @@
#endif /* PPC32 */
/*
- * The Sparc64 assembly is reported to be broken.
+ * The Sparc(64) assembly is reported to be broken.
* Disable it for now, until we're able to fix it.
*/
-#if 0 && defined(__sparc__) && defined(__sparc64__)
+#if 0 && defined(__sparc__)
+#if defined(__sparc64__)
#define MULADDC_INIT \
asm( \
@@ -446,9 +447,8 @@
: "g1", "o0", "o1", "o2", "o3", "o4", \
"o5" \
);
-#endif /* SPARCv9 */
-#if defined(__sparc__) && !defined(__sparc64__)
+#else /* __sparc64__ */
#define MULADDC_INIT \
asm( \
@@ -480,7 +480,8 @@
"o5" \
);
-#endif /* SPARCv8 */
+#endif /* __sparc64__ */
+#endif /* __sparc__ */
#if defined(__microblaze__) || defined(microblaze)