summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/h8/h8h.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/h8/h8h.h')
-rw-r--r--src/devices/cpu/h8/h8h.h51
1 files changed, 27 insertions, 24 deletions
diff --git a/src/devices/cpu/h8/h8h.h b/src/devices/cpu/h8/h8h.h
index 1b0c9b4b3ce..0c4d6e277ea 100644
--- a/src/devices/cpu/h8/h8h.h
+++ b/src/devices/cpu/h8/h8h.h
@@ -20,54 +20,57 @@
class h8h_device : public h8_device {
protected:
- h8h_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, address_map_constructor map_delegate);
+ h8h_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor map_delegate);
+
+ virtual u32 execute_min_cycles() const noexcept override { return 2; }
+ virtual u32 execute_max_cycles() const noexcept override { return 20; }
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
virtual void do_exec_full() override;
virtual void do_exec_partial() override;
- inline void r32_w(int reg, uint32_t val) { R[reg & 7] = val; R[(reg & 7) | 8] = val >> 16; }
- inline uint32_t r32_r(int reg) const { return R[reg & 7] | (R[(reg & 7) | 8] << 16); }
+ inline void r32_w(int reg, u32 val) { m_R[reg & 7] = val; m_R[(reg & 7) | 8] = val >> 16; }
+ inline u32 r32_r(int reg) const { return m_R[reg & 7] | (m_R[(reg & 7) | 8] << 16); }
#define O(o) void o ## _full(); void o ## _partial()
- O(add_l_r32h_r32l); O(add_l_imm32_r32l);
+ O(add_w_imm16_r16l); O(add_l_r32h_r32l); O(add_l_imm32_r32l);
O(adds_l_four_r32l); O(adds_l_one_r32l); O(adds_l_two_r32l);
- O(and_l_r32h_r32l); O(and_l_imm32_r32l); O(and_w_r16h_r16l);
- O(band_imm3_abs32); O(band_imm3_r32ihh);
+ O(and_w_imm16_r16l); O(and_l_r32h_r32l); O(and_l_imm32_r32l); O(and_w_r16h_r16l);
+ O(band_imm3_r32ihh);
O(bcc_rel16);
- O(bclr_imm3_abs32); O(bclr_imm3_r32ihh); O(bclr_r8h_abs32); O(bclr_r8h_r32ihh);
+ O(bclr_imm3_r32ihh); O(bclr_r8h_r32ihh);
O(bcs_rel16);
O(beq_rel16);
O(bf_rel16);
O(bge_rel16);
O(bgt_rel16);
O(bhi_rel16);
- O(biand_imm3_abs32); O(biand_imm3_r32ihh);
- O(bild_imm3_abs32); O(bild_imm3_r32ihh);
- O(bior_imm3_abs32); O(bior_imm3_r32ihh);
- O(bist_imm3_abs32); O(bist_imm3_r32ihh);
- O(bixor_imm3_abs32); O(bixor_imm3_r32ihh);
- O(bld_imm3_abs32); O(bld_imm3_r32ihh);
+ O(biand_imm3_r32ihh);
+ O(bild_imm3_r32ihh);
+ O(bior_imm3_r32ihh);
+ O(bist_imm3_r32ihh);
+ O(bixor_imm3_r32ihh);
+ O(bld_imm3_r32ihh);
O(ble_rel16);
O(bls_rel16);
O(blt_rel16);
O(bmi_rel16);
O(bne_rel16);
- O(bnot_imm3_abs32); O(bnot_imm3_r32ihh); O(bnot_r8h_abs32); O(bnot_r8h_r32ihh);
- O(bor_imm3_abs32); O(bor_imm3_r32ihh);
+ O(bnot_imm3_r32ihh); O(bnot_r8h_r32ihh);
+ O(bor_imm3_r32ihh);
O(bpl_rel16);
- O(bset_imm3_abs32); O(bset_imm3_r32ihh); O(bset_r8h_abs32); O(bset_r8h_r32ihh);
+ O(bset_imm3_r32ihh); O(bset_r8h_r32ihh);
O(bsr_rel16); O(bsr_rel8);
- O(bst_imm3_abs32); O(bst_imm3_r32ihh);
+ O(bst_imm3_r32ihh);
O(bt_rel16);
- O(btst_imm3_abs32); O(btst_imm3_r32ihh); O(btst_r8h_abs32); O(btst_r8h_r32ihh);
+ O(btst_imm3_r32ihh); O(btst_r8h_r32ihh);
O(bvc_rel16);
O(bvs_rel16);
- O(bxor_imm3_abs32); O(bxor_imm3_r32ihh);
- O(cmp_l_r32h_r32l); O(cmp_l_imm32_r32l);
- O(dec_l_one_r32l); O(dec_l_two_r32l);
+ O(bxor_imm3_r32ihh);
+ O(cmp_w_imm16_r16l); O(cmp_l_r32h_r32l); O(cmp_l_imm32_r32l);
+ O(dec_w_one_r16l); O(dec_w_two_r16l); O(dec_l_one_r32l); O(dec_l_two_r32l);
O(divxs_b_r8h_r16l); O(divxs_w_r16h_r32l);
O(divxu_w_r16h_r32l);
O(eepmov_b); O(eepmov_w);
@@ -84,7 +87,7 @@ protected:
O(mulxu_w_r16h_r32l);
O(neg_l_r32l); O(neg_w_r16l);
O(not_l_r32l); O(not_w_r16l);
- O(or_l_r32h_r32l); O(or_l_imm32_r32l); O(or_w_r16h_r16l);
+ O(or_w_imm16_r16l); O(or_l_r32h_r32l); O(or_l_imm32_r32l); O(or_w_r16h_r16l);
O(rotl_l_r32l); O(rotl_w_r16l);
O(rotr_l_r32l); O(rotr_w_r16l);
O(rotxl_l_r32l); O(rotxl_w_r16l);
@@ -96,10 +99,10 @@ protected:
O(shll_l_r32l); O(shll_w_r16l);
O(shlr_l_r32l); O(shlr_w_r16l);
O(stc_w_ccr_abs16); O(stc_w_ccr_abs32); O(stc_w_ccr_pr32h); O(stc_w_ccr_r32d16h); O(stc_w_ccr_r32d32hh); O(stc_w_ccr_r32ih);
- O(sub_l_r32h_r32l); O(sub_l_imm32_r32l);
+ O(sub_w_imm16_r16l); O(sub_l_r32h_r32l); O(sub_l_imm32_r32l);
O(subs_l_four_r32l); O(subs_l_one_r32l); O(subs_l_two_r32l);
O(trapa_imm2);
- O(xor_l_r32h_r32l); O(xor_l_imm32_r32l); O(xor_w_r16h_r16l);
+ O(xor_w_imm16_r16l); O(xor_l_r32h_r32l); O(xor_l_imm32_r32l); O(xor_w_r16h_r16l);
O(state_irq);
#undef O