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;