From 7a40dc686f32e89f641784f21927db0880ee3d26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 21 Oct 2015 14:52:24 +0200 Subject: [PATCH] Disable reportedly broken assembly of Sparc(64) fixes #292 --- ChangeLog | 2 ++ include/mbedtls/bn_mul.h | 11 ++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) 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)