mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
unidasm: Add disassembler for Tensilica Xtensa architecture
This commit is contained in:
parent
7d4de65b7b
commit
428fbb7c55
@ -3909,3 +3909,13 @@ if opt_tool(CPUS, "EVOLUTION") then
|
||||
table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/evolution/evod.cpp")
|
||||
table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/evolution/evod.h")
|
||||
end
|
||||
|
||||
--------------------------------------------------
|
||||
-- Tensilica Xtensa, disassembler only
|
||||
--@src/devices/cpu/xtensa/xtensa.h,CPUS["XTENSA"] = true
|
||||
--------------------------------------------------
|
||||
|
||||
if opt_tool(CPUS, "XTENSA") then
|
||||
table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/xtensa/xtensad.cpp")
|
||||
table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/xtensa/xtensad.h")
|
||||
end
|
||||
|
1168
src/devices/cpu/xtensa/xtensad.cpp
Normal file
1168
src/devices/cpu/xtensa/xtensad.cpp
Normal file
File diff suppressed because it is too large
Load Diff
27
src/devices/cpu/xtensa/xtensad.h
Normal file
27
src/devices/cpu/xtensa/xtensad.h
Normal file
@ -0,0 +1,27 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:AJR
|
||||
|
||||
#ifndef MAME_CPU_XTENSA_XTENSAD_H
|
||||
#define MAME_CPU_XTENSA_XTENSAD_H
|
||||
|
||||
#pragma once
|
||||
|
||||
class xtensa_disassembler : public util::disasm_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
xtensa_disassembler();
|
||||
|
||||
protected:
|
||||
// disassembler overrides
|
||||
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:
|
||||
// formatting helpers
|
||||
static void format_imm(std::ostream &stream, u32 imm);
|
||||
|
||||
static std::string special_reg(u8 n, bool wsr);
|
||||
};
|
||||
|
||||
#endif // MAME_CPU_XTENSA_XTENSAD_H
|
@ -205,6 +205,7 @@ using util::BIT;
|
||||
#include "cpu/vt61/vt61dasm.h"
|
||||
#include "cpu/we32000/we32100d.h"
|
||||
#include "cpu/xavix2/xavix2d.h"
|
||||
#include "cpu/xtensa/xtensad.h"
|
||||
#include "cpu/z180/z180dasm.h"
|
||||
#include "cpu/z8/z8dasm.h"
|
||||
#include "cpu/z80/z80dasm.h"
|
||||
@ -714,6 +715,7 @@ static const dasm_table_entry dasm_table[] =
|
||||
{ "xavix2000", le, 0, []() -> util::disasm_interface * { return new xavix2000_disassembler; } },
|
||||
{ "xavix2", le, 0, []() -> util::disasm_interface * { return new xavix2_disassembler; } },
|
||||
{ "xerox530", be, -1, []() -> util::disasm_interface * { return new xerox530_disassembler; } },
|
||||
{ "xtensa", le, 0, []() -> util::disasm_interface * { return new xtensa_disassembler; } },
|
||||
{ "z180", le, 0, []() -> util::disasm_interface * { return new z180_disassembler; } },
|
||||
{ "z8", be, 0, []() -> util::disasm_interface * { return new z8_disassembler; } },
|
||||
{ "z80", le, 0, []() -> util::disasm_interface * { return new z80_disassembler; } },
|
||||
|
Loading…
Reference in New Issue
Block a user