Rename MBEDTLS_ARCH_IS_ARMV8 to MBEDTLS_ARCH_IS_ARMV8_A

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h
index 9b9f5f2..b09c5dd 100644
--- a/include/mbedtls/build_info.h
+++ b/include/mbedtls/build_info.h
@@ -74,14 +74,19 @@
 #define MBEDTLS_ARCH_IS_X86
 #endif
 
-/* This is defined if the architecture is Armv8, or higher */
-#if !defined(MBEDTLS_ARCH_IS_ARMV8)
-#if defined(__ARM_ARCH)
-#if __ARM_ARCH >= 8
-#define MBEDTLS_ARCH_IS_ARMV8
+/* This is defined if the architecture is Armv8-A, or higher */
+#if !defined(MBEDTLS_ARCH_IS_ARMV8_A)
+#if defined(__ARM_ARCH) && defined(__ARM_ARCH_PROFILE)
+#if (__ARM_ARCH >= 8) && (__ARM_ARCH_PROFILE == 'A')
+/* GCC, clang, armclang and IAR */
+#define MBEDTLS_ARCH_IS_ARMV8_A
 #endif
-#elif defined(MBEDTLS_ARCH_IS_ARM64)
-#define MBEDTLS_ARCH_IS_ARMV8
+#elif defined(__ARM_ARCH_8A)
+/* Alternative defined by clang */
+#define MBEDTLS_ARCH_IS_ARMV8_A
+#elif defined(_M_ARM64) || defined(_M_ARM64EC)
+/* MSVC ARM64 is at least Armv8.0-A */
+#define MBEDTLS_ARCH_IS_ARMV8_A
 #endif
 #endif
 
diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h
index 0dba0a8..eac2266 100644
--- a/include/mbedtls/check_config.h
+++ b/include/mbedtls/check_config.h
@@ -865,7 +865,7 @@
 
 #endif
 
-#if defined(MBEDTLS_SHA256_USE_ARMV8_CRYPTO_ONLY) && !defined(MBEDTLS_ARCH_IS_ARMV8)
+#if defined(MBEDTLS_SHA256_USE_ARMV8_CRYPTO_ONLY) && !defined(MBEDTLS_ARCH_IS_ARMV8_A)
 #error "MBEDTLS_SHA256_USE_ARMV8_CRYPTO_ONLY defined on non-Armv8-A system"
 #endif
 
diff --git a/library/sha256.c b/library/sha256.c
index fe343e7..763c710 100644
--- a/library/sha256.c
+++ b/library/sha256.c
@@ -24,15 +24,15 @@
 
 #if defined(__clang__) &&  (__clang_major__ >= 4)
 
-/* Ideally, we would simply use MBEDTLS_ARCH_IS_ARMV8 in the following #if,
+/* Ideally, we would simply use MBEDTLS_ARCH_IS_ARMV8_A in the following #if,
  * but that is defined by build_info.h, and we need this block to happen first. */
-#if defined(__ARM_ARCH)
+#if defined(__ARM_ARCH) && (__ARM_ARCH_PROFILE == 'A')
 #if __ARM_ARCH >= 8
-#define MBEDTLS_SHA256_ARCH_IS_ARMV8
+#define MBEDTLS_SHA256_ARCH_IS_ARMV8_A
 #endif
 #endif
 
-#if defined(MBEDTLS_SHA256_ARCH_IS_ARMV8) && !defined(__ARM_FEATURE_CRYPTO)
+#if defined(MBEDTLS_SHA256_ARCH_IS_ARMV8_A) && !defined(__ARM_FEATURE_CRYPTO)
 /* TODO: Re-consider above after https://reviews.llvm.org/D131064 merged.
  *
  * The intrinsic declaration are guarded by predefined ACLE macros in clang:
@@ -70,7 +70,7 @@
 
 #include "mbedtls/platform.h"
 
-#if defined(MBEDTLS_ARCH_IS_ARMV8)
+#if defined(MBEDTLS_ARCH_IS_ARMV8_A)
 
 #  if defined(MBEDTLS_SHA256_USE_ARMV8_CRYPTO_IF_PRESENT) || \
     defined(MBEDTLS_SHA256_USE_ARMV8_CRYPTO_ONLY)