Disable reportedly broken assembly of Sparc(64)

fixes #292
diff --git a/ChangeLog b/ChangeLog
index ef4535f..add1831 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 PolarSSL ChangeLog
 
+= Version 1.2.18 released 2015-10-xx
+
+Bugfix
+   * Fix failures in MPI on Sparc(64) due to use of bad assembly code.
+     Found by Kurt Danielson. #292
+
 = Version 1.2.17 released 2015-10-06
 
 Security
diff --git a/include/polarssl/bn_mul.h b/include/polarssl/bn_mul.h
index 1210d36..1103214 100644
--- a/include/polarssl/bn_mul.h
+++ b/include/polarssl/bn_mul.h
@@ -409,10 +409,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(                                                \
@@ -443,9 +444,8 @@
         : "g1", "o0", "o1", "o2", "o3", "o4",   \
           "o5"                                  \
         );
-#endif /* SPARCv9 */
 
-#if defined(__sparc__) && !defined(__sparc64__)
+#else /* __sparc64__ */
 
 #define MULADDC_INIT                                    \
     asm(                                                \
@@ -477,7 +477,8 @@
           "o5"                                  \
         );
 
-#endif /* SPARCv8 */
+#endif /* __sparc64__ */
+#endif /* __sparc__ */
 
 #if defined(__microblaze__) || defined(microblaze)