Add support for all of Chromium's CPU architectures.
BUG=chromium:870747
Change-Id: I421819871f5c45ac07850585e5dcc600d1ff8086
Reviewed-on: https://dawn-review.googlesource.com/c/2140
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/common/Compiler.h b/src/common/Compiler.h
index 9d828be..72a8c60 100644
--- a/src/common/Compiler.h
+++ b/src/common/Compiler.h
@@ -36,7 +36,8 @@
# if defined(__i386__) || defined(__x86_64__)
# define DAWN_BREAKPOINT() __asm__ __volatile__("int $3\n\t")
# else
-# error "Implement BREAKPOINT on your platform"
+// TODO(cwallez@chromium.org): Implement breakpoint on all supported architectures
+# define DAWN_BREAKPOINT()
# endif
# define DAWN_BUILTIN_UNREACHABLE() __builtin_unreachable()
diff --git a/src/common/Platform.h b/src/common/Platform.h
index 3b84fa7..7e767f1 100644
--- a/src/common/Platform.h
+++ b/src/common/Platform.h
@@ -27,10 +27,22 @@
# error "Unsupported platform."
#endif
-#if defined(_WIN64) || defined(__aarch64__) || defined(__x86_64__)
+// Distinguish mips32.
+#if defined(__mips__) && (_MIPS_SIM == _ABIO32) && !defined(__mips32__)
+# define __mips32__
+#endif
+
+// Distinguish mips64.
+#if defined(__mips__) && (_MIPS_SIM == _ABI64) && !defined(__mips64__)
+# define __mips64__
+#endif
+
+#if defined(_WIN64) || defined(__aarch64__) || defined(__x86_64__) || defined(__mips64__) || \
+ defined(__s390x__) || defined(__PPC64__)
# define DAWN_PLATFORM_64_BIT 1
static_assert(sizeof(sizeof(char)) == 8, "Expect sizeof(size_t) == 8");
-#elif defined(_WIN32) || defined(__i386__) || defined(__arm__)
+#elif defined(_WIN32) || defined(__arm__) || defined(__i386__) || defined(__mips32__) || \
+ defined(__s390__)
# define DAWN_PLATFORM_32_BIT 1
static_assert(sizeof(sizeof(char)) == 4, "Expect sizeof(size_t) == 4");
#else