diff options
Diffstat (limited to 'src/devices/cpu/arm/armdasm.h')
-rw-r--r-- | src/devices/cpu/arm/armdasm.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/devices/cpu/arm/armdasm.h b/src/devices/cpu/arm/armdasm.h new file mode 100644 index 00000000000..1e2ed19f394 --- /dev/null +++ b/src/devices/cpu/arm/armdasm.h @@ -0,0 +1,23 @@ + +#ifndef MAME_CPU_ARM_ARMDASM_H +#define MAME_CPU_ARM_ARMDASM_H + +#pragma once + +class arm_disassembler : public util::disasm_interface +{ +public: + arm_disassembler(); + virtual u32 opcode_alignment() const override; + virtual offs_t disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer ¶ms) override; + +private: + void WriteImmediateOperand( std::ostream &stream, uint32_t opcode ) const; + void WriteDataProcessingOperand( std::ostream &stream, uint32_t opcode, int printOp0, int printOp1, int printOp2 ) const; + void WriteRegisterOperand1( std::ostream &stream, uint32_t opcode ) const; + void WriteBranchAddress( std::ostream &stream, uint32_t pc, uint32_t opcode ) const; + void WritePadding(std::ostream &stream, std::streampos start_position) const; + +}; + +#endif |