diff options
Diffstat (limited to 'src/devices/cpu/h8/h8h.h')
-rw-r--r-- | src/devices/cpu/h8/h8h.h | 51 |
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 |