[libunwind][LoongArch] Add 64-bit LoongArch support
Defines enums for the LoongArch registers.
Adds the register class implementation for LoongArch.
Adds save and restore context functionality.
This only supports 64 bits integer and float-point register
implementation.
Fix https://github.com/llvm/llvm-project/issues/55398
Reviewed By: SixWeining
Differential Revision: https://reviews.llvm.org/D137010
NOKEYCHECK=True
GitOrigin-RevId: c5072695127e767a76973cdbed683215df31fa40
diff --git a/src/libunwind.cpp b/src/libunwind.cpp
index 292544d..0faea2b 100644
--- a/src/libunwind.cpp
+++ b/src/libunwind.cpp
@@ -77,6 +77,8 @@
# define REGISTER_KIND Registers_ve
#elif defined(__s390x__)
# define REGISTER_KIND Registers_s390x
+#elif defined(__loongarch__) && __loongarch_grlen == 64
+#define REGISTER_KIND Registers_loongarch
#else
# error Architecture not supported
#endif