Fix POWER build with OPENSSL_NO_ASM.

Change-Id: I28892ff6a954fc925329fe8f63af469468f489b7
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/36964
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: Adam Langley <agl@google.com>
diff --git a/crypto/fipsmodule/sha/internal.h b/crypto/fipsmodule/sha/internal.h
index a5d70c3..cc90914 100644
--- a/crypto/fipsmodule/sha/internal.h
+++ b/crypto/fipsmodule/sha/internal.h
@@ -22,17 +22,21 @@
 #endif
 
 
-#if !defined(OPENSSL_NO_ASM)
-
-#if defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || defined(OPENSSL_ARM) || \
-    defined(OPENSSL_AARCH64) || defined(OPENSSL_PPC64LE)
+#if defined(OPENSSL_PPC64LE) ||                          \
+    (!defined(OPENSSL_NO_ASM) &&                         \
+     (defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \
+      defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)))
+// POWER has an intrinsics-based implementation of SHA-1 and thus the functions
+// normally defined in assembly are available even with |OPENSSL_NO_ASM| in
+// this case.
 #define SHA1_ASM
 void sha1_block_data_order(uint32_t *state, const uint8_t *in,
                            size_t num_blocks);
 #endif
 
-#if defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || defined(OPENSSL_ARM) || \
-    defined(OPENSSL_AARCH64)
+#if !defined(OPENSSL_NO_ASM) &&                         \
+    (defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \
+     defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64))
 #define SHA256_ASM
 #define SHA512_ASM
 void sha256_block_data_order(uint32_t *state, const uint8_t *in,
@@ -41,8 +45,6 @@
                              size_t num_blocks);
 #endif
 
-#endif  // OPENSSL_NO_ASM
-
 
 #if defined(__cplusplus)
 }  // extern "C"
diff --git a/crypto/fipsmodule/sha/sha1.c b/crypto/fipsmodule/sha/sha1.c
index cc1243b..3b76194 100644
--- a/crypto/fipsmodule/sha/sha1.c
+++ b/crypto/fipsmodule/sha/sha1.c
@@ -114,7 +114,7 @@
     (ix) = (a) = ROTATE((a), 1);       \
   } while (0)
 
-#ifndef SHA1_ASM
+#if !defined(SHA1_ASM)
 static void sha1_block_data_order(uint32_t *state, const uint8_t *data,
                                   size_t num);
 #endif