summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/h8/h8.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/h8/h8.h')
-rw-r--r--src/devices/cpu/h8/h8.h78
1 files changed, 2 insertions, 76 deletions
diff --git a/src/devices/cpu/h8/h8.h b/src/devices/cpu/h8/h8.h
index 3df33f8de1b..78ce598bb84 100644
--- a/src/devices/cpu/h8/h8.h
+++ b/src/devices/cpu/h8/h8.h
@@ -72,15 +72,6 @@ public:
bool access_is_dma() const { return inst_state == STATE_DMA || inst_state == STATE_DTC; }
protected:
- struct disasm_entry {
- int slot;
- uint32_t val, mask;
- uint16_t val0, mask0;
- const char *opcode;
- int am1, am2;
- offs_t flags;
- };
-
enum {
F_I = 0x80,
F_UI = 0x40,
@@ -96,64 +87,6 @@ protected:
EXR_I = 0x07
};
- enum {
- DASM_none, /* no additional arguments */
-
- DASM_r8l, /* 8-bits register in bits 0-3 */
- DASM_r8h, /* 8-bits register in bits 4-7 */
- DASM_r8u, /* 8-bits register in bits 8-15 */
- DASM_r16l, /* 16-bits register in bits 0-3 */
- DASM_r16h, /* 16-bits register in bits 4-7 */
- DASM_r32l, /* 32-bits register in bits 0-3 */
- DASM_r32h, /* 32-bits register in bits 4-7 */
-
- DASM_r16ih, /* indexed through 16-bits register in bits 4-6 */
- DASM_r16ihh, /* indexed through 16-bits register in bits 4-6 in 4-bytes instruction */
- DASM_pr16h, /* indexed through predecremented 16-bits register in bits 4-6 */
- DASM_r16ph, /* indexed through postincremented 16-bits register in bits 4-6 */
- DASM_r16d16h, /* indexed through 16-bits register in bits 4-6 with 16-bits displacement at end of instruction */
-
- DASM_r32ih, /* indexed through 32-bits register in bits 4-6 */
- DASM_r32ihh, /* indexed through 32-bits register in bits 4-6 in 4-bytes instruction */
- DASM_pr32h, /* indexed through predecremented 32-bits register in bits 4-6 */
- DASM_r32pl, /* indexed through postincremented 32-bits register in bits 0-2 */
- DASM_r32ph, /* indexed through postincremented 32-bits register in bits 4-6 */
- DASM_r32d16h, /* indexed through 32-bits register in bits 4-6 with 16-bits displacement at end of instruction */
- DASM_r32d32hh, /* indexed through 32-bits register in bits 20-22 with 32-bits displacement at end of instruction */
-
- DASM_psp, /* indexed through predecremented stack pointer */
- DASM_spp, /* indexed through postincremented stack pointer */
-
- DASM_r32n2l, /* Block of 2 registers */
- DASM_r32n3l, /* Block of 3 registers */
- DASM_r32n4l, /* Block of 4 registers */
-
- DASM_abs8, /* 8-bit address present at +1 */
- DASM_abs16, /* 16-bit address present at end of instruction */
- DASM_abs32, /* 32-bit address present at end of instruction */
- DASM_abs8i, /* 8-bit indirect jump address present at +1 */
- DASM_abs16e, /* 16-bit jump address present at +2 */
- DASM_abs24e, /* 24-bit jump address present at +1 */
-
- DASM_rel8, /* 8-bit pc-relative jump address at +1, offset=2 */
- DASM_rel16, /* 16-bit pc-relative jump address at +2, offset=4 */
-
- DASM_one, /* immediate value 1 */
- DASM_two, /* immediate value 2 */
- DASM_four, /* immediate value 4 */
-
- DASM_imm2, /* 2-bit immediate in bits 4-5 (trapa) */
- DASM_imm3, /* 3-bit immediate in bits 4-6 (bit selection */
- DASM_imm8, /* 8-bit immediate at +1 */
- DASM_imm16, /* 16-bit immediate at +2 */
- DASM_imm32, /* 32-bit immediate at +2 */
-
- DASM_ccr, /* internal register ccr */
- DASM_exr, /* internal register exr */
- DASM_macl, /* internal register macl */
- DASM_mach /* internal register mach */
- };
-
h8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool mode_a16, address_map_delegate map_delegate);
// device-level overrides
@@ -175,13 +108,11 @@ protected:
virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
// device_disasm_interface overrides
- virtual uint32_t disasm_min_opcode_bytes() const override;
- virtual uint32_t disasm_max_opcode_bytes() const override;
- virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
+ virtual util::disasm_interface *create_disassembler() override;
address_space_config program_config, io_config;
address_space *program, *io;
- direct_read_data *direct;
+ direct_read_data<0> *direct;
h8_dma_device *dma_device;
h8_dtc_device *dtc_device;
h8_dma_state *current_dma;
@@ -208,11 +139,6 @@ protected:
int irq_level, taken_irq_level;
bool irq_required, irq_nmi;
- static const disasm_entry disasm_entries[];
-
- offs_t disassemble_generic(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options, const disasm_entry *table);
- void disassemble_am(std::ostream &stream, int am, offs_t pc, const uint8_t *oprom, uint32_t opcode, int slot, int offset);
-
virtual void do_exec_full();
virtual void do_exec_partial();
static void add_event(uint64_t &event_time, uint64_t new_event);