summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h')
-rw-r--r--lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h284
1 files changed, 111 insertions, 173 deletions
diff --git a/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h b/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h
index 4ee690bbf18..5543615efad 100644
--- a/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h
+++ b/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h
@@ -18,232 +18,170 @@
#include "lldb/Core/Error.h"
#include "lldb/Interpreter/OptionValue.h"
-namespace llvm
-{
- class MCDisassembler;
- class MCSubtargetInfo;
- class MCRegisterInfo;
- class MCAsmInfo;
- class MCContext;
- class MCInstrInfo;
- class MCInst;
+namespace llvm {
+class MCDisassembler;
+class MCSubtargetInfo;
+class MCRegisterInfo;
+class MCAsmInfo;
+class MCContext;
+class MCInstrInfo;
+class MCInst;
} // namespace llvm
-class EmulateInstructionMIPS64 : public lldb_private::EmulateInstruction
-{
-public:
- EmulateInstructionMIPS64(const lldb_private::ArchSpec &arch);
-
- static void
- Initialize ();
-
- static void
- Terminate ();
-
- static lldb_private::ConstString
- GetPluginNameStatic ();
-
- static const char *
- GetPluginDescriptionStatic ();
-
- static lldb_private::EmulateInstruction *
- CreateInstance (const lldb_private::ArchSpec &arch,
- lldb_private::InstructionType inst_type);
-
- static bool
- SupportsEmulatingInstructionsOfTypeStatic (lldb_private::InstructionType inst_type)
- {
- switch (inst_type)
- {
- case lldb_private::eInstructionTypeAny:
- case lldb_private::eInstructionTypePrologueEpilogue:
- case lldb_private::eInstructionTypePCModifying:
- return true;
-
- case lldb_private::eInstructionTypeAll:
- return false;
- }
- return false;
- }
+class EmulateInstructionMIPS64 : public lldb_private::EmulateInstruction {
+public:
+ EmulateInstructionMIPS64(const lldb_private::ArchSpec &arch);
- lldb_private::ConstString
- GetPluginName() override;
+ static void Initialize();
- uint32_t
- GetPluginVersion() override
- {
- return 1;
- }
+ static void Terminate();
- bool
- SetTargetTriple(const lldb_private::ArchSpec &arch) override;
-
- bool
- SupportsEmulatingInstructionsOfType(lldb_private::InstructionType inst_type) override
- {
- return SupportsEmulatingInstructionsOfTypeStatic (inst_type);
- }
+ static lldb_private::ConstString GetPluginNameStatic();
+
+ static const char *GetPluginDescriptionStatic();
- bool
- ReadInstruction() override;
-
- bool
- EvaluateInstruction(uint32_t evaluate_options) override;
-
- bool
- TestEmulation(lldb_private::Stream *out_stream,
- lldb_private::ArchSpec &arch,
- lldb_private::OptionValueDictionary *test_data) override
- {
- return false;
+ static lldb_private::EmulateInstruction *
+ CreateInstance(const lldb_private::ArchSpec &arch,
+ lldb_private::InstructionType inst_type);
+
+ static bool SupportsEmulatingInstructionsOfTypeStatic(
+ lldb_private::InstructionType inst_type) {
+ switch (inst_type) {
+ case lldb_private::eInstructionTypeAny:
+ case lldb_private::eInstructionTypePrologueEpilogue:
+ case lldb_private::eInstructionTypePCModifying:
+ return true;
+
+ case lldb_private::eInstructionTypeAll:
+ return false;
}
+ return false;
+ }
+
+ lldb_private::ConstString GetPluginName() override;
- bool
- GetRegisterInfo(lldb::RegisterKind reg_kind,
- uint32_t reg_num,
- lldb_private::RegisterInfo &reg_info) override;
+ uint32_t GetPluginVersion() override { return 1; }
- bool
- CreateFunctionEntryUnwind(lldb_private::UnwindPlan &unwind_plan) override;
+ bool SetTargetTriple(const lldb_private::ArchSpec &arch) override;
+
+ bool SupportsEmulatingInstructionsOfType(
+ lldb_private::InstructionType inst_type) override {
+ return SupportsEmulatingInstructionsOfTypeStatic(inst_type);
+ }
+
+ bool ReadInstruction() override;
+
+ bool EvaluateInstruction(uint32_t evaluate_options) override;
+
+ bool TestEmulation(lldb_private::Stream *out_stream,
+ lldb_private::ArchSpec &arch,
+ lldb_private::OptionValueDictionary *test_data) override {
+ return false;
+ }
+
+ bool GetRegisterInfo(lldb::RegisterKind reg_kind, uint32_t reg_num,
+ lldb_private::RegisterInfo &reg_info) override;
+
+ bool
+ CreateFunctionEntryUnwind(lldb_private::UnwindPlan &unwind_plan) override;
protected:
- typedef struct
- {
- const char *op_name;
- bool (EmulateInstructionMIPS64::*callback) (llvm::MCInst& insn);
- const char *insn_name;
- } MipsOpcode;
-
- static MipsOpcode*
- GetOpcodeForInstruction (const char *op_name);
+ typedef struct {
+ const char *op_name;
+ bool (EmulateInstructionMIPS64::*callback)(llvm::MCInst &insn);
+ const char *insn_name;
+ } MipsOpcode;
+
+ static MipsOpcode *GetOpcodeForInstruction(const char *op_name);
- bool
- Emulate_DADDiu (llvm::MCInst& insn);
+ bool Emulate_DADDiu(llvm::MCInst &insn);
- bool
- Emulate_DSUBU_DADDU (llvm::MCInst& insn);
+ bool Emulate_DSUBU_DADDU(llvm::MCInst &insn);
- bool
- Emulate_LUI (llvm::MCInst& insn);
+ bool Emulate_LUI(llvm::MCInst &insn);
- bool
- Emulate_SD (llvm::MCInst& insn);
+ bool Emulate_SD(llvm::MCInst &insn);
- bool
- Emulate_LD (llvm::MCInst& insn);
+ bool Emulate_LD(llvm::MCInst &insn);
- bool
- Emulate_LDST_Imm (llvm::MCInst& insn);
+ bool Emulate_LDST_Imm(llvm::MCInst &insn);
- bool
- Emulate_LDST_Reg (llvm::MCInst& insn);
+ bool Emulate_LDST_Reg(llvm::MCInst &insn);
- bool
- Emulate_BXX_3ops (llvm::MCInst& insn);
+ bool Emulate_BXX_3ops(llvm::MCInst &insn);
- bool
- Emulate_BXX_3ops_C (llvm::MCInst& insn);
+ bool Emulate_BXX_3ops_C(llvm::MCInst &insn);
- bool
- Emulate_BXX_2ops (llvm::MCInst& insn);
+ bool Emulate_BXX_2ops(llvm::MCInst &insn);
- bool
- Emulate_BXX_2ops_C (llvm::MCInst& insn);
+ bool Emulate_BXX_2ops_C(llvm::MCInst &insn);
- bool
- Emulate_Bcond_Link_C (llvm::MCInst& insn);
+ bool Emulate_Bcond_Link_C(llvm::MCInst &insn);
- bool
- Emulate_Bcond_Link (llvm::MCInst& insn);
+ bool Emulate_Bcond_Link(llvm::MCInst &insn);
- bool
- Emulate_FP_branch (llvm::MCInst& insn);
+ bool Emulate_FP_branch(llvm::MCInst &insn);
- bool
- Emulate_3D_branch (llvm::MCInst& insn);
+ bool Emulate_3D_branch(llvm::MCInst &insn);
- bool
- Emulate_BAL (llvm::MCInst& insn);
+ bool Emulate_BAL(llvm::MCInst &insn);
- bool
- Emulate_BALC (llvm::MCInst& insn);
+ bool Emulate_BALC(llvm::MCInst &insn);
- bool
- Emulate_BC (llvm::MCInst& insn);
+ bool Emulate_BC(llvm::MCInst &insn);
- bool
- Emulate_J (llvm::MCInst& insn);
+ bool Emulate_J(llvm::MCInst &insn);
- bool
- Emulate_JAL (llvm::MCInst& insn);
+ bool Emulate_JAL(llvm::MCInst &insn);
- bool
- Emulate_JALR (llvm::MCInst& insn);
+ bool Emulate_JALR(llvm::MCInst &insn);
- bool
- Emulate_JIALC (llvm::MCInst& insn);
+ bool Emulate_JIALC(llvm::MCInst &insn);
- bool
- Emulate_JIC (llvm::MCInst& insn);
+ bool Emulate_JIC(llvm::MCInst &insn);
- bool
- Emulate_JR (llvm::MCInst& insn);
+ bool Emulate_JR(llvm::MCInst &insn);
- bool
- Emulate_BC1EQZ (llvm::MCInst& insn);
+ bool Emulate_BC1EQZ(llvm::MCInst &insn);
- bool
- Emulate_BC1NEZ (llvm::MCInst& insn);
+ bool Emulate_BC1NEZ(llvm::MCInst &insn);
- bool
- Emulate_BNZB (llvm::MCInst& insn);
+ bool Emulate_BNZB(llvm::MCInst &insn);
- bool
- Emulate_BNZH (llvm::MCInst& insn);
+ bool Emulate_BNZH(llvm::MCInst &insn);
- bool
- Emulate_BNZW (llvm::MCInst& insn);
+ bool Emulate_BNZW(llvm::MCInst &insn);
- bool
- Emulate_BNZD (llvm::MCInst& insn);
+ bool Emulate_BNZD(llvm::MCInst &insn);
- bool
- Emulate_BZB (llvm::MCInst& insn);
+ bool Emulate_BZB(llvm::MCInst &insn);
- bool
- Emulate_BZH (llvm::MCInst& insn);
+ bool Emulate_BZH(llvm::MCInst &insn);
- bool
- Emulate_BZW (llvm::MCInst& insn);
+ bool Emulate_BZW(llvm::MCInst &insn);
- bool
- Emulate_BZD (llvm::MCInst& insn);
+ bool Emulate_BZD(llvm::MCInst &insn);
- bool
- Emulate_MSA_Branch_DF (llvm::MCInst& insn, int element_byte_size, bool bnz);
+ bool Emulate_MSA_Branch_DF(llvm::MCInst &insn, int element_byte_size,
+ bool bnz);
- bool
- Emulate_BNZV (llvm::MCInst& insn);
+ bool Emulate_BNZV(llvm::MCInst &insn);
- bool
- Emulate_BZV (llvm::MCInst& insn);
+ bool Emulate_BZV(llvm::MCInst &insn);
- bool
- Emulate_MSA_Branch_V (llvm::MCInst& insn, bool bnz);
+ bool Emulate_MSA_Branch_V(llvm::MCInst &insn, bool bnz);
- bool
- nonvolatile_reg_p (uint64_t regnum);
+ bool nonvolatile_reg_p(uint64_t regnum);
- const char *
- GetRegisterName (unsigned reg_num, bool altnernate_name);
+ const char *GetRegisterName(unsigned reg_num, bool altnernate_name);
private:
- std::unique_ptr<llvm::MCDisassembler> m_disasm;
- std::unique_ptr<llvm::MCSubtargetInfo> m_subtype_info;
- std::unique_ptr<llvm::MCRegisterInfo> m_reg_info;
- std::unique_ptr<llvm::MCAsmInfo> m_asm_info;
- std::unique_ptr<llvm::MCContext> m_context;
- std::unique_ptr<llvm::MCInstrInfo> m_insn_info;
+ std::unique_ptr<llvm::MCDisassembler> m_disasm;
+ std::unique_ptr<llvm::MCSubtargetInfo> m_subtype_info;
+ std::unique_ptr<llvm::MCRegisterInfo> m_reg_info;
+ std::unique_ptr<llvm::MCAsmInfo> m_asm_info;
+ std::unique_ptr<llvm::MCContext> m_context;
+ std::unique_ptr<llvm::MCInstrInfo> m_insn_info;
};
#endif // EmulateInstructionMIPS64_h_
OpenPOWER on IntegriCloud