[Lldb-commits] [lldb] 8456120 - Revert "[lldb] Add support for MSP430 in LLDB."
Anton Korobeynikov via lldb-commits
lldb-commits at lists.llvm.org
Mon Apr 17 11:30:34 PDT 2023
Author: Anton Korobeynikov
Date: 2023-04-17T11:30:27-07:00
New Revision: 845612062389e3defbe073119b481a5472e9fc36
URL: https://github.com/llvm/llvm-project/commit/845612062389e3defbe073119b481a5472e9fc36
DIFF: https://github.com/llvm/llvm-project/commit/845612062389e3defbe073119b481a5472e9fc36.diff
LOG: Revert "[lldb] Add support for MSP430 in LLDB."
This reverts commit 82c02b733c7736507a41a26bebd37d3f8e88bd4e.
Apparently, the original patch was not rebased onto `main
Added:
Modified:
lldb/include/lldb/Utility/ArchSpec.h
lldb/include/lldb/Utility/DataExtractor.h
lldb/source/Expression/IRMemoryMap.cpp
lldb/source/Expression/LLVMUserExpression.cpp
lldb/source/Host/common/NativeProcessProtocol.cpp
lldb/source/Plugins/ABI/CMakeLists.txt
lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp
lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp
lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterFallback.cpp
lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
lldb/source/Target/Platform.cpp
lldb/source/Utility/ArchSpec.cpp
lldb/unittests/Utility/ArchSpecTest.cpp
Removed:
lldb/source/Plugins/ABI/MSP430/ABISysV_msp430.cpp
lldb/source/Plugins/ABI/MSP430/ABISysV_msp430.h
lldb/source/Plugins/ABI/MSP430/CMakeLists.txt
lldb/test/API/functionalities/gdb_remote_client/TestMSP430MSPDebug.py
lldb/test/API/functionalities/gdb_remote_client/msp430.yaml
################################################################################
diff --git a/lldb/include/lldb/Utility/ArchSpec.h b/lldb/include/lldb/Utility/ArchSpec.h
index 2de517d765b2a..444d427c1bd44 100644
--- a/lldb/include/lldb/Utility/ArchSpec.h
+++ b/lldb/include/lldb/Utility/ArchSpec.h
@@ -172,8 +172,6 @@ class ArchSpec {
eCore_mips64r5el,
eCore_mips64r6el,
- eCore_msp430,
-
eCore_ppc_generic,
eCore_ppc_ppc601,
eCore_ppc_ppc602,
diff --git a/lldb/include/lldb/Utility/DataExtractor.h b/lldb/include/lldb/Utility/DataExtractor.h
index 0b7e771ed4f86..dbf0bce8c8d0d 100644
--- a/lldb/include/lldb/Utility/DataExtractor.h
+++ b/lldb/include/lldb/Utility/DataExtractor.h
@@ -843,7 +843,9 @@ class DataExtractor {
/// \param[in] addr_size
/// The size in bytes to use when extracting addresses.
void SetAddressByteSize(uint32_t addr_size) {
- assert(addr_size == 2 || addr_size == 4 || addr_size == 8);
+#ifdef LLDB_CONFIGURATION_DEBUG
+ assert(addr_size == 4 || addr_size == 8);
+#endif
m_addr_size = addr_size;
}
diff --git a/lldb/source/Expression/IRMemoryMap.cpp b/lldb/source/Expression/IRMemoryMap.cpp
index 951444db86a87..3c102dd4eaef1 100644
--- a/lldb/source/Expression/IRMemoryMap.cpp
+++ b/lldb/source/Expression/IRMemoryMap.cpp
@@ -96,21 +96,12 @@ lldb::addr_t IRMemoryMap::FindSpace(size_t size) {
// regions, walk forward through memory until a region is found that has
// adequate space for our allocation.
if (process_is_alive) {
- uint64_t end_of_memory;
- switch (process_sp->GetAddressByteSize()) {
- case 2:
- end_of_memory = 0xffffull;
- break;
- case 4:
- end_of_memory = 0xffffffffull;
- break;
- case 8:
- end_of_memory = 0xffffffffffffffffull;
- break;
- default:
- lldbassert(false && "Invalid address size.");
- return LLDB_INVALID_ADDRESS;
- }
+ const uint64_t end_of_memory = process_sp->GetAddressByteSize() == 8
+ ? 0xffffffffffffffffull
+ : 0xffffffffull;
+
+ lldbassert(process_sp->GetAddressByteSize() == 4 ||
+ end_of_memory != 0xffffffffull);
MemoryRegionInfo region_info;
Status err = process_sp->GetMemoryRegionInfo(ret, region_info);
@@ -146,31 +137,26 @@ lldb::addr_t IRMemoryMap::FindSpace(size_t size) {
// We've tried our algorithm, and it didn't work. Now we have to reset back
// to the end of the allocations we've already reported, or use a 'sensible'
// default if this is our first allocation.
+
if (m_allocations.empty()) {
uint32_t address_byte_size = GetAddressByteSize();
if (address_byte_size != UINT32_MAX) {
switch (address_byte_size) {
- case 2:
- ret = 0x8000ull;
+ case 8:
+ ret = 0xdead0fff00000000ull;
break;
case 4:
ret = 0xee000000ull;
break;
- case 8:
- ret = 0xdead0fff00000000ull;
- break;
default:
- lldbassert(false && "Invalid address size.");
- return LLDB_INVALID_ADDRESS;
+ break;
}
}
} else {
auto back = m_allocations.rbegin();
lldb::addr_t addr = back->first;
size_t alloc_size = back->second.m_size;
- auto arch = target_sp->GetArchitecture().GetTriple().getArch();
- auto align = arch == llvm::Triple::msp430 ? 512 : 4096;
- ret = llvm::alignTo(addr + alloc_size, align);
+ ret = llvm::alignTo(addr + alloc_size, 4096);
}
return ret;
diff --git a/lldb/source/Expression/LLVMUserExpression.cpp b/lldb/source/Expression/LLVMUserExpression.cpp
index af63a1629a647..6d11abbf876f4 100644
--- a/lldb/source/Expression/LLVMUserExpression.cpp
+++ b/lldb/source/Expression/LLVMUserExpression.cpp
@@ -333,9 +333,7 @@ bool LLVMUserExpression::PrepareToExecuteJITExpression(
if (m_can_interpret && m_stack_frame_bottom == LLDB_INVALID_ADDRESS) {
Status alloc_error;
- auto arch = target->GetArchitecture().GetTriple().getArch();
- const size_t stack_frame_size =
- arch == llvm::Triple::msp430 ? 512 : 512 * 1024;
+ const size_t stack_frame_size = 512 * 1024;
const bool zero_memory = false;
diff --git a/lldb/source/Host/common/NativeProcessProtocol.cpp b/lldb/source/Host/common/NativeProcessProtocol.cpp
index b3ef8f027bcfd..95258e1ddc5ee 100644
--- a/lldb/source/Host/common/NativeProcessProtocol.cpp
+++ b/lldb/source/Host/common/NativeProcessProtocol.cpp
@@ -503,7 +503,6 @@ NativeProcessProtocol::GetSoftwareBreakpointTrapOpcode(size_t size_hint) {
static const uint8_t g_i386_opcode[] = {0xCC};
static const uint8_t g_mips64_opcode[] = {0x00, 0x00, 0x00, 0x0d};
static const uint8_t g_mips64el_opcode[] = {0x0d, 0x00, 0x00, 0x00};
- static const uint8_t g_msp430_opcode[] = {0x43, 0x43};
static const uint8_t g_s390x_opcode[] = {0x00, 0x01};
static const uint8_t g_ppc_opcode[] = {0x7f, 0xe0, 0x00, 0x08}; // trap
static const uint8_t g_ppcle_opcode[] = {0x08, 0x00, 0xe0, 0x7f}; // trap
@@ -529,9 +528,6 @@ NativeProcessProtocol::GetSoftwareBreakpointTrapOpcode(size_t size_hint) {
case llvm::Triple::mips64el:
return llvm::ArrayRef(g_mips64el_opcode);
- case llvm::Triple::msp430:
- return llvm::ArrayRef(g_msp430_opcode);
-
case llvm::Triple::systemz:
return llvm::ArrayRef(g_s390x_opcode);
diff --git a/lldb/source/Plugins/ABI/CMakeLists.txt b/lldb/source/Plugins/ABI/CMakeLists.txt
index 828aea674ea68..d7cc39be514ac 100644
--- a/lldb/source/Plugins/ABI/CMakeLists.txt
+++ b/lldb/source/Plugins/ABI/CMakeLists.txt
@@ -1,4 +1,4 @@
-foreach(target AArch64 ARM ARC Hexagon Mips MSP430 PowerPC SystemZ X86)
+foreach(target AArch64 ARM ARC Hexagon Mips PowerPC SystemZ X86)
if (${target} IN_LIST LLVM_TARGETS_TO_BUILD)
add_subdirectory(${target})
endif()
diff --git a/lldb/source/Plugins/ABI/MSP430/ABISysV_msp430.cpp b/lldb/source/Plugins/ABI/MSP430/ABISysV_msp430.cpp
deleted file mode 100644
index 2e186285baf6a..0000000000000
--- a/lldb/source/Plugins/ABI/MSP430/ABISysV_msp430.cpp
+++ /dev/null
@@ -1,366 +0,0 @@
-//===-- ABISysV_msp430.cpp --------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "ABISysV_msp430.h"
-
-#include "lldb/Core/Module.h"
-#include "lldb/Core/PluginManager.h"
-#include "lldb/Core/Value.h"
-#include "lldb/Core/ValueObjectConstResult.h"
-#include "lldb/Core/ValueObjectMemory.h"
-#include "lldb/Core/ValueObjectRegister.h"
-#include "lldb/Symbol/UnwindPlan.h"
-#include "lldb/Target/Process.h"
-#include "lldb/Target/RegisterContext.h"
-#include "lldb/Target/StackFrame.h"
-#include "lldb/Target/Target.h"
-#include "lldb/Target/Thread.h"
-#include "lldb/Utility/ConstString.h"
-#include "lldb/Utility/DataExtractor.h"
-#include "lldb/Utility/Log.h"
-#include "lldb/Utility/RegisterValue.h"
-
-#include "llvm/ADT/Triple.h"
-
-#include "llvm/IR/DerivedTypes.h"
-
-using namespace lldb;
-using namespace lldb_private;
-
-LLDB_PLUGIN_DEFINE_ADV(ABISysV_msp430, ABIMSP430)
-
-enum dwarf_regnums {
- dwarf_pc = 0,
- dwarf_sp,
- dwarf_r2,
- dwarf_r3,
- dwarf_fp,
- dwarf_r5,
- dwarf_r6,
- dwarf_r7,
- dwarf_r8,
- dwarf_r9,
- dwarf_r10,
- dwarf_r11,
- dwarf_r12,
- dwarf_r13,
- dwarf_r14,
- dwarf_r15,
-};
-
-static const RegisterInfo g_register_infos[] = {
- {"r0",
- "pc",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_pc, dwarf_pc, LLDB_REGNUM_GENERIC_PC, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r1",
- "sp",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_sp, dwarf_sp, LLDB_REGNUM_GENERIC_SP, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r2",
- "",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_r2, dwarf_r2, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r3",
- "",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_r3, dwarf_r3, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r4",
- "fp",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_fp, dwarf_fp, LLDB_REGNUM_GENERIC_FP, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r5",
- "",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_r5, dwarf_r5, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r6",
- "",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_r6, dwarf_r6, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r7",
- "",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_r7, dwarf_r7, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r8",
- "",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_r8, dwarf_r8, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r9",
- "",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_r9, dwarf_r9, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r10",
- "",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_r10, dwarf_r10, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r11",
- "",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_r11, dwarf_r11, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r12",
- "",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_r12, dwarf_r12, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r13",
- "",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_r13, dwarf_r13, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r14",
- "",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_r14, dwarf_r14, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- },
- {"r15",
- "",
- 2,
- 0,
- eEncodingUint,
- eFormatHex,
- {dwarf_r15, dwarf_r15, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
- LLDB_INVALID_REGNUM},
- nullptr,
- nullptr,
- nullptr,
- }};
-
-static const uint32_t k_num_register_infos =
- sizeof(g_register_infos) / sizeof(RegisterInfo);
-
-const lldb_private::RegisterInfo *
-ABISysV_msp430::GetRegisterInfoArray(uint32_t &count) {
- // Make the C-string names and alt_names for the register infos into const
- // C-string values by having the ConstString unique the names in the global
- // constant C-string pool.
- count = k_num_register_infos;
- return g_register_infos;
-}
-
-size_t ABISysV_msp430::GetRedZoneSize() const { return 0; }
-
-//------------------------------------------------------------------
-// Static Functions
-//------------------------------------------------------------------
-
-ABISP
-ABISysV_msp430::CreateInstance(lldb::ProcessSP process_sp,
- const ArchSpec &arch) {
- if (arch.GetTriple().getArch() == llvm::Triple::msp430) {
- return ABISP(
- new ABISysV_msp430(std::move(process_sp), MakeMCRegisterInfo(arch)));
- }
- return ABISP();
-}
-
-bool ABISysV_msp430::PrepareTrivialCall(Thread &thread, lldb::addr_t sp,
- lldb::addr_t pc, lldb::addr_t ra,
- llvm::ArrayRef<addr_t> args) const {
- // we don't use the traditional trivial call specialized for jit
- return false;
-}
-
-bool ABISysV_msp430::GetArgumentValues(Thread &thread,
- ValueList &values) const {
- return false;
-}
-
-Status ABISysV_msp430::SetReturnValueObject(lldb::StackFrameSP &frame_sp,
- lldb::ValueObjectSP &new_value_sp) {
- return Status();
-}
-
-ValueObjectSP ABISysV_msp430::GetReturnValueObjectSimple(
- Thread &thread, CompilerType &return_compiler_type) const {
- ValueObjectSP return_valobj_sp;
- return return_valobj_sp;
-}
-
-ValueObjectSP ABISysV_msp430::GetReturnValueObjectImpl(
- Thread &thread, CompilerType &return_compiler_type) const {
- ValueObjectSP return_valobj_sp;
- return return_valobj_sp;
-}
-
-// called when we are on the first instruction of a new function
-bool ABISysV_msp430::CreateFunctionEntryUnwindPlan(UnwindPlan &unwind_plan) {
- unwind_plan.Clear();
- unwind_plan.SetRegisterKind(eRegisterKindDWARF);
-
- uint32_t sp_reg_num = dwarf_sp;
- uint32_t pc_reg_num = dwarf_pc;
-
- UnwindPlan::RowSP row(new UnwindPlan::Row);
- row->GetCFAValue().SetIsRegisterPlusOffset(sp_reg_num, 2);
- row->SetRegisterLocationToAtCFAPlusOffset(pc_reg_num, -2, true);
- row->SetRegisterLocationToIsCFAPlusOffset(sp_reg_num, 0, true);
-
- unwind_plan.AppendRow(row);
- unwind_plan.SetSourceName("msp430 at-func-entry default");
- unwind_plan.SetSourcedFromCompiler(eLazyBoolNo);
- return true;
-}
-
-bool ABISysV_msp430::CreateDefaultUnwindPlan(UnwindPlan &unwind_plan) {
- unwind_plan.Clear();
- unwind_plan.SetRegisterKind(eRegisterKindDWARF);
-
- uint32_t fp_reg_num = dwarf_fp;
- uint32_t sp_reg_num = dwarf_sp;
- uint32_t pc_reg_num = dwarf_pc;
-
- UnwindPlan::RowSP row(new UnwindPlan::Row);
- row->GetCFAValue().SetIsRegisterPlusOffset(sp_reg_num, 2);
- row->SetRegisterLocationToAtCFAPlusOffset(pc_reg_num, -2, true);
- row->SetRegisterLocationToIsCFAPlusOffset(sp_reg_num, 0, true);
- row->SetRegisterLocationToUnspecified(fp_reg_num, true);
-
- unwind_plan.AppendRow(row);
- unwind_plan.SetSourceName("msp430 default unwind plan");
- unwind_plan.SetSourcedFromCompiler(eLazyBoolNo);
- unwind_plan.SetUnwindPlanValidAtAllInstructions(eLazyBoolNo);
- return true;
-}
-
-bool ABISysV_msp430::RegisterIsVolatile(const RegisterInfo *reg_info) {
- return !RegisterIsCalleeSaved(reg_info);
-}
-
-bool ABISysV_msp430::RegisterIsCalleeSaved(const RegisterInfo *reg_info) {
- int reg = ((reg_info->byte_offset) / 2);
-
- bool save = (reg >= 4) && (reg <= 10);
- return save;
-}
-
-void ABISysV_msp430::Initialize(void) {
- PluginManager::RegisterPlugin(
- GetPluginNameStatic(), "System V ABI for msp430 targets", CreateInstance);
-}
-
-void ABISysV_msp430::Terminate(void) {
- PluginManager::UnregisterPlugin(CreateInstance);
-}
diff --git a/lldb/source/Plugins/ABI/MSP430/ABISysV_msp430.h b/lldb/source/Plugins/ABI/MSP430/ABISysV_msp430.h
deleted file mode 100644
index 91f48a8416112..0000000000000
--- a/lldb/source/Plugins/ABI/MSP430/ABISysV_msp430.h
+++ /dev/null
@@ -1,88 +0,0 @@
-//===-- ABISysV_msp430.h ----------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLDB_SOURCE_PLUGINS_ABI_MSP430_ABISYSV_MSP430_H
-#define LLDB_SOURCE_PLUGINS_ABI_MSP430_ABISYSV_MSP430_H
-
-#include "lldb/Target/ABI.h"
-#include "lldb/lldb-private.h"
-
-class ABISysV_msp430 : public lldb_private::RegInfoBasedABI {
-public:
- ~ABISysV_msp430() override = default;
-
- size_t GetRedZoneSize() const override;
-
- bool PrepareTrivialCall(lldb_private::Thread &thread, lldb::addr_t sp,
- lldb::addr_t functionAddress,
- lldb::addr_t returnAddress,
- llvm::ArrayRef<lldb::addr_t> args) const override;
-
- bool GetArgumentValues(lldb_private::Thread &thread,
- lldb_private::ValueList &values) const override;
-
- lldb_private::Status
- SetReturnValueObject(lldb::StackFrameSP &frame_sp,
- lldb::ValueObjectSP &new_value) override;
-
- lldb::ValueObjectSP
- GetReturnValueObjectImpl(lldb_private::Thread &thread,
- lldb_private::CompilerType &type) const override;
-
- bool
- CreateFunctionEntryUnwindPlan(lldb_private::UnwindPlan &unwind_plan) override;
-
- bool CreateDefaultUnwindPlan(lldb_private::UnwindPlan &unwind_plan) override;
-
- bool RegisterIsVolatile(const lldb_private::RegisterInfo *reg_info) override;
-
- bool CallFrameAddressIsValid(lldb::addr_t cfa) override {
- // Make sure the stack call frame addresses are 2 byte aligned
- // and not zero
- if (cfa & 0x01 || cfa == 0)
- return false;
- return true;
- }
-
- bool CodeAddressIsValid(lldb::addr_t pc) override { return true; }
-
- const lldb_private::RegisterInfo *
- GetRegisterInfoArray(uint32_t &count) override;
-
- //------------------------------------------------------------------
- // Static Functions
- //------------------------------------------------------------------
-
- static void Initialize();
-
- static void Terminate();
-
- static lldb::ABISP CreateInstance(lldb::ProcessSP process_sp,
- const lldb_private::ArchSpec &arch);
-
- static llvm::StringRef GetPluginNameStatic() { return "sysv-msp430"; }
-
- // PluginInterface protocol
-
- llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }
-
-protected:
- void CreateRegisterMapIfNeeded();
-
- lldb::ValueObjectSP
- GetReturnValueObjectSimple(lldb_private::Thread &thread,
- lldb_private::CompilerType &ast_type) const;
-
- bool RegisterIsCalleeSaved(const lldb_private::RegisterInfo *reg_info);
-
-private:
- using lldb_private::RegInfoBasedABI::RegInfoBasedABI;
-};
-
-#endif // LLDB_SOURCE_PLUGINS_ABI_MSP430_ABISYSV_MSP430_H
diff --git a/lldb/source/Plugins/ABI/MSP430/CMakeLists.txt b/lldb/source/Plugins/ABI/MSP430/CMakeLists.txt
deleted file mode 100644
index 81abb2d9b16e0..0000000000000
--- a/lldb/source/Plugins/ABI/MSP430/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-add_lldb_library(lldbPluginABIMSP430 PLUGIN
- ABISysV_msp430.cpp
-
- LINK_LIBS
- lldbCore
- lldbSymbol
- lldbTarget
- LINK_COMPONENTS
- Support
- TargetParser
- )
-
diff --git a/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp b/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp
index b0afe03946220..f26d6df1e9105 100644
--- a/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp
+++ b/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp
@@ -71,7 +71,6 @@ llvm::Triple::ArchType stringTo<llvm::Triple::ArchType>(llvm::StringRef Str) {
.Case("arm", Triple::arm)
.Cases("arm64", "arm64e", Triple::aarch64)
.Case("mips", Triple::mips)
- .Case("msp430", Triple::msp430)
.Case("ppc", Triple::ppc)
.Case("ppc64", Triple::ppc64)
.Case("s390", Triple::systemz)
diff --git a/lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp b/lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp
index 755c13defa988..bf226fabda5c9 100644
--- a/lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp
+++ b/lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp
@@ -123,7 +123,7 @@ PlatformLinux::PlatformLinux(bool is_host)
{llvm::Triple::x86_64, llvm::Triple::x86, llvm::Triple::arm,
llvm::Triple::aarch64, llvm::Triple::mips64, llvm::Triple::mips64,
llvm::Triple::hexagon, llvm::Triple::mips, llvm::Triple::mips64el,
- llvm::Triple::mipsel, llvm::Triple::msp430, llvm::Triple::systemz},
+ llvm::Triple::mipsel, llvm::Triple::systemz},
llvm::Triple::Linux);
}
}
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterFallback.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterFallback.cpp
index 8068614c9350c..b391edced695f 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterFallback.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterFallback.cpp
@@ -19,7 +19,6 @@ namespace process_gdb_remote {
}
#define R64(name) REG(name, 8)
#define R32(name) REG(name, 4)
-#define R16(name) REG(name, 2)
static std::vector<DynamicRegisterInfo::Register> GetRegisters_aarch64() {
ConstString empty_alt_name;
@@ -36,18 +35,6 @@ static std::vector<DynamicRegisterInfo::Register> GetRegisters_aarch64() {
return registers;
}
-static std::vector<DynamicRegisterInfo::Register> GetRegisters_msp430() {
- ConstString empty_alt_name;
- ConstString reg_set{"general purpose registers"};
-
- std::vector<DynamicRegisterInfo::Register> registers{
- R16(pc), R16(sp), R16(r2), R16(r3), R16(fp), R16(r5),
- R16(r6), R16(r7), R16(r8), R16(r9), R16(r10), R16(r11),
- R16(r12), R16(r13), R16(r14), R16(r15)};
-
- return registers;
-}
-
static std::vector<DynamicRegisterInfo::Register> GetRegisters_x86() {
ConstString empty_alt_name;
ConstString reg_set{"general purpose registers"};
@@ -84,8 +71,6 @@ GetFallbackRegisters(const ArchSpec &arch_to_use) {
switch (arch_to_use.GetMachine()) {
case llvm::Triple::aarch64:
return GetRegisters_aarch64();
- case llvm::Triple::msp430:
- return GetRegisters_msp430();
case llvm::Triple::x86:
return GetRegisters_x86();
case llvm::Triple::x86_64:
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
index bff24b1c8c0cc..cbe9f494b6acd 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
@@ -940,8 +940,7 @@ DWARFUnitHeader::extract(const DWARFDataExtractor &data,
bool length_OK = data.ValidOffset(header.GetNextUnitOffset() - 1);
bool version_OK = SymbolFileDWARF::SupportedVersion(header.m_version);
- bool addr_size_OK = (header.m_addr_size == 2) || (header.m_addr_size == 4) ||
- (header.m_addr_size == 8);
+ bool addr_size_OK = (header.m_addr_size == 4) || (header.m_addr_size == 8);
bool type_offset_OK =
!header.IsTypeUnit() || (header.m_type_offset <= header.GetLength());
diff --git a/lldb/source/Target/Platform.cpp b/lldb/source/Target/Platform.cpp
index 50b54fb8c9c1b..1ddd7596280ee 100644
--- a/lldb/source/Target/Platform.cpp
+++ b/lldb/source/Target/Platform.cpp
@@ -1895,12 +1895,6 @@ size_t Platform::GetSoftwareBreakpointTrapOpcode(Target &target,
trap_opcode_size = sizeof(g_hex_opcode);
} break;
- case llvm::Triple::msp430: {
- static const uint8_t g_msp430_opcode[] = {0x43, 0x43};
- trap_opcode = g_msp430_opcode;
- trap_opcode_size = sizeof(g_msp430_opcode);
- } break;
-
case llvm::Triple::systemz: {
static const uint8_t g_hex_opcode[] = {0x00, 0x01};
trap_opcode = g_hex_opcode;
diff --git a/lldb/source/Utility/ArchSpec.cpp b/lldb/source/Utility/ArchSpec.cpp
index 475d0c8a63a7b..c82097a9e6cdc 100644
--- a/lldb/source/Utility/ArchSpec.cpp
+++ b/lldb/source/Utility/ArchSpec.cpp
@@ -154,10 +154,6 @@ static const CoreDefinition g_core_definitions[] = {
{eByteOrderLittle, 8, 2, 4, llvm::Triple::mips64el,
ArchSpec::eCore_mips64r6el, "mips64r6el"},
- // MSP430
- {eByteOrderLittle, 2, 2, 4, llvm::Triple::msp430, ArchSpec::eCore_msp430,
- "msp430"},
-
{eByteOrderBig, 4, 4, 4, llvm::Triple::ppc, ArchSpec::eCore_ppc_generic,
"powerpc"},
{eByteOrderBig, 4, 4, 4, llvm::Triple::ppc, ArchSpec::eCore_ppc_ppc601,
@@ -406,8 +402,6 @@ static const ArchDefinitionEntry g_elf_arch_entries[] = {
ArchSpec::eMIPSSubType_mips64r2el, 0xFFFFFFFFu, 0xFFFFFFFFu}, // mips64r2el
{ArchSpec::eCore_mips64r6el, llvm::ELF::EM_MIPS,
ArchSpec::eMIPSSubType_mips64r6el, 0xFFFFFFFFu, 0xFFFFFFFFu}, // mips64r6el
- {ArchSpec::eCore_msp430, llvm::ELF::EM_MSP430, LLDB_INVALID_CPUTYPE,
- 0xFFFFFFFFu, 0xFFFFFFFFu}, // MSP430
{ArchSpec::eCore_hexagon_generic, llvm::ELF::EM_HEXAGON,
LLDB_INVALID_CPUTYPE, 0xFFFFFFFFu, 0xFFFFFFFFu}, // HEXAGON
{ArchSpec::eCore_arc, llvm::ELF::EM_ARC_COMPACT2, LLDB_INVALID_CPUTYPE,
@@ -905,9 +899,6 @@ bool ArchSpec::SetArchitecture(ArchitectureType arch_type, uint32_t cpu,
case llvm::ELF::ELFOSABI_SOLARIS:
m_triple.setOS(llvm::Triple::OSType::Solaris);
break;
- case llvm::ELF::ELFOSABI_STANDALONE:
- m_triple.setOS(llvm::Triple::OSType::UnknownOS);
- break;
}
} else if (arch_type == eArchTypeCOFF && os == llvm::Triple::Win32) {
m_triple.setVendor(llvm::Triple::PC);
diff --git a/lldb/test/API/functionalities/gdb_remote_client/TestMSP430MSPDebug.py b/lldb/test/API/functionalities/gdb_remote_client/TestMSP430MSPDebug.py
deleted file mode 100644
index 067bb087630b6..0000000000000
--- a/lldb/test/API/functionalities/gdb_remote_client/TestMSP430MSPDebug.py
+++ /dev/null
@@ -1,110 +0,0 @@
-import lldb
-from lldbsuite.test.lldbtest import *
-from lldbsuite.test.decorators import *
-from lldbsuite.test.gdbclientutils import *
-from lldbsuite.test.lldbgdbclient import GDBRemoteTestBase
-
-# This test ensures that LLDB correctly handles packets sent by MSPDebug.
-# https://github.com/dlbeer/mspdebug
-
-class MyResponder(MockGDBServerResponder):
- def qSupported(self, client_supported):
- return "PacketSize=4000"
-
- def setBreakpoint(self, packet):
- return "OK"
-
- def stopPackets():
- # Registers 3 to 15 are empty
- regs3to15 = "".join('%02x:%s;' % (i, "00000000") for i in range(3, 16))
- yield "T0500:00050000;01:00000000;02:00000000;" + regs3to15
- yield "T0500:10050000;01:baff0000;02:05000000;" + regs3to15
- yield "T0500:16050000;01:baff0000;02:05000000;" + regs3to15
-
- stopPacket = stopPackets()
- def haltReason(self):
- return next(self.stopPacket)
-
- def cont(self):
- return self.haltReason()
-
- # Memory dump
- def readMemory(self, addr, length):
- # Program memory
- if (addr == 0x0400):
- return ("ff"*256) + "3140c0ff0c43b0121c05b01281010000b240d2043c051c423c0530413180020081430000b01210053150020030411c4330413c402a0030410c433041" + ("ff"*196)
- # Stack contents
- if (addr == 0xfe00):
- return ("ff"*442) + "280500000a05" + ("ff"*62) + "0005"
-
-class TestMSP430MSPDebug(GDBRemoteTestBase):
-
- @skipIfLLVMTargetMissing("MSP430")
- def test(self):
- """
- Test LLDB's MSP430 functionality.
- """
- target = self.createTarget("msp430.yaml")
- self.server.responder = MyResponder()
-
- if self.TraceOn():
- self.runCmd("log enable gdb-remote packets")
- self.addTearDownHook(
- lambda: self.runCmd("log disable gdb-remote packets"))
-
- process = self.connect(target)
- lldbutil.expect_state_changes(self, self.dbg.GetListener(), process,
- [lldb.eStateStopped])
- num_threads = len(process.threads)
- self.assertEqual(num_threads, 1, "Only one thread")
- thread = process.GetThreadAtIndex(0)
-
- # Test if a breakpoint can be set
- bp = target.BreakpointCreateByName("func")
- self.assertTrue(bp.IsValid())
- bp.SetEnabled(True)
- self.assertTrue(bp.IsEnabled())
-
- # Test if the breakpoint address is resolved correctly
- self.assertEqual(bp.GetNumLocations(), 1, "Only one location")
- bp_loc = bp.GetLocationAtIndex(0);
- self.assertTrue(bp_loc.GetAddress().GetLoadAddress(target) == 0x510,
- "Address of main")
-
- # Test if the process stops at the breakpoint
- process.Continue()
- self.assertStopReason(thread.GetStopReason(), lldb.eStopReasonBreakpoint,
- "Hit a breakpoint")
-
- # Check if disassembler works and the current function is "func"
- func = thread.GetFrameAtIndex(0).GetFunction()
- insts = func.GetInstructions(target)
- inst = insts.GetInstructionAtIndex(0)
- self.assertEqual(inst.GetMnemonic(target), "mov")
- self.assertEqual(inst.GetOperands(target), "#1234, &1340")
-
- # Test if thread can step a single instruction
- thread.StepInstruction(False)
- self.assertTrue(thread.GetFrameAtIndex(0).GetPCAddress().GetLoadAddress(target) == 0x516,
- "Address of the next instruction")
-
- # Test if registers are being set correctly
- registerSet = thread.GetFrameAtIndex(0).GetRegisters().GetValueAtIndex(0)
- reg_val_dict = {
- "pc": 0x0516, "sp": 0xffba, "r2": 0x0005,
- "r3": 0x0000, "fp": 0x0000, "r5": 0x0000,
- "r6": 0x0000, "r7": 0x0000, "r8": 0x0000,
- "r9": 0x0000, "r10": 0x0000, "r11": 0x0000,
- "r12": 0x0000, "r13": 0x0000, "r14": 0x0000,
- "r15": 0x0000
- }
- for reg in registerSet:
- self.assertEqual(reg.GetValueAsUnsigned(),
- reg_val_dict[reg.GetName()])
-
- # Check if backtracing works:
- self.assertTrue(len(thread.frames) >= 3)
- crt0_addr = thread.GetFrameAtIndex(2).GetPCAddress().GetLoadAddress(target)
- self.assertEqual(crt0_addr, 0x50a)
-
-
diff --git a/lldb/test/API/functionalities/gdb_remote_client/msp430.yaml b/lldb/test/API/functionalities/gdb_remote_client/msp430.yaml
deleted file mode 100644
index ef61b6691cb88..0000000000000
--- a/lldb/test/API/functionalities/gdb_remote_client/msp430.yaml
+++ /dev/null
@@ -1,426 +0,0 @@
-# File test.c, compiled with flags "-O0 -g"
-# Source code:
-#
-# int foo = 0;
-#
-# int func() {
-# foo = 1234;
-# return foo;
-# }
-#
-# int main() {
-# return func();
-# }
-#
-
---- !ELF
-FileHeader:
- Class: ELFCLASS32
- Data: ELFDATA2LSB
- OSABI: ELFOSABI_STANDALONE
- Type: ET_EXEC
- Machine: EM_MSP430
- Flags: [ ]
- Entry: 0x500
-ProgramHeaders:
- - Type: PT_LOAD
- Flags: [ PF_X, PF_R ]
- FirstSec: .text
- LastSec: .bss
- VAddr: 0x46C
- Align: 0x4
- - Type: PT_LOAD
- Flags: [ PF_W, PF_R ]
- FirstSec: .data
- LastSec: .bss
- VAddr: 0x53C
- Align: 0x4
- - Type: PT_LOAD
- Flags: [ PF_R ]
- FirstSec: __interrupt_vector_31
- LastSec: __interrupt_vector_31
- VAddr: 0xFFFE
- Align: 0x4
-Sections:
- - Name: .text
- Type: SHT_PROGBITS
- Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
- Address: 0x500
- AddressAlign: 0x4
- Content: 3140C0FF0C43B0121C05B01281010000B240D2043C051C423C0530413180020081430000B01210053150020030411C4330413C402A0030410C433041
- - Name: .data
- Type: SHT_PROGBITS
- Flags: [ SHF_WRITE, SHF_ALLOC ]
- Address: 0x53C
- AddressAlign: 0x1
- - Name: .bss
- Type: SHT_NOBITS
- Flags: [ SHF_WRITE, SHF_ALLOC ]
- Address: 0x53C
- AddressAlign: 0x2
- Size: 0x2
- - Name: __interrupt_vector_31
- Type: SHT_PROGBITS
- Flags: [ SHF_ALLOC ]
- Address: 0xFFFE
- AddressAlign: 0x1
- Offset: 0xD2
- Content: '0005'
- - Name: .rodata
- Type: SHT_PROGBITS
- Flags: [ SHF_WRITE, SHF_ALLOC ]
- Address: 0x500
- AddressAlign: 0x1
- - Name: .rodata2
- Type: SHT_PROGBITS
- Flags: [ SHF_WRITE ]
- Address: 0x500
- AddressAlign: 0x1
- - Name: .noinit
- Type: SHT_PROGBITS
- Flags: [ SHF_WRITE ]
- Address: 0x53E
- AddressAlign: 0x1
- - Name: .persistent
- Type: SHT_PROGBITS
- Flags: [ SHF_WRITE ]
- Address: 0x53E
- AddressAlign: 0x1
- - Name: .MSP430.attributes
- Type: SHT_MSP430_ATTRIBUTES
- AddressAlign: 0x1
- Content: 41160000006D737061626900010B000000040106010801
- - Name: .comment
- Type: SHT_PROGBITS
- Flags: [ SHF_MERGE, SHF_STRINGS ]
- AddressAlign: 0x1
- EntSize: 0x1
- Content: 4743433A20284D6974746F2053797374656D73204C696D69746564202D206D73703433302D67636320392E332E312E31312920392E332E3100636C616E672076657273696F6E2031362E302E30202868747470733A2F2F6769746875622E636F6D2F6163636573732D736F6674656B2F6C6C766D2D70726F6A6563742E67697420373634363331663864643330353231386339613938656165373535353464303436303236343032322900
- - Name: .debug_info
- Type: SHT_PROGBITS
- AddressAlign: 0x1
- Content: 4D000000050001040000000001001D0001080000000000000002011E0000000800000002032E000000000202A1000304050204010C00000001510500042E00000004021200000001510600092E00000000
- - Name: .debug_abbrev
- Type: SHT_PROGBITS
- AddressAlign: 0x1
- Content: 011101252513050325721710171B25111B120673170000023400032549133F193A0B3B0B0218000003240003253E0B0B0B0000042E00111B1206401803253A0B3B0B49133F19000000
- - Name: .debug_line
- Type: SHT_PROGBITS
- AddressAlign: 0x1
- Content: 660000000500040037000000010101FB0E0D00010101010000000100000101011F010000000003011F020F051E011E000000002C97BF5F43C79BB948A69660B684FF4A0400000502100500001505060A130509670502064A0500063105090A830502060B4A0206000101
- - Name: .debug_frame
- Type: SHT_PROGBITS
- AddressAlign: 0x4
- Content: 10000000FFFFFFFF04000400017E000C010280010C00000000000000100500000C00000014000000000000001C05000012000000440E044C0E020000
- - Name: .debug_str_offsets
- Type: SHT_PROGBITS
- AddressAlign: 0x1
- Content: 2000000005000000000000007200000079000000970000009B0000009F000000A4000000
- - Name: .debug_line_str
- Type: SHT_PROGBITS
- Flags: [ SHF_MERGE, SHF_STRINGS ]
- AddressAlign: 0x1
- EntSize: 0x1
- Content: 2F686F6D652F757365722F6465762F746573742F6D737034333000746573742E6300
- - Type: SectionHeaderTable
- Sections:
- - Name: __interrupt_vector_31
- - Name: .rodata
- - Name: .rodata2
- - Name: .text
- - Name: .data
- - Name: .bss
- - Name: .noinit
- - Name: .persistent
- - Name: .MSP430.attributes
- - Name: .comment
- - Name: .debug_info
- - Name: .debug_abbrev
- - Name: .debug_line
- - Name: .debug_frame
- - Name: .debug_str
- - Name: .debug_str_offsets
- - Name: .debug_addr
- - Name: .debug_line_str
- - Name: .symtab
- - Name: .strtab
- - Name: .shstrtab
-Symbols:
- - Name: __interrupt_vector_31
- Type: STT_SECTION
- Section: __interrupt_vector_31
- Value: 0xFFFE
- - Name: .rodata
- Type: STT_SECTION
- Section: .rodata
- Value: 0x500
- - Name: .rodata2
- Type: STT_SECTION
- Section: .rodata2
- Value: 0x500
- - Name: .text
- Type: STT_SECTION
- Section: .text
- Value: 0x500
- - Name: .data
- Type: STT_SECTION
- Section: .data
- Value: 0x53C
- - Name: .bss
- Type: STT_SECTION
- Section: .bss
- Value: 0x53C
- - Name: .noinit
- Type: STT_SECTION
- Section: .noinit
- Value: 0x53E
- - Name: .persistent
- Type: STT_SECTION
- Section: .persistent
- Value: 0x53E
- - Name: .MSP430.attributes
- Type: STT_SECTION
- Section: .MSP430.attributes
- - Name: .comment
- Type: STT_SECTION
- Section: .comment
- - Name: .debug_info
- Type: STT_SECTION
- Section: .debug_info
- - Name: .debug_abbrev
- Type: STT_SECTION
- Section: .debug_abbrev
- - Name: .debug_line
- Type: STT_SECTION
- Section: .debug_line
- - Name: .debug_frame
- Type: STT_SECTION
- Section: .debug_frame
- - Name: .debug_str
- Type: STT_SECTION
- Section: .debug_str
- - Name: .debug_str_offsets
- Type: STT_SECTION
- Section: .debug_str_offsets
- - Name: .debug_addr
- Type: STT_SECTION
- Section: .debug_addr
- - Name: .debug_line_str
- Type: STT_SECTION
- Section: .debug_line_str
- - Name: __msp430_resetvec_hook
- Section: __interrupt_vector_31
- Value: 0xFFFE
- - Name: .Loc.58.1
- Section: .text
- Value: 0x500
- - Name: "L0\x01"
- Section: .text
- Value: 0x504
- - Name: "L0\x01 (1)"
- Section: .text
- Value: 0x500
- - Name: "L0\x01 (2)"
- Section: .text
- Value: 0x504
- - Name: crt_main.o
- Type: STT_FILE
- Index: SHN_ABS
- - Name: .Loc.253.1
- Section: .text
- Value: 0x504
- - Name: .Loc.254.1
- Section: .text
- Value: 0x506
- - Name: "L0\x01 (3)"
- Section: .text
- Value: 0x50A
- - Name: "L0\x01 (4)"
- Section: .text
- Value: 0x504
- - Name: "L0\x01 (5)"
- Section: .text
- Value: 0x50A
- - Name: crt_callexit.o
- Type: STT_FILE
- Index: SHN_ABS
- - Name: .Loc.267.1
- Section: .text
- Value: 0x50A
- - Name: "L0\x01 (6)"
- Section: .text
- Value: 0x50E
- - Name: "L0\x01 (7)"
- Section: .text
- Value: 0x50A
- - Name: "L0\x01 (8)"
- Section: .text
- Value: 0x50E
- - Name: test.c
- Type: STT_FILE
- Index: SHN_ABS
- - Name: syscalls.o
- Type: STT_FILE
- Index: SHN_ABS
- - Name: .Loc.59.1
- Section: .text
- Value: 0x52E
- - Name: .Loc.60.1
- Section: .text
- Value: 0x530
- - Name: .Loc.65.1
- Section: .text
- Value: 0x532
- - Name: .Loc.66.1
- Section: .text
- Value: 0x536
- - Name: .Loc.71.1
- Section: .text
- Value: 0x538
- - Name: .Loc.72.1
- Section: .text
- Value: 0x53A
- - Name: "L0\x01 (9)"
- Section: .text
- Value: 0x53C
- - Name: "L0\x01 (10)"
- Section: .text
- Value: 0x52E
- - Name: "L0\x01 (11)"
- Section: .text
- Value: 0x53C
- - Name: __crt0_call_exit
- Type: STT_FUNC
- Section: .text
- Binding: STB_GLOBAL
- Value: 0x50A
- Size: 0x4
- - Name: getpid
- Section: .text
- Binding: STB_WEAK
- Value: 0x532
- - Name: isatty
- Section: .text
- Binding: STB_WEAK
- Value: 0x52E
- - Name: __crt0_start
- Type: STT_FUNC
- Section: .text
- Binding: STB_GLOBAL
- Value: 0x500
- Size: 0x4
- - Name: lseek
- Index: SHN_ABS
- Binding: STB_WEAK
- Value: 0x186
- - Name: _isatty
- Section: .text
- Binding: STB_WEAK
- Value: 0x52E
- - Name: fstat
- Index: SHN_ABS
- Binding: STB_WEAK
- Value: 0x18A
- - Name: kill
- Index: SHN_ABS
- Binding: STB_WEAK
- Value: 0x189
- - Name: _start
- Section: .text
- Binding: STB_GLOBAL
- Value: 0x500
- - Name: read
- Index: SHN_ABS
- Binding: STB_WEAK
- Value: 0x184
- - Name: __rom_highdatacopysize
- Index: SHN_ABS
- Binding: STB_WEAK
- - Name: gettimeofday
- Section: .text
- Binding: STB_WEAK
- Value: 0x538
- Size: 0x4
- - Name: main
- Type: STT_FUNC
- Section: .text
- Binding: STB_GLOBAL
- Value: 0x51C
- Size: 0x12
- - Name: __high_bsssize
- Index: SHN_ABS
- Binding: STB_WEAK
- - Name: __rom_highdatastart
- Index: SHN_ABS
- Binding: STB_WEAK
- - Name: __high_datastart
- Index: SHN_ABS
- Binding: STB_WEAK
- - Name: __upper_data_init
- Index: SHN_ABS
- Binding: STB_WEAK
- - Name: func
- Type: STT_FUNC
- Section: .text
- Binding: STB_GLOBAL
- Value: 0x510
- Size: 0xC
- - Name: foo
- Type: STT_OBJECT
- Section: .bss
- Binding: STB_GLOBAL
- Value: 0x53C
- Size: 0x2
- - Name: __stack
- Section: .persistent
- Binding: STB_GLOBAL
- Value: 0xFFC0
- - Name: _edata
- Section: .data
- Binding: STB_GLOBAL
- Value: 0x53C
- - Name: _end
- Section: .bss
- Binding: STB_GLOBAL
- Value: 0x53E
- - Name: exit
- Index: SHN_ABS
- Binding: STB_WEAK
- Value: 0x181
- - Name: __high_bssstart
- Index: SHN_ABS
- Binding: STB_WEAK
- - Name: __crt0_call_main
- Type: STT_FUNC
- Section: .text
- Binding: STB_GLOBAL
- Value: 0x504
- Size: 0x6
- - Name: _exit
- Index: SHN_ABS
- Binding: STB_WEAK
- Value: 0x181
- - Name: open
- Index: SHN_ABS
- Binding: STB_WEAK
- Value: 0x182
- - Name: close
- Index: SHN_ABS
- Binding: STB_WEAK
- Value: 0x183
-DWARF:
- debug_str:
- - test.c
- - foo
- - int
- - func
- - main
- debug_addr:
- - Length: 0x10
- Version: 0x5
- AddressSize: 0x4
- Entries:
- - Address: 0x53C
- - Address: 0x510
- - Address: 0x51C
-...
diff --git a/lldb/unittests/Utility/ArchSpecTest.cpp b/lldb/unittests/Utility/ArchSpecTest.cpp
index de3590b73bbaa..43cec1f735ccd 100644
--- a/lldb/unittests/Utility/ArchSpecTest.cpp
+++ b/lldb/unittests/Utility/ArchSpecTest.cpp
@@ -123,12 +123,6 @@ TEST(ArchSpecTest, TestSetTriple) {
EXPECT_STREQ("i686", AS.GetArchitectureName());
EXPECT_EQ(ArchSpec::eCore_x86_32_i686, AS.GetCore());
- AS = ArchSpec();
- EXPECT_TRUE(AS.SetTriple("msp430---elf"));
- EXPECT_EQ(llvm::Triple::msp430, AS.GetTriple().getArch());
- EXPECT_STREQ("msp430", AS.GetArchitectureName());
- EXPECT_EQ(ArchSpec::eCore_msp430, AS.GetCore());
-
// Various flavors of invalid triples.
AS = ArchSpec();
EXPECT_FALSE(AS.SetTriple("unknown-unknown-unknown"));
More information about the lldb-commits
mailing list