[Lldb-commits] [lldb] [lldb][aix] 2. Updating XCOFF, PPC entry in LLDB ArchSpec (PR #105507)
via lldb-commits
lldb-commits at lists.llvm.org
Wed Aug 21 05:17:07 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lldb
Author: Dhruv Srivastava (DhruvSrivastavaX)
<details>
<summary>Changes</summary>
This PR is in reference to porting LLDB on AIX.
Link to discussions on llvm discourse and github:
1. https://discourse.llvm.org/t/port-lldb-to-ibm-aix/80640
2. #<!-- -->101657
The complete changes for porting are present in this draft PR:
https://github.com/llvm/llvm-project/pull/102601
The changes in this PR are intended to update the Architecture entry for LLDB with XCOFF,PPC.
1. Added a new `ArchDefinitionEntry g_xcoff_arch_entries[]`
2. Added a new case for XCOFF in `ArchSpec::SetArchitecture(..)`
3. Updated ArchDefinition *g_arch_definitions[]
---
Full diff: https://github.com/llvm/llvm-project/pull/105507.diff
1 Files Affected:
- (modified) lldb/source/Utility/ArchSpec.cpp (+18-1)
``````````diff
diff --git a/lldb/source/Utility/ArchSpec.cpp b/lldb/source/Utility/ArchSpec.cpp
index 07ef435ef451d2..4fd1a800023ce3 100644
--- a/lldb/source/Utility/ArchSpec.cpp
+++ b/lldb/source/Utility/ArchSpec.cpp
@@ -16,6 +16,7 @@
#include "llvm/BinaryFormat/COFF.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/BinaryFormat/MachO.h"
+#include "llvm/BinaryFormat/XCOFF.h"
#include "llvm/Support/Compiler.h"
#include "llvm/TargetParser/ARMTargetParser.h"
@@ -459,10 +460,23 @@ static const ArchDefinition g_coff_arch_def = {
"pe-coff",
};
+static const ArchDefinitionEntry g_xcoff_arch_entries[] = {
+ {ArchSpec::eCore_ppc_generic, llvm::XCOFF::TCPU_COM, LLDB_INVALID_CPUTYPE,
+ 0xFFFFFFFFu, 0xFFFFFFFFu},
+ {ArchSpec::eCore_ppc64_generic, llvm::XCOFF::TCPU_PPC64,
+ LLDB_INVALID_CPUTYPE, 0xFFFFFFFFu, 0xFFFFFFFFu}};
+
+static const ArchDefinition g_xcoff_arch_def = {
+ eArchTypeXCOFF,
+ std::size(g_xcoff_arch_entries),
+ g_xcoff_arch_entries,
+ "xcoff",
+};
+
//===----------------------------------------------------------------------===//
// Table of all ArchDefinitions
static const ArchDefinition *g_arch_definitions[] = {
- &g_macho_arch_def, &g_elf_arch_def, &g_coff_arch_def};
+ &g_macho_arch_def, &g_elf_arch_def, &g_coff_arch_def, &g_xcoff_arch_def};
//===----------------------------------------------------------------------===//
// Static helper functions.
@@ -903,6 +917,9 @@ bool ArchSpec::SetArchitecture(ArchitectureType arch_type, uint32_t cpu,
} else if (arch_type == eArchTypeCOFF && os == llvm::Triple::Win32) {
m_triple.setVendor(llvm::Triple::PC);
m_triple.setOS(llvm::Triple::Win32);
+ } else if (arch_type == eArchTypeXCOFF && os == llvm::Triple::AIX) {
+ m_triple.setVendor(llvm::Triple::IBM);
+ m_triple.setOS(llvm::Triple::AIX);
} else {
m_triple.setVendor(llvm::Triple::UnknownVendor);
m_triple.setOS(llvm::Triple::UnknownOS);
``````````
</details>
https://github.com/llvm/llvm-project/pull/105507
More information about the lldb-commits
mailing list