diff --git a/ChangeLog b/ChangeLog index 52935c305..f5267c6a6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,6 +21,8 @@ Bugfix 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 003f605bb..5408d4146 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)