diff options
Diffstat (limited to 'src/devices/cpu/dsp32/dsp32dis.h')
-rw-r--r-- | src/devices/cpu/dsp32/dsp32dis.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/devices/cpu/dsp32/dsp32dis.h b/src/devices/cpu/dsp32/dsp32dis.h new file mode 100644 index 00000000000..96a36de954c --- /dev/null +++ b/src/devices/cpu/dsp32/dsp32dis.h @@ -0,0 +1,45 @@ +// license:BSD-3-Clause +// copyright-holders:Aaron Giles +/*************************************************************************** + + dsp32dis.c + Disassembler for the portable AT&T/Lucent DSP32C emulator. + Written by Aaron Giles + +***************************************************************************/ + +#ifndef MAME_CPU_DSP32_DSP32DIS_H +#define MAME_CPU_DSP32_DSP32DIS_H + +#pragma once + +class dsp32c_disassembler : public util::disasm_interface +{ +public: + dsp32c_disassembler() = default; + virtual ~dsp32c_disassembler() = default; + + 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: + static const char *const sizesuffix[]; + static const char *const unarysign[]; + static const char *const sign[]; + static const char *const aMvals[]; + static const char *const memsuffix[]; + static const char *const functable[]; + static const char *const condtable[]; + static const char *const regname[]; + static const char *const regnamee[]; + std::string signed_16bit_unary(int16_t val); + std::string signed_16bit_sep(int16_t val); + std::string signed_16bit_sep_nospace(int16_t val); + std::string unsigned_16bit_size(int16_t val, uint8_t size); + std::string dasm_XYZ(uint8_t bits); + std::string dasm_PI(uint16_t bits); + + uint8_t lastp; +}; + +#endif |