1//===-- EmulateInstructionMIPS.cpp -------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 19 unchanged lines hidden (view full) --- 28#include "lldb/Core/PluginManager.h" 29#include "lldb/Core/DataExtractor.h" 30#include "lldb/Core/Stream.h" 31#include "lldb/Symbol/UnwindPlan.h" 32 33#include "llvm/ADT/STLExtras.h" 34 35#include "Plugins/Process/Utility/InstructionUtils.h" |
36#include "Plugins/Process/Utility/RegisterContext_mips.h" //mips32 has same registers nos as mips64 |
37 38using namespace lldb; 39using namespace lldb_private; 40 41#define UInt(x) ((uint64_t)x) 42#define integer int64_t 43 44 --- 74 unchanged lines hidden (view full) --- 119 cpu = "mips64r5"; break; 120 case ArchSpec::eCore_mips64r6: 121 case ArchSpec::eCore_mips64r6el: 122 cpu = "mips64r6"; break; 123 default: 124 cpu = "generic"; break; 125 } 126 |
127 std::string features = ""; 128 uint32_t arch_flags = arch.GetFlags (); 129 if (arch_flags & ArchSpec::eMIPSAse_msa) 130 features += "+msa,"; 131 if (arch_flags & ArchSpec::eMIPSAse_dsp) 132 features += "+dsp,"; 133 if (arch_flags & ArchSpec::eMIPSAse_dspr2) 134 features += "+dspr2,"; 135 if (arch_flags & ArchSpec::eMIPSAse_mips16) 136 features += "+mips16,"; 137 if (arch_flags & ArchSpec::eMIPSAse_micromips) 138 features += "+micromips,"; 139 |
140 m_reg_info.reset (target->createMCRegInfo (triple.getTriple())); 141 assert (m_reg_info.get()); 142 143 m_insn_info.reset (target->createMCInstrInfo()); 144 assert (m_insn_info.get()); 145 146 m_asm_info.reset (target->createMCAsmInfo (*m_reg_info, triple.getTriple())); |
147 m_subtype_info.reset (target->createMCSubtargetInfo (triple.getTriple(), cpu, features)); |
148 assert (m_asm_info.get() && m_subtype_info.get()); 149 150 m_context.reset (new llvm::MCContext (m_asm_info.get(), m_reg_info.get(), nullptr)); 151 assert (m_context.get()); 152 153 m_disasm.reset (target->createMCDisassembler (*m_subtype_info, *m_context)); 154 assert (m_disasm.get()); 155} --- 141 unchanged lines hidden (view full) --- 297 case gcc_dwarf_r30_mips: return "fp"; 298 case gcc_dwarf_ra_mips: return "ra"; 299 case gcc_dwarf_sr_mips: return "sr"; 300 case gcc_dwarf_lo_mips: return "lo"; 301 case gcc_dwarf_hi_mips: return "hi"; 302 case gcc_dwarf_bad_mips: return "bad"; 303 case gcc_dwarf_cause_mips: return "cause"; 304 case gcc_dwarf_pc_mips: return "pc"; |
305 case gcc_dwarf_f0_mips: return "f0"; 306 case gcc_dwarf_f1_mips: return "f1"; 307 case gcc_dwarf_f2_mips: return "f2"; 308 case gcc_dwarf_f3_mips: return "f3"; 309 case gcc_dwarf_f4_mips: return "f4"; 310 case gcc_dwarf_f5_mips: return "f5"; 311 case gcc_dwarf_f6_mips: return "f6"; 312 case gcc_dwarf_f7_mips: return "f7"; 313 case gcc_dwarf_f8_mips: return "f8"; 314 case gcc_dwarf_f9_mips: return "f9"; 315 case gcc_dwarf_f10_mips: return "f10"; 316 case gcc_dwarf_f11_mips: return "f11"; 317 case gcc_dwarf_f12_mips: return "f12"; 318 case gcc_dwarf_f13_mips: return "f13"; 319 case gcc_dwarf_f14_mips: return "f14"; 320 case gcc_dwarf_f15_mips: return "f15"; 321 case gcc_dwarf_f16_mips: return "f16"; 322 case gcc_dwarf_f17_mips: return "f17"; 323 case gcc_dwarf_f18_mips: return "f18"; 324 case gcc_dwarf_f19_mips: return "f19"; 325 case gcc_dwarf_f20_mips: return "f20"; 326 case gcc_dwarf_f21_mips: return "f21"; 327 case gcc_dwarf_f22_mips: return "f22"; 328 case gcc_dwarf_f23_mips: return "f23"; 329 case gcc_dwarf_f24_mips: return "f24"; 330 case gcc_dwarf_f25_mips: return "f25"; 331 case gcc_dwarf_f26_mips: return "f26"; 332 case gcc_dwarf_f27_mips: return "f27"; 333 case gcc_dwarf_f28_mips: return "f28"; 334 case gcc_dwarf_f29_mips: return "f29"; 335 case gcc_dwarf_f30_mips: return "f30"; 336 case gcc_dwarf_f31_mips: return "f31"; |
337 case gcc_dwarf_fcsr_mips: return "fcsr"; 338 case gcc_dwarf_fir_mips: return "fir"; 339 } 340 return nullptr; 341} 342 343bool 344EmulateInstructionMIPS::GetRegisterInfo (RegisterKind reg_kind, uint32_t reg_num, RegisterInfo ®_info) --- 2587 unchanged lines hidden --- |