summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/hphybrid/hphybrid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/hphybrid/hphybrid.cpp')
-rw-r--r--src/devices/cpu/hphybrid/hphybrid.cpp21
1 files changed, 8 insertions, 13 deletions
diff --git a/src/devices/cpu/hphybrid/hphybrid.cpp b/src/devices/cpu/hphybrid/hphybrid.cpp
index cad5e86d801..b9e7da6cc4e 100644
--- a/src/devices/cpu/hphybrid/hphybrid.cpp
+++ b/src/devices/cpu/hphybrid/hphybrid.cpp
@@ -243,11 +243,8 @@ void hp_hybrid_cpu_device::device_start()
set_icountptr(m_icount);
m_pa_changed_func.resolve_safe();
- m_opcode_func.resolve();
+ m_opcode_func.resolve_safe();
m_stm_func.resolve();
- // Cache active state of m_stm_func & m_opcode_func
- m_opcode_func_defd = bool(m_opcode_func);
- m_stm_func_defd = bool(m_stm_func);
}
void hp_hybrid_cpu_device::device_reset()
@@ -960,7 +957,7 @@ uint16_t hp_hybrid_cpu_device::RM(uint32_t addr)
// Any access to internal registers removes forcing of BSC 2x
m_forced_bsc_25 = false;
- if (m_stm_func_defd) {
+ if (m_stm_func) {
m_stm_func(m_curr_cycle | CYCLE_RAL_MASK | CYCLE_RD_MASK);
m_curr_cycle = 0;
}
@@ -1029,7 +1026,7 @@ uint16_t hp_hybrid_cpu_device::RM(uint32_t addr)
return tmp;
} else {
m_icount -= m_r_cycles;
- if (m_stm_func_defd) {
+ if (m_stm_func) {
m_stm_func(m_curr_cycle | CYCLE_RD_MASK);
m_curr_cycle = 0;
}
@@ -1082,7 +1079,7 @@ void hp_hybrid_cpu_device::WM(uint32_t addr , uint16_t v)
// Any access to internal registers removes forcing of BSC 2x
m_forced_bsc_25 = false;
- if (m_stm_func_defd) {
+ if (m_stm_func) {
m_stm_func(m_curr_cycle | CYCLE_RAL_MASK | CYCLE_WR_MASK);
m_curr_cycle = 0;
}
@@ -1152,7 +1149,7 @@ void hp_hybrid_cpu_device::WM(uint32_t addr , uint16_t v)
m_icount -= REGISTER_RW_CYCLES;
} else {
m_icount -= m_w_cycles;
- if (m_stm_func_defd) {
+ if (m_stm_func) {
m_stm_func(m_curr_cycle | CYCLE_WR_MASK);
m_curr_cycle = 0;
}
@@ -1201,9 +1198,7 @@ uint16_t hp_hybrid_cpu_device::fetch_at(uint32_t addr)
{
m_curr_cycle |= CYCLE_IFETCH_MASK;
uint16_t opcode = RM(addr);
- if (m_opcode_func_defd) {
- m_opcode_func(opcode);
- }
+ m_opcode_func(opcode);
return opcode;
}
@@ -1622,7 +1617,7 @@ bool hp_5061_3011_cpu_device::execute_no_bpc(uint16_t opcode , uint16_t& next_pc
// 16 bits units.
WM(tmp_addr >> 1 , tmp);
} else {
- if (m_stm_func_defd) {
+ if (m_stm_func) {
m_stm_func(m_curr_cycle | CYCLE_WR_MASK);
m_curr_cycle = 0;
}
@@ -1996,7 +1991,7 @@ bool hp_09825_67907_cpu_device::execute_no_bpc(uint16_t opcode , uint16_t& next_
// 16 bits units.
WM(tmp_addr , tmp);
} else {
- if (m_stm_func_defd) {
+ if (m_stm_func) {
m_stm_func(m_curr_cycle | CYCLE_WR_MASK);
m_curr_cycle = 0;
}