diff options
| author | Pavel Labath <labath@google.com> | 2017-10-31 10:56:03 +0000 |
|---|---|---|
| committer | Pavel Labath <labath@google.com> | 2017-10-31 10:56:03 +0000 |
| commit | 7263f1bda695772732c5a8ddbed2d07713a7e59c (patch) | |
| tree | 57f62e5fddb72b7aca0e9410f53d1e5f49b20210 /lldb/source/API | |
| parent | 64f53b42144e36820a6a56c5fc08d1f5d4ded9bd (diff) | |
| download | bcm5719-llvm-7263f1bda695772732c5a8ddbed2d07713a7e59c.tar.gz bcm5719-llvm-7263f1bda695772732c5a8ddbed2d07713a7e59c.zip | |
Invert ArchSpec<->Platform dependency
Summary:
ArchSpec::SetTriple was taking a Platform as an argument, and used it to
fill in missing pieces of the specified triple. I invert the dependency
by moving this code to other classes. For this purpose, I've created
three new functions.
- HostInfo::GetAugmentedArchSpec: fills in the triple using the host
platform (this used to be implemented by passing a null platform
pointer). By putting this code in the Host module, we can provide a
way to anyone who does not have a platform instance (lldb-server) an
easy way to get Host data.
- Platform::GetAugmentedArchSpec: if you have a platform instance, you
can call this to let it fill in the triple.
- static Platform::GetAugmentedArchSpec: implements the "if platform ==
0 then use_host() else use_platform()" part.
Reviewers: zturner, jingham, clayborg
Subscribers: mgorny, javed.absar, lldb-commits
Differential Revision: https://reviews.llvm.org/D39387
llvm-svn: 316987
Diffstat (limited to 'lldb/source/API')
| -rw-r--r-- | lldb/source/API/SBDebugger.cpp | 4 | ||||
| -rw-r--r-- | lldb/source/API/SBInstruction.cpp | 4 | ||||
| -rw-r--r-- | lldb/source/API/SBTarget.cpp | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/lldb/source/API/SBDebugger.cpp b/lldb/source/API/SBDebugger.cpp index 3170dc72405..d3294dab582 100644 --- a/lldb/source/API/SBDebugger.cpp +++ b/lldb/source/API/SBDebugger.cpp @@ -694,8 +694,8 @@ SBTarget SBDebugger::FindTargetWithFileAndArch(const char *filename, SBTarget sb_target; if (m_opaque_sp && filename && filename[0]) { // No need to lock, the target list is thread safe - ArchSpec arch(arch_name, - m_opaque_sp->GetPlatformList().GetSelectedPlatform().get()); + ArchSpec arch = Platform::GetAugmentedArchSpec( + m_opaque_sp->GetPlatformList().GetSelectedPlatform().get(), arch_name); TargetSP target_sp( m_opaque_sp->GetTargetList().FindTargetWithExecutableAndArchitecture( FileSpec(filename, false), arch_name ? &arch : nullptr)); diff --git a/lldb/source/API/SBInstruction.cpp b/lldb/source/API/SBInstruction.cpp index 8b7deb7011b..181ce362ea7 100644 --- a/lldb/source/API/SBInstruction.cpp +++ b/lldb/source/API/SBInstruction.cpp @@ -20,6 +20,7 @@ #include "lldb/Core/EmulateInstruction.h" #include "lldb/Core/Module.h" #include "lldb/Core/StreamFile.h" +#include "lldb/Host/HostInfo.h" #include "lldb/Target/ExecutionContext.h" #include "lldb/Target/StackFrame.h" #include "lldb/Target/Target.h" @@ -259,8 +260,7 @@ bool SBInstruction::EmulateWithFrame(lldb::SBFrame &frame, bool SBInstruction::DumpEmulation(const char *triple) { lldb::InstructionSP inst_sp(GetOpaque()); if (inst_sp && triple) { - lldb_private::ArchSpec arch(triple, NULL); - return inst_sp->DumpEmulation(arch); + return inst_sp->DumpEmulation(HostInfo::GetAugmentedArchSpec(triple)); } return false; } diff --git a/lldb/source/API/SBTarget.cpp b/lldb/source/API/SBTarget.cpp index 4b9c64f70f5..19cd53ec0ff 100644 --- a/lldb/source/API/SBTarget.cpp +++ b/lldb/source/API/SBTarget.cpp @@ -1442,8 +1442,8 @@ lldb::SBModule SBTarget::AddModule(const char *path, const char *triple, module_spec.GetUUID().SetFromCString(uuid_cstr); if (triple) - module_spec.GetArchitecture().SetTriple(triple, - target_sp->GetPlatform().get()); + module_spec.GetArchitecture() = Platform::GetAugmentedArchSpec( + target_sp->GetPlatform().get(), triple); else module_spec.GetArchitecture() = target_sp->GetArchitecture(); |

