diff options
author | Bhushan D. Attarde <Bhushan.Attarde@imgtec.com> | 2015-08-26 06:04:54 +0000 |
---|---|---|
committer | Bhushan D. Attarde <Bhushan.Attarde@imgtec.com> | 2015-08-26 06:04:54 +0000 |
commit | 7f3daeda9a1c8e2a7691954827c9ea886c8cfa62 (patch) | |
tree | 3b935ff9f79f0c5212abf7bd320757b70bff130e /lldb/source/Core/Disassembler.cpp | |
parent | d39bcaed2122c23a44dad3dc94b9e2166f8a3035 (diff) | |
download | bcm5719-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.cpp | 14 |
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, |