summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2019-12-09 17:26:43 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2019-12-09 17:26:43 +0100
commite2343a800b337c0ef0721a87cac04d0004022a23 (patch)
treeee4cfad3a16b61260bd7a36e2c4797f1b8ea185c /src/devices/cpu
parent7bb4fb3e50c9ea728a0b76ade2eb8517bf9ba669 (diff)
various devices: try the new (and some not so new) save state possibilities (nw)
Diffstat (limited to 'src/devices/cpu')
-rw-r--r--src/devices/cpu/avr8/avr8.cpp28
-rw-r--r--src/devices/cpu/dspp/dspp.cpp29
-rw-r--r--src/devices/cpu/hphybrid/hphybrid.cpp12
-rw-r--r--src/devices/cpu/i386/i386.cpp35
-rw-r--r--src/devices/cpu/i8089/i8089_channel.cpp7
5 files changed, 26 insertions, 85 deletions
diff --git a/src/devices/cpu/avr8/avr8.cpp b/src/devices/cpu/avr8/avr8.cpp
index 62460f94f8f..fbde839982e 100644
--- a/src/devices/cpu/avr8/avr8.cpp
+++ b/src/devices/cpu/avr8/avr8.cpp
@@ -795,30 +795,10 @@ void avr8_device::device_start()
// register our state for saving
save_item(NAME(m_pc));
save_item(NAME(m_r));
- save_item(NAME(m_timer_top[0]));
- save_item(NAME(m_timer_increment[0]));
- save_item(NAME(m_timer_prescale[0]));
- save_item(NAME(m_timer_prescale_count[0]));
- save_item(NAME(m_timer_top[1]));
- save_item(NAME(m_timer_increment[1]));
- save_item(NAME(m_timer_prescale[1]));
- save_item(NAME(m_timer_prescale_count[1]));
- save_item(NAME(m_timer_top[2]));
- save_item(NAME(m_timer_increment[2]));
- save_item(NAME(m_timer_prescale[2]));
- save_item(NAME(m_timer_prescale_count[2]));
- save_item(NAME(m_timer_top[3]));
- save_item(NAME(m_timer_increment[3]));
- save_item(NAME(m_timer_prescale[3]));
- save_item(NAME(m_timer_prescale_count[3]));
- save_item(NAME(m_timer_top[4]));
- save_item(NAME(m_timer_increment[4]));
- save_item(NAME(m_timer_prescale[4]));
- save_item(NAME(m_timer_prescale_count[4]));
- save_item(NAME(m_timer_top[5]));
- save_item(NAME(m_timer_increment[5]));
- save_item(NAME(m_timer_prescale[5]));
- save_item(NAME(m_timer_prescale_count[5]));
+ save_item(NAME(m_timer_top));
+ save_item(NAME(m_timer_increment));
+ save_item(NAME(m_timer_prescale));
+ save_item(NAME(m_timer_prescale_count));
save_item(NAME(m_addr_mask));
save_item(NAME(m_interrupt_pending));
save_item(NAME(m_elapsed_cycles));
diff --git a/src/devices/cpu/dspp/dspp.cpp b/src/devices/cpu/dspp/dspp.cpp
index 587df951f45..44ced48c56c 100644
--- a/src/devices/cpu/dspp/dspp.cpp
+++ b/src/devices/cpu/dspp/dspp.cpp
@@ -201,22 +201,19 @@ void dspp_device::device_start()
save_item(NAME(m_output_fifo_start));
save_item(NAME(m_output_fifo_count));
- for (uint32_t i = 0; i < NUM_DMA_CHANNELS; ++i)
- {
- save_item(NAME(m_fifo_dma[i].m_current_addr), i);
- save_item(NAME(m_fifo_dma[i].m_current_count), i);
- save_item(NAME(m_fifo_dma[i].m_next_addr), i);
- save_item(NAME(m_fifo_dma[i].m_next_count), i);
- save_item(NAME(m_fifo_dma[i].m_prev_value), i);
- save_item(NAME(m_fifo_dma[i].m_prev_current), i);
- save_item(NAME(m_fifo_dma[i].m_go_forever), i);
- save_item(NAME(m_fifo_dma[i].m_next_valid), i);
- save_item(NAME(m_fifo_dma[i].m_reserved), i);
- save_item(NAME(m_fifo_dma[i].m_fifo), i);
- save_item(NAME(m_fifo_dma[i].m_dma_ptr), i);
- save_item(NAME(m_fifo_dma[i].m_dspi_ptr), i);
- save_item(NAME(m_fifo_dma[i].m_depth), i);
- }
+ save_item(STRUCT_MEMBER(m_fifo_dma, m_current_addr));
+ save_item(STRUCT_MEMBER(m_fifo_dma, m_current_count));
+ save_item(STRUCT_MEMBER(m_fifo_dma, m_next_addr));
+ save_item(STRUCT_MEMBER(m_fifo_dma, m_next_count));
+ save_item(STRUCT_MEMBER(m_fifo_dma, m_prev_value));
+ save_item(STRUCT_MEMBER(m_fifo_dma, m_prev_current));
+ save_item(STRUCT_MEMBER(m_fifo_dma, m_go_forever));
+ save_item(STRUCT_MEMBER(m_fifo_dma, m_next_valid));
+ save_item(STRUCT_MEMBER(m_fifo_dma, m_reserved));
+ save_item(STRUCT_MEMBER(m_fifo_dma, m_fifo));
+ save_item(STRUCT_MEMBER(m_fifo_dma, m_dma_ptr));
+ save_item(STRUCT_MEMBER(m_fifo_dma, m_dspi_ptr));
+ save_item(STRUCT_MEMBER(m_fifo_dma, m_depth));
save_item(NAME(m_last_frame_clock));
save_item(NAME(m_last_osc_count));
diff --git a/src/devices/cpu/hphybrid/hphybrid.cpp b/src/devices/cpu/hphybrid/hphybrid.cpp
index ccd76079081..d68cc8f9ea4 100644
--- a/src/devices/cpu/hphybrid/hphybrid.cpp
+++ b/src/devices/cpu/hphybrid/hphybrid.cpp
@@ -716,10 +716,7 @@ void hp_hybrid_cpu_device::emc_start()
state_add(HPHYBRID_R26, "R26" , m_reg_r26).noshow();
state_add(HPHYBRID_R27, "R27" , m_reg_r27).noshow();
- save_item(NAME(m_reg_ar2[ 0 ]));
- save_item(NAME(m_reg_ar2[ 1 ]));
- save_item(NAME(m_reg_ar2[ 2 ]));
- save_item(NAME(m_reg_ar2[ 3 ]));
+ save_item(NAME(m_reg_ar2));
save_item(NAME(m_reg_se));
save_item(NAME(m_reg_r25));
save_item(NAME(m_reg_r26));
@@ -1749,12 +1746,7 @@ void hp_5061_3001_cpu_device::device_start()
state_add(HPHYBRID_R35, "R35" , m_reg_aec[ 3 ]);
state_add(HPHYBRID_R36, "R36" , m_reg_aec[ 4 ]);
state_add(HPHYBRID_R37, "R37" , m_reg_aec[ 5 ]);
- save_item(NAME(m_reg_aec[ 0 ]));
- save_item(NAME(m_reg_aec[ 1 ]));
- save_item(NAME(m_reg_aec[ 2 ]));
- save_item(NAME(m_reg_aec[ 3 ]));
- save_item(NAME(m_reg_aec[ 4 ]));
- save_item(NAME(m_reg_aec[ 5 ]));
+ save_item(NAME(m_reg_aec));
}
void hp_5061_3001_cpu_device::device_reset()
diff --git a/src/devices/cpu/i386/i386.cpp b/src/devices/cpu/i386/i386.cpp
index 9f6eaafc83c..29bfff89bb5 100644
--- a/src/devices/cpu/i386/i386.cpp
+++ b/src/devices/cpu/i386/i386.cpp
@@ -1949,36 +1949,11 @@ void i386_device::i386_common_init()
zero_state();
save_item(NAME(m_reg.d));
- save_item(NAME(m_sreg[ES].selector));
- save_item(NAME(m_sreg[ES].base));
- save_item(NAME(m_sreg[ES].limit));
- save_item(NAME(m_sreg[ES].flags));
- save_item(NAME(m_sreg[ES].d));
- save_item(NAME(m_sreg[CS].selector));
- save_item(NAME(m_sreg[CS].base));
- save_item(NAME(m_sreg[CS].limit));
- save_item(NAME(m_sreg[CS].flags));
- save_item(NAME(m_sreg[CS].d));
- save_item(NAME(m_sreg[SS].selector));
- save_item(NAME(m_sreg[SS].base));
- save_item(NAME(m_sreg[SS].limit));
- save_item(NAME(m_sreg[SS].flags));
- save_item(NAME(m_sreg[SS].d));
- save_item(NAME(m_sreg[DS].selector));
- save_item(NAME(m_sreg[DS].base));
- save_item(NAME(m_sreg[DS].limit));
- save_item(NAME(m_sreg[DS].flags));
- save_item(NAME(m_sreg[DS].d));
- save_item(NAME(m_sreg[FS].selector));
- save_item(NAME(m_sreg[FS].base));
- save_item(NAME(m_sreg[FS].limit));
- save_item(NAME(m_sreg[FS].flags));
- save_item(NAME(m_sreg[FS].d));
- save_item(NAME(m_sreg[GS].selector));
- save_item(NAME(m_sreg[GS].base));
- save_item(NAME(m_sreg[GS].limit));
- save_item(NAME(m_sreg[GS].flags));
- save_item(NAME(m_sreg[GS].d));
+ save_item(STRUCT_MEMBER(m_sreg, selector));
+ save_item(STRUCT_MEMBER(m_sreg, base));
+ save_item(STRUCT_MEMBER(m_sreg, limit));
+ save_item(STRUCT_MEMBER(m_sreg, flags));
+ save_item(STRUCT_MEMBER(m_sreg, d));
save_item(NAME(m_eip));
save_item(NAME(m_prev_eip));
diff --git a/src/devices/cpu/i8089/i8089_channel.cpp b/src/devices/cpu/i8089/i8089_channel.cpp
index 02bb12daa8c..2da1ac9d076 100644
--- a/src/devices/cpu/i8089/i8089_channel.cpp
+++ b/src/devices/cpu/i8089/i8089_channel.cpp
@@ -83,11 +83,8 @@ void i8089_channel_device::device_start()
save_item(NAME(m_drq));
save_item(NAME(m_prio));
- for (int i = 0; i < ARRAY_LENGTH(m_r); i++)
- {
- save_item(NAME(m_r[i].w), i);
- save_item(NAME(m_r[i].t), i);
- }
+ save_item(STRUCT_MEMBER(m_r, w));
+ save_item(STRUCT_MEMBER(m_r, t));
}
//-------------------------------------------------