summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/Disassembler.cpp
diff options
context:
space:
mode:
authorBhushan D. Attarde <Bhushan.Attarde@imgtec.com>2015-08-26 06:04:54 +0000
committerBhushan D. Attarde <Bhushan.Attarde@imgtec.com>2015-08-26 06:04:54 +0000
commit7f3daeda9a1c8e2a7691954827c9ea886c8cfa62 (patch)
tree3b935ff9f79f0c5212abf7bd320757b70bff130e /lldb/source/Core/Disassembler.cpp
parentd39bcaed2122c23a44dad3dc94b9e2166f8a3035 (diff)
downloadbcm5719-llvm-7f3daeda9a1c8e2a7691954827c9ea886c8cfa62.tar.gz
bcm5719-llvm-7f3daeda9a1c8e2a7691954827c9ea886c8cfa62.zip
[MIPS] Avoid breakpoint in delay slot
SUMMARY: This patch implements Target::GetBreakableLoadAddress() method that takes an address and checks for any reason there is a better address than this to put a breakpoint on. If there is then return that address. MIPS uses this method to avoid breakpoint in delay slot. Reviewers: clayborg, jingham Subscribers: jingham, mohit.bhakkad, sagar, jaydeep, nitesh.jain, lldb-commits Differential Revision: http://http://reviews.llvm.org/D12184 llvm-svn: 246015
Diffstat (limited to 'lldb/source/Core/Disassembler.cpp')
-rw-r--r--lldb/source/Core/Disassembler.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/lldb/source/Core/Disassembler.cpp b/lldb/source/Core/Disassembler.cpp
index 232d6a52cc6..bb5f106ca61 100644
--- a/lldb/source/Core/Disassembler.cpp
+++ b/lldb/source/Core/Disassembler.cpp
@@ -674,6 +674,13 @@ Instruction::DumpEmulation (const ArchSpec &arch)
return false;
}
+bool
+Instruction::HasDelaySlot ()
+{
+ // Default is false.
+ return false;
+}
+
OptionValueSP
Instruction::ReadArray (FILE *in_file, Stream *out_stream, OptionValue::Type data_type)
{
@@ -1318,6 +1325,13 @@ PseudoInstruction::DoesBranch ()
return false;
}
+bool
+PseudoInstruction::HasDelaySlot ()
+{
+ // This is NOT a valid question for a pseudo instruction.
+ return false;
+}
+
size_t
PseudoInstruction::Decode (const lldb_private::Disassembler &disassembler,
const lldb_private::DataExtractor &data,
OpenPOWER on IntegriCloud