build: add loong64 architecture support,
       for building v8 version 9.6.180.12,
	or later version of v8.

Change-Id: Id0b7e7350e5e45380a24f17b1d91848bb42ac208
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/12520
Reviewed-by: Brett Wilson <brettw@google.com>
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Brett Wilson <brettw@chromium.org>
diff --git a/AUTHORS b/AUTHORS
index 755bfd4..622d117 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -48,3 +48,4 @@
 Yuriy Taraday <yorik.sar@gmail.com>
 Oleksandr Motsok <boramaabak@gmail.com>
 Ihor Karavan <ihorkaravan96@gmail.com>
+Ma Aiguo <maaiguo@uniontech.com>
diff --git a/src/gn/args.cc b/src/gn/args.cc
index 2b67313..219c950 100644
--- a/src/gn/args.cc
+++ b/src/gn/args.cc
@@ -340,6 +340,7 @@
   static const char kRISCV32[] = "riscv32";
   static const char kRISCV64[] = "riscv64";
   static const char kE2K[] = "e2k";
+  static const char kLA64[] = "loong64";
   const char* arch = nullptr;
 
   // Set the host CPU architecture based on the underlying OS, not
@@ -370,6 +371,8 @@
     arch = kRISCV64;
   else if (os_arch == "e2k")
     arch = kE2K;
+  else if (os_arch == "loongarch64")
+    arch = kLA64;
   else
     CHECK(false) << "OS architecture not handled. (" << os_arch << ")";
 
diff --git a/src/util/build_config.h b/src/util/build_config.h
index 5c4793e..01dd9bd 100644
--- a/src/util/build_config.h
+++ b/src/util/build_config.h
@@ -173,6 +173,18 @@
 #elif defined(__riscv) && (__riscv_xlen == 64)
 #define ARCH_CPU_64_BITS 1
 #define ARCH_CPU_LITTLE_ENDIAN 1
+#elif defined(__loongarch__)
+#if defined(__LP64__)
+#define ARCH_CPU_LOONGARCH_FAMILY 1
+#define ARCH_CPU_LA64 1
+#define ARCH_CPU_64_BITS 1
+#define ARCH_CPU_LITTLE_ENDIAN 1
+#else
+#define ARCH_CPU_LOONGARCH_FAMILY 1
+#define ARCH_CPU_LA 1
+#define ARCH_CPU_32_BITS 1
+#define ARCH_CPU_LITTLE_ENDIAN 1
+#endif
 #else
 #error Please add support for your architecture in build_config.h
 #endif