From ae6bef51c765a74650cb84d1202ac53f4e7f30a9 Mon Sep 17 00:00:00 2001 From: qiaopengcheng Date: Fri, 10 Feb 2023 15:21:31 +0800 Subject: [PATCH] LoongArch64: initial the coredistools supporting LA64. --- build-coredistools.sh | 6 ++++++ src/coredistools/coredistools.cpp | 6 ++++++ src/coredistools/coredistools.h | 3 ++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/build-coredistools.sh b/build-coredistools.sh index cba82cf6..da44cad0 100755 --- a/build-coredistools.sh +++ b/build-coredistools.sh @@ -33,6 +33,12 @@ case "$TargetOSArchitecture" in LLVMHostTriple=x86_64-linux-gnu ;; + linux-loongarch64) + CMakeCrossCompiling=OFF + LLVMHostTriple=loongarch64-linux-gnu + LLVMTargetsToBuild="LoongArch" + ;; + osx-arm64) CMakeCrossCompiling=ON CMakeOSXArchitectures=arm64 diff --git a/src/coredistools/coredistools.cpp b/src/coredistools/coredistools.cpp index 90439a35..f302b205 100644 --- a/src/coredistools/coredistools.cpp +++ b/src/coredistools/coredistools.cpp @@ -284,6 +284,9 @@ bool CorDisasm::setTarget() { case Triple::aarch64: TheTargetArch = Target_Arm64; break; + case Triple::loongarch64: + TheTargetArch = Target_LoongArch64; + break; default: Print->Error("Unsupported Architecture: %s\n", Triple::getArchTypeName(TheTriple->getArch())); @@ -304,6 +307,9 @@ bool CorDisasm::setTarget() { case Target_X64: TheTriple->setArch(Triple::x86_64); break; + case Target_LoongArch64: + TheTriple->setArch(Triple::loongarch64); + break; default: Print->Error("Unsupported Architecture: %s\n", Triple::getArchTypeName(TheTriple->getArch())); diff --git a/src/coredistools/coredistools.h b/src/coredistools/coredistools.h index 10e9687e..f567ba3c 100644 --- a/src/coredistools/coredistools.h +++ b/src/coredistools/coredistools.h @@ -41,7 +41,8 @@ enum TargetArch { Target_X86, Target_X64, Target_Thumb, - Target_Arm64 + Target_Arm64, + Target_LoongArch64 }; struct CorDisasm;