summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2010-06-09 16:20:50 +0000
committer Aaron Giles <aaron@aarongiles.com>2010-06-09 16:20:50 +0000
commiteba2c140607c146d368e48539bd11e87fdfbeed6 (patch)
treeac3fa335cf9f364420c435ee2eeaf44173dab0e7 /src/emu
parentebdc4525f96f465a61acb76c728de48b3a89800c (diff)
Change cpu execute function to just use the icount stuffed by
the scheduler, rather than manging an incoming cycle count. It was confusing to have multiple sources of cycle counts.
Diffstat (limited to 'src/emu')
-rw-r--r--src/emu/cpu/adsp2100/adsp2100.c5
-rw-r--r--src/emu/cpu/alph8201/alph8201.c15
-rw-r--r--src/emu/cpu/am29000/am29000.c3
-rw-r--r--src/emu/cpu/apexc/apexc.c4
-rw-r--r--src/emu/cpu/arm/arm.c3
-rw-r--r--src/emu/cpu/arm7/arm7exec.c3
-rw-r--r--src/emu/cpu/asap/asap.c2
-rw-r--r--src/emu/cpu/avr8/avr8.c4
-rw-r--r--src/emu/cpu/ccpu/ccpu.c9
-rw-r--r--src/emu/cpu/cdp1802/cdp1802.c4
-rw-r--r--src/emu/cpu/cop400/cop400.c4
-rw-r--r--src/emu/cpu/cp1610/cp1610.c4
-rw-r--r--src/emu/cpu/cubeqcpu/cubeqcpu.c12
-rw-r--r--src/emu/cpu/dsp32/dsp32.c10
-rw-r--r--src/emu/cpu/dsp56k/dsp56k.c13
-rw-r--r--src/emu/cpu/e132xs/e132xs.c4
-rw-r--r--src/emu/cpu/esrip/esrip.c4
-rw-r--r--src/emu/cpu/f8/f8.c3
-rw-r--r--src/emu/cpu/g65816/g65816.c2
-rw-r--r--src/emu/cpu/h6280/h6280.c4
-rw-r--r--src/emu/cpu/h83002/h8ops.h4
-rw-r--r--src/emu/cpu/hd6309/hd6309.c4
-rw-r--r--src/emu/cpu/i386/i386.c7
-rw-r--r--src/emu/cpu/i4004/i4004.c5
-rw-r--r--src/emu/cpu/i8008/i8008.c4
-rw-r--r--src/emu/cpu/i8085/i8085.c4
-rw-r--r--src/emu/cpu/i86/i286.c8
-rw-r--r--src/emu/cpu/i86/i86.c11
-rw-r--r--src/emu/cpu/i860/i860dec.c8
-rw-r--r--src/emu/cpu/i960/i960.c2
-rw-r--r--src/emu/cpu/jaguar/jaguar.c12
-rw-r--r--src/emu/cpu/konami/konami.c3
-rw-r--r--src/emu/cpu/lh5801/lh5801.c4
-rw-r--r--src/emu/cpu/lr35902/lr35902.c4
-rw-r--r--src/emu/cpu/m37710/m37710.c2
-rw-r--r--src/emu/cpu/m6502/m4510.c4
-rw-r--r--src/emu/cpu/m6502/m6502.c12
-rw-r--r--src/emu/cpu/m6502/m6509.c4
-rw-r--r--src/emu/cpu/m6502/m65ce02.c4
-rw-r--r--src/emu/cpu/m6800/m6800.c12
-rw-r--r--src/emu/cpu/m68000/m68kcpu.c12
-rw-r--r--src/emu/cpu/m68000/m68kcpu.h4
-rw-r--r--src/emu/cpu/m6805/m6805.c3
-rw-r--r--src/emu/cpu/m6809/m6809.c4
-rw-r--r--src/emu/cpu/mb86233/mb86233.c4
-rw-r--r--src/emu/cpu/mb88xx/mb88xx.c4
-rw-r--r--src/emu/cpu/mc68hc11/mc68hc11.c4
-rw-r--r--src/emu/cpu/mcs48/mcs48.c4
-rw-r--r--src/emu/cpu/mcs51/mcs51.c12
-rw-r--r--src/emu/cpu/minx/minx.c3
-rw-r--r--src/emu/cpu/mips/mips3.c2
-rw-r--r--src/emu/cpu/mips/mips3drc.c4
-rw-r--r--src/emu/cpu/mips/psx.c4
-rw-r--r--src/emu/cpu/mips/r3000.c2
-rw-r--r--src/emu/cpu/mn10200/mn10200.c4
-rw-r--r--src/emu/cpu/nec/nec.c3
-rw-r--r--src/emu/cpu/pdp1/pdp1.c4
-rw-r--r--src/emu/cpu/pdp1/tx0.c8
-rw-r--r--src/emu/cpu/pic16c5x/pic16c5x.c4
-rw-r--r--src/emu/cpu/pic16c62x/pic16c62x.c4
-rw-r--r--src/emu/cpu/powerpc/ppc403.c3
-rw-r--r--src/emu/cpu/powerpc/ppc602.c8
-rw-r--r--src/emu/cpu/powerpc/ppc603.c7
-rw-r--r--src/emu/cpu/powerpc/ppcdrc.c4
-rw-r--r--src/emu/cpu/rsp/rsp.c4
-rw-r--r--src/emu/cpu/rsp/rspdrc.c4
-rw-r--r--src/emu/cpu/s2650/s2650.c7
-rw-r--r--src/emu/cpu/saturn/saturn.c4
-rw-r--r--src/emu/cpu/sc61860/sc61860.c4
-rw-r--r--src/emu/cpu/scmp/scmp.c4
-rw-r--r--src/emu/cpu/se3208/se3208.c3
-rw-r--r--src/emu/cpu/sh2/sh2.c9
-rw-r--r--src/emu/cpu/sh2/sh2drc.c4
-rw-r--r--src/emu/cpu/sh4/sh4.c8
-rw-r--r--src/emu/cpu/sharc/sharc.c7
-rw-r--r--src/emu/cpu/sm8500/sm8500.c4
-rw-r--r--src/emu/cpu/spc700/spc700.c7
-rw-r--r--src/emu/cpu/ssem/ssem.c4
-rw-r--r--src/emu/cpu/ssp1601/ssp1601.c3
-rw-r--r--src/emu/cpu/superfx/superfx.c4
-rw-r--r--src/emu/cpu/t11/t11.c4
-rw-r--r--src/emu/cpu/tlcs90/tlcs90.c4
-rw-r--r--src/emu/cpu/tlcs900/tlcs900.c4
-rw-r--r--src/emu/cpu/tms0980/tms0980.c4
-rw-r--r--src/emu/cpu/tms32010/tms32010.c3
-rw-r--r--src/emu/cpu/tms32025/tms32025.c3
-rw-r--r--src/emu/cpu/tms32031/tms32031.c8
-rw-r--r--src/emu/cpu/tms32051/tms32051.c3
-rw-r--r--src/emu/cpu/tms34010/tms34010.c10
-rw-r--r--src/emu/cpu/tms57002/tms57002.c10
-rw-r--r--src/emu/cpu/tms7000/tms7000.c8
-rw-r--r--src/emu/cpu/tms9900/99xxcore.h3
-rw-r--r--src/emu/cpu/unsp/unsp.c4
-rw-r--r--src/emu/cpu/upd7810/upd7810.c3
-rw-r--r--src/emu/cpu/v30mz/v30mz.c4
-rw-r--r--src/emu/cpu/v60/v60.c3
-rw-r--r--src/emu/cpu/v810/v810.c2
-rw-r--r--src/emu/cpu/z180/z180.c3
-rw-r--r--src/emu/cpu/z8/z8.c4
-rw-r--r--src/emu/cpu/z80/z80.c8
-rw-r--r--src/emu/cpu/z8000/z8000.c4
-rw-r--r--src/emu/devcpu.c4
-rw-r--r--src/emu/devcpu.h6
-rw-r--r--src/emu/diexec.h4
-rw-r--r--src/emu/schedule.c6
105 files changed, 101 insertions, 443 deletions
diff --git a/src/emu/cpu/adsp2100/adsp2100.c b/src/emu/cpu/adsp2100/adsp2100.c
index f361362e57f..80bcff65db5 100644
--- a/src/emu/cpu/adsp2100/adsp2100.c
+++ b/src/emu/cpu/adsp2100/adsp2100.c
@@ -1009,9 +1009,6 @@ static CPU_EXECUTE( adsp21xx )
check_irqs(adsp);
- /* count cycles and interrupt cycles */
- adsp->icount = cycles;
-
do
{
UINT32 temp;
@@ -1740,8 +1737,6 @@ static CPU_EXECUTE( adsp21xx )
adsp->icount--;
} while (adsp->icount > 0);
-
- return cycles - adsp->icount;
}
diff --git a/src/emu/cpu/alph8201/alph8201.c b/src/emu/cpu/alph8201/alph8201.c
index 6195c78e564..f15bd07604c 100644
--- a/src/emu/cpu/alph8201/alph8201.c
+++ b/src/emu/cpu/alph8201/alph8201.c
@@ -729,17 +729,18 @@ static CPU_EXIT( alpha8201 )
* Execute cycles CPU cycles. Return number of cycles really executed
****************************************************************************/
-static int alpha8xxx_execute(running_device *device,const s_opcode *op_map,int cycles)
+static void alpha8xxx_execute(running_device *device,const s_opcode *op_map)
{
alpha8201_state *cpustate = get_safe_token(device);
unsigned opcode;
UINT8 pcptr;
- cpustate->icount = cycles;
-
#if HANDLE_HALT_LINE
if(cpustate->halt)
- return cycles;
+ {
+ cpustate->icount = 0;
+ return;
+ }
#endif
/* setup address bank & fall safe */
@@ -806,13 +807,11 @@ mame_printf_debug("alpha8201: cpustate->PC = %03x, opcode = %02x\n", cpustate-
(*(op_map[opcode].function))(cpustate);
cpustate->icount -= cpustate->inst_cycles;
} while (cpustate->icount>0);
-
- return cycles - cpustate->icount;
}
-static CPU_EXECUTE( alpha8201 ) { return alpha8xxx_execute(device,opcode_8201,cycles); }
+static CPU_EXECUTE( alpha8201 ) { alpha8xxx_execute(device,opcode_8201); }
-static CPU_EXECUTE( ALPHA8301 ) { return alpha8xxx_execute(device,opcode_8301,cycles); }
+static CPU_EXECUTE( ALPHA8301 ) { alpha8xxx_execute(device,opcode_8301); }
/****************************************************************************
* Set IRQ line state
diff --git a/src/emu/cpu/am29000/am29000.c b/src/emu/cpu/am29000/am29000.c
index 3620d68ad65..62148d97ff3 100644
--- a/src/emu/cpu/am29000/am29000.c
+++ b/src/emu/cpu/am29000/am29000.c
@@ -386,7 +386,6 @@ static CPU_EXECUTE( am29000 )
{
am29000_state *am29000 = get_safe_token(device);
UINT32 call_debugger = (device->machine->debug_flags & DEBUG_FLAG_ENABLED) != 0;
- am29000->icount = cycles;
external_irq_check(am29000);
@@ -448,8 +447,6 @@ static CPU_EXECUTE( am29000 )
am29000->exec_pc = am29000->pc;
am29000->pc = am29000->next_pc;
} while (--am29000->icount > 0);
-
- return cycles - am29000->icount;
}
static void set_irq_line(am29000_state *am29000, int line, int state)
diff --git a/src/emu/cpu/apexc/apexc.c b/src/emu/cpu/apexc/apexc.c
index f03b747242b..9f86db68b1a 100644
--- a/src/emu/cpu/apexc/apexc.c
+++ b/src/emu/cpu/apexc/apexc.c
@@ -834,8 +834,6 @@ static CPU_EXECUTE( apexc )
{
apexc_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
debugger_instruction_hook(device, cpustate->pc);
@@ -847,8 +845,6 @@ static CPU_EXECUTE( apexc )
DELAY(cpustate->icount); /* burn cycles once for all */
}
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
static CPU_SET_INFO( apexc )
diff --git a/src/emu/cpu/arm/arm.c b/src/emu/cpu/arm/arm.c
index 84f3c2832be..c5a96ce00fc 100644
--- a/src/emu/cpu/arm/arm.c
+++ b/src/emu/cpu/arm/arm.c
@@ -332,7 +332,6 @@ static CPU_EXECUTE( arm )
UINT32 insn;
ARM_REGS *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
do
{
debugger_instruction_hook(device, R15 & ADDRESS_MASK);
@@ -436,8 +435,6 @@ static CPU_EXECUTE( arm )
arm_check_irq_state(cpustate);
} while( cpustate->icount > 0 );
-
- return cycles - cpustate->icount;
} /* arm_execute */
diff --git a/src/emu/cpu/arm7/arm7exec.c b/src/emu/cpu/arm7/arm7exec.c
index 61f0026f6c7..c13076b05a9 100644
--- a/src/emu/cpu/arm7/arm7exec.c
+++ b/src/emu/cpu/arm7/arm7exec.c
@@ -45,7 +45,6 @@
UINT32 insn;
arm_state *cpustate = get_safe_token(device);
- ARM7_ICOUNT = cycles;
do
{
debugger_instruction_hook(cpustate->device, R15);
@@ -1603,6 +1602,4 @@
/* All instructions remove 3 cycles.. Others taking less / more will have adjusted this # prior to here */
ARM7_ICOUNT -= 3;
} while (ARM7_ICOUNT > 0);
-
- return cycles - ARM7_ICOUNT;
}
diff --git a/src/emu/cpu/asap/asap.c b/src/emu/cpu/asap/asap.c
index 5cd094703b4..b52d6dd3baf 100644
--- a/src/emu/cpu/asap/asap.c
+++ b/src/emu/cpu/asap/asap.c
@@ -520,7 +520,6 @@ static CPU_EXECUTE( asap )
asap_state *asap = get_safe_token(device);
/* check for IRQs */
- asap->icount = cycles;
check_irqs(asap);
/* core execution loop */
@@ -572,7 +571,6 @@ static CPU_EXECUTE( asap )
} while (asap->icount > 0);
}
- return cycles - asap->icount;
}
diff --git a/src/emu/cpu/avr8/avr8.c b/src/emu/cpu/avr8/avr8.c
index f06a9ab389c..8ffd49e1b4c 100644
--- a/src/emu/cpu/avr8/avr8.c
+++ b/src/emu/cpu/avr8/avr8.c
@@ -222,8 +222,6 @@ static CPU_EXECUTE( avr8 )
//UINT16 pr = 0;
avr8_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
while (cpustate->icount > 0)
{
cpustate->pc &= 0x0fff;
@@ -991,8 +989,6 @@ static CPU_EXECUTE( avr8 )
cpustate->icount -= opcycles;
}
-
- return cycles - cpustate->icount;
}
/*****************************************************************************/
diff --git a/src/emu/cpu/ccpu/ccpu.c b/src/emu/cpu/ccpu/ccpu.c
index 3a9c43385dd..b95de31381c 100644
--- a/src/emu/cpu/ccpu/ccpu.c
+++ b/src/emu/cpu/ccpu/ccpu.c
@@ -196,9 +196,10 @@ static CPU_EXECUTE( ccpu )
ccpu_state *cpustate = get_safe_token(device);
if (cpustate->waiting)
- return cycles;
-
- cpustate->icount = cycles;
+ {
+ cpustate->icount = 0;
+ return;
+ }
do
{
@@ -683,8 +684,6 @@ static CPU_EXECUTE( ccpu )
break;
}
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/cdp1802/cdp1802.c b/src/emu/cpu/cdp1802/cdp1802.c
index da4c9d8b311..ec5b8cf1853 100644
--- a/src/emu/cpu/cdp1802/cdp1802.c
+++ b/src/emu/cpu/cdp1802/cdp1802.c
@@ -829,8 +829,6 @@ static CPU_EXECUTE( cdp1802 )
{
cdp1802_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
cpustate->prevmode = cpustate->mode;
cpustate->mode = cpustate->intf->mode_r(device);
@@ -899,8 +897,6 @@ static CPU_EXECUTE( cdp1802 )
cdp1802_output_state_code(device);
}
while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
static CPU_RESET( cdp1802 )
diff --git a/src/emu/cpu/cop400/cop400.c b/src/emu/cpu/cop400/cop400.c
index defc024f648..5506053aff2 100644
--- a/src/emu/cpu/cop400/cop400.c
+++ b/src/emu/cpu/cop400/cop400.c
@@ -1128,8 +1128,6 @@ static CPU_EXECUTE( cop400 )
UINT8 opcode;
- cpustate->icount = cycles;
-
do
{
cpustate->prevpc = PC;
@@ -1231,8 +1229,6 @@ static CPU_EXECUTE( cop400 )
}
}
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
/***************************************************************************
diff --git a/src/emu/cpu/cp1610/cp1610.c b/src/emu/cpu/cp1610/cp1610.c
index 4a9708c9496..220d6d51e1b 100644
--- a/src/emu/cpu/cp1610/cp1610.c
+++ b/src/emu/cpu/cp1610/cp1610.c
@@ -2176,8 +2176,6 @@ static CPU_EXECUTE( cp1610 )
cp1610_state *cpustate = get_safe_token(device);
UINT16 opcode;
- cpustate->icount = cycles;
-
do
{
debugger_instruction_hook(device, cpustate->r[7]);
@@ -3381,8 +3379,6 @@ static CPU_EXECUTE( cp1610 )
}
} while( cpustate->icount > 0 );
-
- return cycles - cpustate->icount;
}
static CPU_INIT( cp1610 )
diff --git a/src/emu/cpu/cubeqcpu/cubeqcpu.c b/src/emu/cpu/cubeqcpu/cubeqcpu.c
index 52c56d1c30e..f6d8f9a278c 100644
--- a/src/emu/cpu/cubeqcpu/cubeqcpu.c
+++ b/src/emu/cpu/cubeqcpu/cubeqcpu.c
@@ -502,8 +502,6 @@ static CPU_EXECUTE( cquestsnd )
cquestsnd_state *cpustate = get_safe_token_snd(device);
int calldebugger = ((device->machine->debug_flags & DEBUG_FLAG_ENABLED) != 0);
- cpustate->icount = cycles;
-
/* Core execution loop */
do
{
@@ -697,8 +695,6 @@ static CPU_EXECUTE( cquestsnd )
cpustate->icount--;
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
@@ -767,8 +763,6 @@ static CPU_EXECUTE( cquestrot )
cquestlin_state *lincpustate = get_safe_token_lin(cpustate->lindevice);
int calldebugger = ((device->machine->debug_flags & DEBUG_FLAG_ENABLED) != 0);
- cpustate->icount = cycles;
-
/* Core execution loop */
do
{
@@ -1081,8 +1075,6 @@ static CPU_EXECUTE( cquestrot )
cpustate->clkcnt++;
cpustate->icount--;
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
@@ -1198,8 +1190,6 @@ static CPU_EXECUTE( cquestlin )
ptr_ram = &cpustate->ptr_ram[0x100];
}
- cpustate->icount = cycles;
-
/* Core execution loop */
do
{
@@ -1550,8 +1540,6 @@ static CPU_EXECUTE( cquestlin )
cpustate->icount--;
cpustate->clkcnt++;
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/dsp32/dsp32.c b/src/emu/cpu/dsp32/dsp32.c
index 884f9ccd73d..215e51af6d1 100644
--- a/src/emu/cpu/dsp32/dsp32.c
+++ b/src/emu/cpu/dsp32/dsp32.c
@@ -415,10 +415,10 @@ static CPU_EXECUTE( dsp32c )
/* skip if halted */
if ((cpustate->pcr & PCR_RESET) == 0)
- return cycles;
-
- /* count cycles and interrupt cycles */
- cpustate->icount = cycles;
+ {
+ cpustate->icount = 0;
+ return;
+ }
/* update buffered accumulator values */
cpustate->abufcycle[0] += cpustate->icount;
@@ -437,8 +437,6 @@ static CPU_EXECUTE( dsp32c )
cpustate->abufcycle[1] -= cpustate->icount;
cpustate->abufcycle[2] -= cpustate->icount;
cpustate->abufcycle[3] -= cpustate->icount;
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/dsp56k/dsp56k.c b/src/emu/cpu/dsp56k/dsp56k.c
index 909f8b08a43..d5b6eb7e30f 100644
--- a/src/emu/cpu/dsp56k/dsp56k.c
+++ b/src/emu/cpu/dsp56k/dsp56k.c
@@ -319,13 +319,18 @@ static CPU_EXECUTE( dsp56k )
/* If reset line is asserted, do nothing */
if (cpustate->reset_state)
- return cycles;
+ {
+ cpustate->icount = 0;
+ return;
+ }
/* HACK - if you're in bootstrap mode, simply pretend you ate up all your cycles waiting for data. */
if (cpustate->bootstrap_mode != BOOTSTRAP_OFF)
- return cycles;
+ {
+ cpustate->icount = 0;
+ return;
+ }
- cpustate->icount = cycles;
cpustate->icount -= cpustate->interrupt_cycles;
cpustate->interrupt_cycles = 0;
@@ -337,8 +342,6 @@ static CPU_EXECUTE( dsp56k )
cpustate->icount -= cpustate->interrupt_cycles;
cpustate->interrupt_cycles = 0;
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/e132xs/e132xs.c b/src/emu/cpu/e132xs/e132xs.c
index 90f54319566..5e647f88737 100644
--- a/src/emu/cpu/e132xs/e132xs.c
+++ b/src/emu/cpu/e132xs/e132xs.c
@@ -4659,8 +4659,6 @@ static CPU_EXECUTE( hyperstone )
{
hyperstone_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
if (cpustate->intblock < 0)
cpustate->intblock = 0;
check_interrupts(cpustate);
@@ -4695,8 +4693,6 @@ static CPU_EXECUTE( hyperstone )
check_interrupts(cpustate);
} while( cpustate->icount > 0 );
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/esrip/esrip.c b/src/emu/cpu/esrip/esrip.c
index fc207028c80..18e7de7f1ab 100644
--- a/src/emu/cpu/esrip/esrip.c
+++ b/src/emu/cpu/esrip/esrip.c
@@ -1666,8 +1666,6 @@ static CPU_EXECUTE( esrip )
int calldebugger = (device->machine->debug_flags & DEBUG_FLAG_ENABLED) != 0;
UINT8 status;
- cpustate->icount = cycles;
-
/* I think we can get away with placing this outside of the loop */
status = cpustate->status_in(device->machine);
@@ -1860,8 +1858,6 @@ static CPU_EXECUTE( esrip )
cpustate->icount--;
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/f8/f8.c b/src/emu/cpu/f8/f8.c
index 99ff03569a7..11953684229 100644
--- a/src/emu/cpu/f8/f8.c
+++ b/src/emu/cpu/f8/f8.c
@@ -1586,7 +1586,6 @@ static CPU_RESET( f8 )
static CPU_EXECUTE( f8 )
{
f8_Regs *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
do
{
@@ -1890,8 +1889,6 @@ static CPU_EXECUTE( f8 )
}
} while( cpustate->icount > 0 );
-
- return cycles - cpustate->icount;
}
CPU_DISASSEMBLE( f8 );
diff --git a/src/emu/cpu/g65816/g65816.c b/src/emu/cpu/g65816/g65816.c
index 6a3f7e9cbaf..75dadb40e9d 100644
--- a/src/emu/cpu/g65816/g65816.c
+++ b/src/emu/cpu/g65816/g65816.c
@@ -249,7 +249,7 @@ static CPU_EXECUTE( g65816 )
{
g65816i_cpu_struct *cpustate = get_safe_token(device);
- return FTABLE_EXECUTE(cpustate, cycles);
+ cpustate->ICount = FTABLE_EXECUTE(cpustate, cpustate->ICount);
}
diff --git a/src/emu/cpu/h6280/h6280.c b/src/emu/cpu/h6280/h6280.c
index c8cbb119bee..2df7d213f32 100644
--- a/src/emu/cpu/h6280/h6280.c
+++ b/src/emu/cpu/h6280/h6280.c
@@ -216,8 +216,6 @@ static CPU_EXECUTE( h6280 )
int in;
h6280_Regs* cpustate = get_safe_token(device);
- cpustate->ICount = cycles;
-
if ( cpustate->irq_pending == 2 ) {
cpustate->irq_pending--;
}
@@ -258,8 +256,6 @@ static CPU_EXECUTE( h6280 )
}
}
} while (cpustate->ICount > 0);
-
- return cycles - cpustate->ICount;
}
/*****************************************************************************/
diff --git a/src/emu/cpu/h83002/h8ops.h b/src/emu/cpu/h83002/h8ops.h
index 8ed63822e38..eccd7ce3ab1 100644
--- a/src/emu/cpu/h83002/h8ops.h
+++ b/src/emu/cpu/h83002/h8ops.h
@@ -110,8 +110,6 @@ static CPU_EXECUTE(h8)
h83xx_state *h8 = get_safe_token(device);
UINT16 opcode=0;
- h8->cyccnt = cycles;
-
h8_check_irqs(h8);
while ((h8->cyccnt > 0) && (!h8->h8err))
@@ -224,8 +222,6 @@ static CPU_EXECUTE(h8)
{
fatalerror("H8/3xx: Unknown opcode (PC=%x) %x", h8->ppc, opcode);
}
-
- return cycles - h8->cyccnt;
}
static void h8_group0(h83xx_state *h8, UINT16 opcode)
diff --git a/src/emu/cpu/hd6309/hd6309.c b/src/emu/cpu/hd6309/hd6309.c
index 146ab5ac3f5..36310cc5cd0 100644
--- a/src/emu/cpu/hd6309/hd6309.c
+++ b/src/emu/cpu/hd6309/hd6309.c
@@ -638,7 +638,7 @@ static CPU_EXECUTE( hd6309 ) /* NS 970908 */
{
m68_state_t *m68_state = get_safe_token(device);
- m68_state->icount = cycles - m68_state->extra_cycles;
+ m68_state->icount -= m68_state->extra_cycles;
m68_state->extra_cycles = 0;
check_irq_lines(m68_state);
@@ -929,8 +929,6 @@ static CPU_EXECUTE( hd6309 ) /* NS 970908 */
m68_state->icount -= m68_state->extra_cycles;
m68_state->extra_cycles = 0;
}
-
- return cycles - m68_state->icount; /* NS 970908 */
}
INLINE void fetch_effective_address( m68_state_t *m68_state )
diff --git a/src/emu/cpu/i386/i386.c b/src/emu/cpu/i386/i386.c
index d20d592b6bc..ecd11ce4bc2 100644
--- a/src/emu/cpu/i386/i386.c
+++ b/src/emu/cpu/i386/i386.c
@@ -717,14 +717,15 @@ static CPU_EXECUTE( i386 )
{
i386_state *cpustate = get_safe_token(device);
- cpustate->cycles = cycles;
+ int cycles = cpustate->cycles;
cpustate->base_cycles = cycles;
CHANGE_PC(cpustate,cpustate->eip);
if (cpustate->halted)
{
cpustate->tsc += cycles;
- return cycles;
+ cpustate->cycles = 0;
+ return;
}
while( cpustate->cycles > 0 )
@@ -741,8 +742,6 @@ static CPU_EXECUTE( i386 )
I386OP(decode_opcode)(cpustate);
}
cpustate->tsc += (cycles - cpustate->cycles);
-
- return cycles - cpustate->cycles;
}
/*************************************************************************/
diff --git a/src/emu/cpu/i4004/i4004.c b/src/emu/cpu/i4004/i4004.c
index 1f3b201d29c..817db1df935 100644
--- a/src/emu/cpu/i4004/i4004.c
+++ b/src/emu/cpu/i4004/i4004.c
@@ -426,17 +426,12 @@ static CPU_EXECUTE( i4004 )
{
i4004_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
-
do
{
debugger_instruction_hook(device, GET_PC.d);
execute_one(cpustate, ROP(cpustate));
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
/***************************************************************************
diff --git a/src/emu/cpu/i8008/i8008.c b/src/emu/cpu/i8008/i8008.c
index dfa53934eae..cee78e7f855 100644
--- a/src/emu/cpu/i8008/i8008.c
+++ b/src/emu/cpu/i8008/i8008.c
@@ -484,8 +484,6 @@ static CPU_EXECUTE( i8008 )
{
i8008_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
if (cpustate->irq_state != CLEAR_LINE) {
@@ -495,8 +493,6 @@ static CPU_EXECUTE( i8008 )
execute_one(cpustate, ROP(cpustate));
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
/***************************************************************************
diff --git a/src/emu/cpu/i8085/i8085.c b/src/emu/cpu/i8085/i8085.c
index 3fd37669ca1..a93d09bf394 100644
--- a/src/emu/cpu/i8085/i8085.c
+++ b/src/emu/cpu/i8085/i8085.c
@@ -914,8 +914,6 @@ static CPU_EXECUTE( i808x )
{
i8085_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
/* check for TRAPs before diving in (can't do others because of after_ei) */
if (cpustate->trap_pending || cpustate->after_ei == 0)
check_for_interrupts(cpustate);
@@ -933,8 +931,6 @@ static CPU_EXECUTE( i808x )
execute_one(cpustate, ROP(cpustate));
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/i86/i286.c b/src/emu/cpu/i86/i286.c
index 05c40ce5fbe..acf8aaaccba 100644
--- a/src/emu/cpu/i86/i286.c
+++ b/src/emu/cpu/i86/i286.c
@@ -214,14 +214,16 @@ static CPU_EXECUTE( i80286 )
i80286_state *cpustate = get_safe_token(device);
if (cpustate->halted)
- return cycles;
+ {
+ cpustate->icount = 0;
+ return;
+ }
/* copy over the cycle counts if they're not correct */
if (timing.id != 80286)
timing = i80286_cycles;
/* adjust for any interrupts that came in */
- cpustate->icount = cycles;
cpustate->icount -= cpustate->extra_cycles;
cpustate->extra_cycles = 0;
@@ -240,8 +242,6 @@ static CPU_EXECUTE( i80286 )
/* adjust for any interrupts that came in */
cpustate->icount -= cpustate->extra_cycles;
cpustate->extra_cycles = 0;
-
- return cycles - cpustate->icount;
}
extern int i386_dasm_one(char *buffer, UINT32 eip, const UINT8 *oprom, int mode);
diff --git a/src/emu/cpu/i86/i86.c b/src/emu/cpu/i86/i86.c
index 2e0d8703196..47faeea7820 100644
--- a/src/emu/cpu/i86/i86.c
+++ b/src/emu/cpu/i86/i86.c
@@ -283,14 +283,16 @@ static CPU_EXECUTE( i8086 )
if (cpustate->halted)
- return cycles;
+ {
+ cpustate->icount = 0;
+ return;
+ }
/* copy over the cycle counts if they're not correct */
if (timing.id != 8086)
timing = i8086_cycles;
/* adjust for any interrupts that came in */
- cpustate->icount = cycles;
cpustate->icount -= cpustate->extra_cycles;
cpustate->extra_cycles = 0;
@@ -310,8 +312,6 @@ static CPU_EXECUTE( i8086 )
/* adjust for any interrupts that came in */
cpustate->icount -= cpustate->extra_cycles;
cpustate->extra_cycles = 0;
-
- return cycles - cpustate->icount;
}
@@ -345,7 +345,6 @@ static CPU_EXECUTE( i80186 )
timing = i80186_cycles;
/* adjust for any interrupts that came in */
- cpustate->icount = cycles;
cpustate->icount -= cpustate->extra_cycles;
cpustate->extra_cycles = 0;
@@ -364,8 +363,6 @@ static CPU_EXECUTE( i80186 )
/* adjust for any interrupts that came in */
cpustate->icount -= cpustate->extra_cycles;
cpustate->extra_cycles = 0;
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/i860/i860dec.c b/src/emu/cpu/i860/i860dec.c
index 0e2406651d2..8efb7115b49 100644
--- a/src/emu/cpu/i860/i860dec.c
+++ b/src/emu/cpu/i860/i860dec.c
@@ -4448,11 +4448,13 @@ static CPU_EXECUTE( i860 )
if (cpustate->pin_reset)
reset_i860 (cpustate);
if (cpustate->pin_bus_hold)
- return cycles;
+ {
+ cpustate->icount = 0;
+ return;
+ }
cpustate->exiting_readmem = 0;
cpustate->exiting_ifetch = 0;
- cpustate->icount = cycles;
/* Decode and execute loop. */
while (cpustate->icount > 0)
@@ -4522,8 +4524,6 @@ static CPU_EXECUTE( i860 )
/*if (cpustate->single_stepping)
debugger (cpustate); */
}
-
- return cycles - cpustate->icount;
}
/*=================================================================*/
diff --git a/src/emu/cpu/i960/i960.c b/src/emu/cpu/i960/i960.c
index 3b67664f519..24abf28d74f 100644
--- a/src/emu/cpu/i960/i960.c
+++ b/src/emu/cpu/i960/i960.c
@@ -1958,7 +1958,6 @@ static CPU_EXECUTE( i960 )
i960_state_t *i960 = get_safe_token(device);
UINT32 opcode;
- i960->icount = cycles;
check_irqs(i960);
while(i960->icount > 0) {
i960->PIP = i960->IP;
@@ -1971,7 +1970,6 @@ static CPU_EXECUTE( i960 )
execute_op(i960, opcode);
}
- return cycles - i960->icount;
}
static void set_irq_line(i960_state_t *i960, int irqline, int state)
diff --git a/src/emu/cpu/jaguar/jaguar.c b/src/emu/cpu/jaguar/jaguar.c
index 97502b73bb1..a841c790c8f 100644
--- a/src/emu/cpu/jaguar/jaguar.c
+++ b/src/emu/cpu/jaguar/jaguar.c
@@ -482,7 +482,8 @@ static CPU_EXECUTE( jaguargpu )
if (!(jaguar->ctrl[G_CTRL] & 1))
{
cpu_set_input_line(device, INPUT_LINE_HALT, ASSERT_LINE);
- return cycles;
+ jaguar->icount = 0;
+ return;
}
/* check for IRQs */
@@ -490,7 +491,6 @@ static CPU_EXECUTE( jaguargpu )
/* count cycles and interrupt cycles */
jaguar->bankswitch_icount = -1000;
- jaguar->icount = cycles;
/* core execution loop */
do
@@ -511,8 +511,6 @@ static CPU_EXECUTE( jaguargpu )
jaguar->icount--;
} while (jaguar->icount > 0 || jaguar->icount == jaguar->bankswitch_icount);
-
- return cycles - jaguar->icount;
}
static CPU_EXECUTE( jaguardsp )
@@ -523,7 +521,8 @@ static CPU_EXECUTE( jaguardsp )
if (!(jaguar->ctrl[G_CTRL] & 1))
{
cpu_set_input_line(device, INPUT_LINE_HALT, ASSERT_LINE);
- return cycles;
+ jaguar->icount = 0;
+ return;
}
/* check for IRQs */
@@ -531,7 +530,6 @@ static CPU_EXECUTE( jaguardsp )
/* count cycles and interrupt cycles */
jaguar->bankswitch_icount = -1000;
- jaguar->icount = cycles;
/* core execution loop */
do
@@ -552,8 +550,6 @@ static CPU_EXECUTE( jaguardsp )
jaguar->icount--;
} while (jaguar->icount > 0 || jaguar->icount == jaguar->bankswitch_icount);
-
- return cycles - jaguar->icount;
}
diff --git a/src/emu/cpu/konami/konami.c b/src/emu/cpu/konami/konami.c
index a6791144c17..592d0a566bb 100644
--- a/src/emu/cpu/konami/konami.c
+++ b/src/emu/cpu/konami/konami.c
@@ -473,7 +473,6 @@ static CPU_EXECUTE( konami )
{
konami_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
check_irq_lines(cpustate);
if( cpustate->int_state & (KONAMI_CWAI | KONAMI_SYNC) )
@@ -499,8 +498,6 @@ static CPU_EXECUTE( konami )
} while( cpustate->icount > 0 );
}
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/lh5801/lh5801.c b/src/emu/cpu/lh5801/lh5801.c
index 2f6417ee70a..a50b642196a 100644
--- a/src/emu/cpu/lh5801/lh5801.c
+++ b/src/emu/cpu/lh5801/lh5801.c
@@ -122,8 +122,6 @@ static CPU_EXECUTE( lh5801 )
{
lh5801_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
if (cpustate->idle) {
cpustate->icount=0;
} else {
@@ -136,8 +134,6 @@ static CPU_EXECUTE( lh5801 )
} while (cpustate->icount > 0);
}
-
- return cycles - cpustate->icount;
}
static void set_irq_line(lh5801_state *cpustate, int irqline, int state)
diff --git a/src/emu/cpu/lr35902/lr35902.c b/src/emu/cpu/lr35902/lr35902.c
index 90cd7901625..c1a9dbafbbc 100644
--- a/src/emu/cpu/lr35902/lr35902.c
+++ b/src/emu/cpu/lr35902/lr35902.c
@@ -306,8 +306,6 @@ static CPU_EXECUTE( lr35902 )
{
lr35902_state *cpustate = get_safe_token(device);
- cpustate->w.icount = cycles;
-
do
{
if ( cpustate->w.execution_state ) {
@@ -334,8 +332,6 @@ static CPU_EXECUTE( lr35902 )
}
cpustate->w.execution_state ^= 1;
} while (cpustate->w.icount > 0);
-
- return cycles - cpustate->w.icount;
}
static CPU_BURN( lr35902 )
diff --git a/src/emu/cpu/m37710/m37710.c b/src/emu/cpu/m37710/m37710.c
index d3007268e34..4475c548c0b 100644
--- a/src/emu/cpu/m37710/m37710.c
+++ b/src/emu/cpu/m37710/m37710.c
@@ -817,7 +817,7 @@ static CPU_EXECUTE( m37710 )
m37710i_update_irqs(m37710);
- return m37710->execute(m37710, cycles);
+ m37710->ICount = m37710->execute(m37710, m37710->ICount);
}
diff --git a/src/emu/cpu/m6502/m4510.c b/src/emu/cpu/m6502/m4510.c
index dc7a432c4ae..5b451fc6b03 100644
--- a/src/emu/cpu/m6502/m4510.c
+++ b/src/emu/cpu/m6502/m4510.c
@@ -282,8 +282,6 @@ static CPU_EXECUTE( m4510 )
{
m4510_Regs *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
UINT8 op;
@@ -318,8 +316,6 @@ static CPU_EXECUTE( m4510 )
m4510_take_irq(cpustate);
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
static void m4510_set_irq_line(m4510_Regs *cpustate, int irqline, int state)
diff --git a/src/emu/cpu/m6502/m6502.c b/src/emu/cpu/m6502/m6502.c
index 2f7cdcf032c..2e8c35803cc 100644
--- a/src/emu/cpu/m6502/m6502.c
+++ b/src/emu/cpu/m6502/m6502.c
@@ -226,8 +226,6 @@ static CPU_EXECUTE( m6502 )
{
m6502_Regs *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
UINT8 op;
@@ -271,8 +269,6 @@ static CPU_EXECUTE( m6502 )
}
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
static void m6502_set_irq_line(m6502_Regs *cpustate, int irqline, int state)
@@ -447,8 +443,6 @@ static CPU_EXECUTE( m65c02 )
{
m6502_Regs *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
UINT8 op;
@@ -484,8 +478,6 @@ static CPU_EXECUTE( m65c02 )
m65c02_take_irq(cpustate);
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
static void m65c02_set_irq_line(m6502_Regs *cpustate, int irqline, int state)
@@ -613,8 +605,6 @@ static CPU_EXECUTE( deco16 )
{
m6502_Regs *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
UINT8 op;
@@ -650,8 +640,6 @@ static CPU_EXECUTE( deco16 )
deco16_take_irq(cpustate);
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/m6502/m6509.c b/src/emu/cpu/m6502/m6509.c
index a557e255a03..e64211bd5da 100644
--- a/src/emu/cpu/m6502/m6509.c
+++ b/src/emu/cpu/m6502/m6509.c
@@ -210,8 +210,6 @@ static CPU_EXECUTE( m6509 )
{
m6509_Regs *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
UINT8 op;
@@ -246,8 +244,6 @@ static CPU_EXECUTE( m6509 )
m6509_take_irq(cpustate);
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
static void m6509_set_irq_line(m6509_Regs *cpustate, int irqline, int state)
diff --git a/src/emu/cpu/m6502/m65ce02.c b/src/emu/cpu/m6502/m65ce02.c
index 28763d08561..0ac421539ae 100644
--- a/src/emu/cpu/m6502/m65ce02.c
+++ b/src/emu/cpu/m6502/m65ce02.c
@@ -169,8 +169,6 @@ static CPU_EXECUTE( m65ce02 )
{
m65ce02_Regs *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
UINT8 op;
@@ -205,8 +203,6 @@ static CPU_EXECUTE( m65ce02 )
m65ce02_take_irq(cpustate);
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
static void m65ce02_set_irq_line(m65ce02_Regs *cpustate, int irqline, int state)
diff --git a/src/emu/cpu/m6800/m6800.c b/src/emu/cpu/m6800/m6800.c
index afec742ce22..62dcf901dfc 100644
--- a/src/emu/cpu/m6800/m6800.c
+++ b/src/emu/cpu/m6800/m6800.c
@@ -1255,7 +1255,6 @@ static CPU_EXECUTE( m6800 )
{
m6800_state *cpustate = get_safe_token(device);
UINT8 ireg;
- cpustate->icount = cycles;
CHECK_IRQ_LINES(cpustate); /* HJB 990417 */
@@ -1277,8 +1276,6 @@ static CPU_EXECUTE( m6800 )
increment_counter(cpustate, cycles_6800[ireg]);
}
} while( cpustate->icount>0 );
-
- return cycles - cpustate->icount;
}
/****************************************************************************
@@ -1620,7 +1617,6 @@ static CPU_EXECUTE( m6803 )
{
m6800_state *cpustate = get_safe_token(device);
UINT8 ireg;
- cpustate->icount = cycles;
CHECK_IRQ_LINES(cpustate); /* HJB 990417 */
@@ -1642,8 +1638,6 @@ static CPU_EXECUTE( m6803 )
increment_counter(cpustate, cycles_6803[ireg]);
}
} while( cpustate->icount>0 );
-
- return cycles - cpustate->icount;
}
@@ -1974,7 +1968,6 @@ static CPU_EXECUTE( hd63701 )
{
m6800_state *cpustate = get_safe_token(device);
UINT8 ireg;
- cpustate->icount = cycles;
CHECK_IRQ_LINES(cpustate); /* HJB 990417 */
@@ -1996,8 +1989,6 @@ static CPU_EXECUTE( hd63701 )
increment_counter(cpustate, cycles_63701[ireg]);
}
} while( cpustate->icount>0 );
-
- return cycles - cpustate->icount;
}
/*
@@ -2320,7 +2311,6 @@ static CPU_EXECUTE( nsc8105 )
{
m6800_state *cpustate = get_safe_token(device);
UINT8 ireg;
- cpustate->icount = cycles;
CHECK_IRQ_LINES(cpustate); /* HJB 990417 */
@@ -2342,8 +2332,6 @@ static CPU_EXECUTE( nsc8105 )
increment_counter(cpustate, cycles_nsc8105[ireg]);
}
} while( cpustate->icount>0 );
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/m68000/m68kcpu.c b/src/emu/cpu/m68000/m68kcpu.c
index a879a7e94b2..80eb551eb4c 100644
--- a/src/emu/cpu/m68000/m68kcpu.c
+++ b/src/emu/cpu/m68000/m68kcpu.c
@@ -577,20 +577,17 @@ static CPU_EXECUTE( m68k )
{
m68ki_cpu_core *m68k = get_safe_token(device);
- m68k->initial_cycles = cycles;
+ m68k->initial_cycles = m68k->remaining_cycles;
/* eat up any reset cycles */
if (m68k->reset_cycles) {
int rc = m68k->reset_cycles;
m68k->reset_cycles = 0;
- cycles -= rc;
+ m68k->remaining_cycles -= rc;
- if (cycles <= 0) return rc;
+ if (m68k->remaining_cycles <= 0) return;
}
- /* Set our pool of clock cycles available */
- m68k->remaining_cycles = cycles;
-
/* See if interrupts came in */
m68ki_check_interrupts(m68k);
@@ -626,9 +623,6 @@ static CPU_EXECUTE( m68k )
}
else if (m68k->remaining_cycles > 0)
m68k->remaining_cycles = 0;
-
- /* return how many clocks we used */
- return m68k->initial_cycles - m68k->remaining_cycles;
}
static CPU_INIT( m68k )
diff --git a/src/emu/cpu/m68000/m68kcpu.h b/src/emu/cpu/m68000/m68kcpu.h
index a5eb5b32be3..4b3aabfc4ef 100644
--- a/src/emu/cpu/m68000/m68kcpu.h
+++ b/src/emu/cpu/m68000/m68kcpu.h
@@ -276,7 +276,7 @@ typedef struct _m68ki_cpu_core m68ki_cpu_core;
{ \
if (m68k->remaining_cycles > 0) \
m68k->remaining_cycles = 0; \
- return m68k->initial_cycles; \
+ return; \
} \
}
@@ -297,7 +297,7 @@ typedef struct _m68ki_cpu_core m68ki_cpu_core;
{ \
if (m68k->remaining_cycles > 0) \
m68k->remaining_cycles = 0; \
- return m68k->initial_cycles; \
+ return; \
} \
}
diff --git a/src/emu/cpu/m6805/m6805.c b/src/emu/cpu/m6805/m6805.c
index 1655cab7042..2a7b974968a 100644
--- a/src/emu/cpu/m6805/m6805.c
+++ b/src/emu/cpu/m6805/m6805.c
@@ -514,7 +514,6 @@ static CPU_EXECUTE( m6805 )
m6805_Regs *cpustate = get_safe_token(device);
S = SP_ADJUST( S ); /* Taken from CPU_SET_CONTEXT when pointer'afying */
- cpustate->iCount = cycles;
do
{
@@ -799,8 +798,6 @@ static CPU_EXECUTE( m6805 )
}
cpustate->iCount -= cycles1[ireg];
} while( cpustate->iCount > 0 );
-
- return cycles - cpustate->iCount;
}
/****************************************************************************
diff --git a/src/emu/cpu/m6809/m6809.c b/src/emu/cpu/m6809/m6809.c
index 70cd799ca6b..0fb48b0837c 100644
--- a/src/emu/cpu/m6809/m6809.c
+++ b/src/emu/cpu/m6809/m6809.c
@@ -487,7 +487,7 @@ static CPU_EXECUTE( m6809 ) /* NS 970908 */
{
m68_state_t *m68_state = get_safe_token(device);
- m68_state->icount = cycles - m68_state->extra_cycles;
+ m68_state->icount -= m68_state->extra_cycles;
m68_state->extra_cycles = 0;
check_irq_lines(m68_state);
@@ -777,8 +777,6 @@ static CPU_EXECUTE( m6809 ) /* NS 970908 */
m68_state->icount -= m68_state->extra_cycles;
m68_state->extra_cycles = 0;
}
-
- return cycles - m68_state->icount; /* NS 970908 */
}
INLINE void fetch_effective_address( m68_state_t *m68_state )
diff --git a/src/emu/cpu/mb86233/mb86233.c b/src/emu/cpu/mb86233/mb86233.c
index fff1fdb5a35..1ce202ecbc7 100644
--- a/src/emu/cpu/mb86233/mb86233.c
+++ b/src/emu/cpu/mb86233/mb86233.c
@@ -941,8 +941,6 @@ static CPU_EXECUTE( mb86233 )
{
mb86233_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
while( cpustate->icount > 0 )
{
UINT32 val;
@@ -1555,8 +1553,6 @@ static CPU_EXECUTE( mb86233 )
cpustate->icount = 0;
}
}
-
- return cycles - cpustate->icount;
}
/***************************************************************************
diff --git a/src/emu/cpu/mb88xx/mb88xx.c b/src/emu/cpu/mb88xx/mb88xx.c
index 5c2d3e6519f..c55cc1100b0 100644
--- a/src/emu/cpu/mb88xx/mb88xx.c
+++ b/src/emu/cpu/mb88xx/mb88xx.c
@@ -339,8 +339,6 @@ static CPU_EXECUTE( mb88 )
{
mb88_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
while (cpustate->icount > 0)
{
UINT8 opcode, arg, oc;
@@ -857,8 +855,6 @@ static CPU_EXECUTE( mb88 )
/* update interrupts, serial and timer flags */
update_pio(cpustate, oc);
}
-
- return cycles - cpustate->icount;
}
/***************************************************************************
diff --git a/src/emu/cpu/mc68hc11/mc68hc11.c b/src/emu/cpu/mc68hc11/mc68hc11.c
index 864afd21056..473be5b9a62 100644
--- a/src/emu/cpu/mc68hc11/mc68hc11.c
+++ b/src/emu/cpu/mc68hc11/mc68hc11.c
@@ -496,8 +496,6 @@ static CPU_EXECUTE( hc11 )
{
hc11_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
while(cpustate->icount > 0)
{
UINT8 op;
@@ -510,8 +508,6 @@ static CPU_EXECUTE( hc11 )
op = FETCH(cpustate);
hc11_optable[op](cpustate);
}
-
- return cycles-cpustate->icount;
}
/*****************************************************************************/
diff --git a/src/emu/cpu/mcs48/mcs48.c b/src/emu/cpu/mcs48/mcs48.c
index 6d32a32a926..76b5dc263a7 100644
--- a/src/emu/cpu/mcs48/mcs48.c
+++ b/src/emu/cpu/mcs48/mcs48.c
@@ -1122,8 +1122,6 @@ static CPU_EXECUTE( mcs48 )
update_regptr(cpustate);
- cpustate->icount = cycles;
-
/* external interrupts may have been set since we last checked */
curcycles = check_irqs(cpustate);
cpustate->icount -= curcycles;
@@ -1149,8 +1147,6 @@ static CPU_EXECUTE( mcs48 )
burn_cycles(cpustate, curcycles);
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/mcs51/mcs51.c b/src/emu/cpu/mcs51/mcs51.c
index cff33b1457f..0a13c9c9ed5 100644
--- a/src/emu/cpu/mcs51/mcs51.c
+++ b/src/emu/cpu/mcs51/mcs51.c
@@ -1928,8 +1928,6 @@ static CPU_EXECUTE( mcs51 )
update_ptrs(mcs51_state);
- mcs51_state->icount = cycles;
-
/* external interrupts may have been set since we last checked */
mcs51_state->inst_cycles = 0;
check_irqs(mcs51_state);
@@ -1938,7 +1936,7 @@ static CPU_EXECUTE( mcs51 )
if ((mcs51_state->features & FEATURE_CMOS) && GET_PD)
{
mcs51_state->icount = 0;
- return cycles;
+ return;
}
mcs51_state->icount -= mcs51_state->inst_cycles;
@@ -1952,7 +1950,7 @@ static CPU_EXECUTE( mcs51 )
mcs51_state->icount--;
burn_cycles(mcs51_state, 1);
} while( mcs51_state->icount > 0 );
- return cycles - mcs51_state->icount;
+ return;
}
do
@@ -1971,7 +1969,7 @@ static CPU_EXECUTE( mcs51 )
/* if in powerdown, just return */
if ((mcs51_state->features & FEATURE_CMOS) && GET_PD)
- return cycles - mcs51_state->icount;
+ return;
burn_cycles(mcs51_state, mcs51_state->inst_cycles);
@@ -1981,11 +1979,9 @@ static CPU_EXECUTE( mcs51 )
/* If the chip entered in idle mode, end the loop */
if ((mcs51_state->features & FEATURE_CMOS) && GET_IDL)
- return cycles - mcs51_state->icount;
+ return;
} while( mcs51_state->icount > 0 );
-
- return cycles - mcs51_state->icount;
}
diff --git a/src/emu/cpu/minx/minx.c b/src/emu/cpu/minx/minx.c
index e2007891588..80162384ab8 100644
--- a/src/emu/cpu/minx/minx.c
+++ b/src/emu/cpu/minx/minx.c
@@ -174,8 +174,6 @@ static CPU_EXECUTE( minx )
UINT8 op;
minx_state *minx = get_safe_token(device);
- minx->icount = cycles;
-
do
{
debugger_instruction_hook(device, GET_MINX_PC);
@@ -210,7 +208,6 @@ static CPU_EXECUTE( minx )
minx->icount -= insnminx_cycles[op];
}
} while ( minx->icount > 0 );
- return cycles - minx->icount;
}
diff --git a/src/emu/cpu/mips/mips3.c b/src/emu/cpu/mips/mips3.c
index c57914dca50..0cc69f3f29a 100644
--- a/src/emu/cpu/mips/mips3.c
+++ b/src/emu/cpu/mips/mips3.c
@@ -1639,7 +1639,6 @@ INLINE void handle_cop2(UINT32 op)
CPU_EXECUTE( mips3 )
{
/* count cycles and interrupt cycles */
- mips3.core.icount = cycles;
mips3.core.icount -= mips3.interrupt_cycles;
mips3.interrupt_cycles = 0;
@@ -1929,7 +1928,6 @@ CPU_EXECUTE( mips3 )
mips3.core.icount -= mips3.interrupt_cycles;
mips3.interrupt_cycles = 0;
- return cycles - mips3.core.icount;
}
diff --git a/src/emu/cpu/mips/mips3drc.c b/src/emu/cpu/mips/mips3drc.c
index 8ac134630a5..e12d24d7c8b 100644
--- a/src/emu/cpu/mips/mips3drc.c
+++ b/src/emu/cpu/mips/mips3drc.c
@@ -520,7 +520,6 @@ static CPU_EXECUTE( mips3 )
mips3->impstate->cache_dirty = FALSE;
/* execute */
- mips3->icount = cycles;
do
{
/* run as much as we can */
@@ -535,9 +534,6 @@ static CPU_EXECUTE( mips3 )
code_flush_cache(mips3);
} while (execute_result != EXECUTE_OUT_OF_CYCLES);
-
- /* return the number of cycles executed */
- return cycles - mips3->icount;
}
diff --git a/src/emu/cpu/mips/psx.c b/src/emu/cpu/mips/psx.c
index 5bd20f45f6d..75e8b542368 100644
--- a/src/emu/cpu/mips/psx.c
+++ b/src/emu/cpu/mips/psx.c
@@ -1848,8 +1848,6 @@ static CPU_EXECUTE( psxcpu )
{
psxcpu_state *psxcpu = get_safe_token(device);
- psxcpu->icount = cycles;
-
do
{
if (LOG_BIOSCALL) log_bioscall( psxcpu );
@@ -2841,8 +2839,6 @@ static CPU_EXECUTE( psxcpu )
}
psxcpu->icount--;
} while( psxcpu->icount > 0 );
-
- return cycles - psxcpu->icount;
}
static void set_irq_line( psxcpu_state *psxcpu, int irqline, int state )
diff --git a/src/emu/cpu/mips/r3000.c b/src/emu/cpu/mips/r3000.c
index d3536a4e9d1..a9f96982fdb 100644
--- a/src/emu/cpu/mips/r3000.c
+++ b/src/emu/cpu/mips/r3000.c
@@ -693,7 +693,6 @@ static CPU_EXECUTE( r3000 )
r3000_state *r3000 = get_safe_token(device);
/* count cycles and interrupt cycles */
- r3000->icount = cycles;
r3000->icount -= r3000->interrupt_cycles;
r3000->interrupt_cycles = 0;
@@ -881,7 +880,6 @@ static CPU_EXECUTE( r3000 )
r3000->icount -= r3000->interrupt_cycles;
r3000->interrupt_cycles = 0;
- return cycles - r3000->icount;
}
diff --git a/src/emu/cpu/mn10200/mn10200.c b/src/emu/cpu/mn10200/mn10200.c
index 1ade08214f4..179c12a2b2a 100644
--- a/src/emu/cpu/mn10200/mn10200.c
+++ b/src/emu/cpu/mn10200/mn10200.c
@@ -513,8 +513,6 @@ static CPU_EXECUTE(mn10200)
{
mn102_info *mn102 = get_safe_token(device);
- mn102->cycles = cycles;
-
while(mn102->cycles > 0)
{
UINT8 opcode;
@@ -1818,8 +1816,6 @@ static CPU_EXECUTE(mn10200)
break;
}
}
-
- return cycles - mn102->cycles;
}
static const char *const inames[10][4] = {
diff --git a/src/emu/cpu/nec/nec.c b/src/emu/cpu/nec/nec.c
index b7fb4c26476..1b4bdbad5b7 100644
--- a/src/emu/cpu/nec/nec.c
+++ b/src/emu/cpu/nec/nec.c
@@ -1191,8 +1191,6 @@ static CPU_EXECUTE( necv )
nec_state_t *nec_state = get_safe_token(device);
int prev_ICount;
- nec_state->icount=cycles;
-
while(nec_state->icount>0) {
/* Dispatch IRQ */
if (nec_state->pending_irq && nec_state->no_interrupt==0)
@@ -1212,7 +1210,6 @@ static CPU_EXECUTE( necv )
nec_instruction[fetchop(nec_state)](nec_state);
do_prefetch(nec_state, prev_ICount);
}
- return cycles - nec_state->icount;
}
/* Wrappers for the different CPU types */
diff --git a/src/emu/cpu/pdp1/pdp1.c b/src/emu/cpu/pdp1/pdp1.c
index 90e5c57038d..c02b9de44f6 100644
--- a/src/emu/cpu/pdp1/pdp1.c
+++ b/src/emu/cpu/pdp1/pdp1.c
@@ -622,8 +622,6 @@ static CPU_EXECUTE( pdp1 )
{
pdp1_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
debugger_instruction_hook(device, PC);
@@ -861,8 +859,6 @@ static CPU_EXECUTE( pdp1 )
}
}
while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/pdp1/tx0.c b/src/emu/cpu/pdp1/tx0.c
index 4325a03e057..fbc8aff8098 100644
--- a/src/emu/cpu/pdp1/tx0.c
+++ b/src/emu/cpu/pdp1/tx0.c
@@ -165,8 +165,6 @@ static CPU_EXECUTE( tx0_64kw )
{
tx0_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
debugger_instruction_hook(device, PC);
@@ -266,8 +264,6 @@ static CPU_EXECUTE( tx0_64kw )
}
}
while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
/* execute instructions on this CPU until icount expires */
@@ -275,8 +271,6 @@ static CPU_EXECUTE( tx0_8kw )
{
tx0_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
debugger_instruction_hook(device, PC);
@@ -376,8 +370,6 @@ static CPU_EXECUTE( tx0_8kw )
}
}
while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/pic16c5x/pic16c5x.c b/src/emu/cpu/pic16c5x/pic16c5x.c
index 93fe404672c..88d9f565287 100644
--- a/src/emu/cpu/pic16c5x/pic16c5x.c
+++ b/src/emu/cpu/pic16c5x/pic16c5x.c
@@ -888,8 +888,6 @@ static CPU_EXECUTE( pic16c5x )
update_internalram_ptr(cpustate);
- cpustate->icount = cycles;
-
do
{
if (PD == 0) /* Sleep Mode */
@@ -950,8 +948,6 @@ static CPU_EXECUTE( pic16c5x )
cpustate->icount -= cpustate->inst_cycles;
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/pic16c62x/pic16c62x.c b/src/emu/cpu/pic16c62x/pic16c62x.c
index ca92a055e85..94c6612c4c4 100644
--- a/src/emu/cpu/pic16c62x/pic16c62x.c
+++ b/src/emu/cpu/pic16c62x/pic16c62x.c
@@ -1008,8 +1008,6 @@ static CPU_EXECUTE( pic16c62x )
update_internalram_ptr(cpustate);
- cpustate->icount = cycles;
-
do
{
if (PD == 0) /* Sleep Mode */
@@ -1064,8 +1062,6 @@ static CPU_EXECUTE( pic16c62x )
cpustate->icount -= cpustate->inst_cycles;
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/powerpc/ppc403.c b/src/emu/cpu/powerpc/ppc403.c
index 29db1b04c38..30265909351 100644
--- a/src/emu/cpu/powerpc/ppc403.c
+++ b/src/emu/cpu/powerpc/ppc403.c
@@ -150,7 +150,6 @@ static CPU_RESET( ppc403 )
static CPU_EXECUTE( ppc403 )
{
UINT32 fit_trigger_cycle;
- ppc_icount = cycles;
ppc_tb_base_icount = cycles;
fit_trigger_cycle = 0x7fffffff;
@@ -244,8 +243,6 @@ static CPU_EXECUTE( ppc403 )
// update timebase
ppc.tb += (ppc_tb_base_icount - ppc_icount);
-
- return cycles - ppc_icount;
}
void ppc403_exception(int exception)
diff --git a/src/emu/cpu/powerpc/ppc602.c b/src/emu/cpu/powerpc/ppc602.c
index 6737877a262..9922b7940e1 100644
--- a/src/emu/cpu/powerpc/ppc602.c
+++ b/src/emu/cpu/powerpc/ppc602.c
@@ -217,9 +217,8 @@ static CPU_EXECUTE( ppc602 )
{
int exception_type;
UINT32 opcode;
- ppc_icount = cycles;
- ppc_tb_base_icount = cycles;
- ppc_dec_base_icount = cycles;
+ ppc_tb_base_icount = ppc_icount;
+ ppc_dec_base_icount = ppc_icount;
// check if decrementer exception occurs during execution
if ((UINT32)(DEC - ppc_icount) > (UINT32)(DEC))
@@ -276,8 +275,5 @@ static CPU_EXECUTE( ppc602 )
// update decrementer
DEC -= ((ppc_dec_base_icount - ppc_icount) / (bus_freq_multiplier * 2));
-
-
- return cycles - ppc_icount;
}
#endif // PPC_DRC
diff --git a/src/emu/cpu/powerpc/ppc603.c b/src/emu/cpu/powerpc/ppc603.c
index 3e76794c7de..d4dd2ca926c 100644
--- a/src/emu/cpu/powerpc/ppc603.c
+++ b/src/emu/cpu/powerpc/ppc603.c
@@ -221,9 +221,8 @@ static CPU_EXECUTE( ppc603 )
{
int exception_type;
UINT32 opcode;
- ppc_icount = cycles;
- ppc_tb_base_icount = cycles;
- ppc_dec_base_icount = cycles + ppc.dec_frac;
+ ppc_tb_base_icount = ppc_icount;
+ ppc_dec_base_icount = ppc_icount + ppc.dec_frac;
// check if decrementer exception occurs during execution
if ((UINT32)(DEC - ppc_icount) > (UINT32)(DEC))
@@ -281,6 +280,4 @@ static CPU_EXECUTE( ppc603 )
// update decrementer
ppc.dec_frac = ((ppc_dec_base_icount - ppc_icount) % (bus_freq_multiplier * 2));
DEC -= ((ppc_dec_base_icount - ppc_icount) / (bus_freq_multiplier * 2));
-
- return cycles - ppc_icount;
}
diff --git a/src/emu/cpu/powerpc/ppcdrc.c b/src/emu/cpu/powerpc/ppcdrc.c
index 60e97f82c1f..dcfae761e9b 100644
--- a/src/emu/cpu/powerpc/ppcdrc.c
+++ b/src/emu/cpu/powerpc/ppcdrc.c
@@ -712,7 +712,6 @@ static CPU_EXECUTE( ppcdrc )
ppc->impstate->cache_dirty = FALSE;
/* execute */
- ppc->icount = cycles;
do
{
/* run as much as we can */
@@ -727,9 +726,6 @@ static CPU_EXECUTE( ppcdrc )
code_flush_cache(ppc);
} while (execute_result != EXECUTE_OUT_OF_CYCLES);
-
- /* return the number of cycles executed */
- return cycles - ppc->icount;
}
diff --git a/src/emu/cpu/rsp/rsp.c b/src/emu/cpu/rsp/rsp.c
index edeee379749..e953306bd4c 100644
--- a/src/emu/cpu/rsp/rsp.c
+++ b/src/emu/cpu/rsp/rsp.c
@@ -2543,8 +2543,6 @@ static CPU_EXECUTE( rsp )
rsp_state *rsp = get_safe_token(device);
UINT32 op;
- rsp->icount = cycles;
-
rsp->pc = 0x4001000 | (rsp->pc & 0xfff);
if( rsp->sr & ( RSP_STATUS_HALT | RSP_STATUS_BROKE ) )
@@ -2806,8 +2804,6 @@ static CPU_EXECUTE( rsp )
}
}
-
- return cycles - rsp->icount;
}
diff --git a/src/emu/cpu/rsp/rspdrc.c b/src/emu/cpu/rsp/rspdrc.c
index 878120a60d0..f8a5db7c524 100644
--- a/src/emu/cpu/rsp/rspdrc.c
+++ b/src/emu/cpu/rsp/rspdrc.c
@@ -7120,7 +7120,6 @@ static CPU_EXECUTE( rsp )
rsp->impstate->cache_dirty = FALSE;
/* execute */
- rsp->icount = cycles;
do
{
if( rsp->sr & ( RSP_STATUS_HALT | RSP_STATUS_BROKE ) )
@@ -7146,9 +7145,6 @@ static CPU_EXECUTE( rsp )
code_flush_cache(rsp);
}
} while (execute_result != EXECUTE_OUT_OF_CYCLES);
-
- /* return the number of cycles executed */
- return cycles - rsp->icount;
}
/***************************************************************************
diff --git a/src/emu/cpu/s2650/s2650.c b/src/emu/cpu/s2650/s2650.c
index 6f710e5f530..c50acb1ca55 100644
--- a/src/emu/cpu/s2650/s2650.c
+++ b/src/emu/cpu/s2650/s2650.c
@@ -887,11 +887,8 @@ static CPU_EXECUTE( s2650 )
{
s2650_regs *s2650c = get_safe_token(device);
- s2650c->icount = cycles;
-
/* check for external irqs */
- int irqcycles = check_irq_line(s2650c);
- s2650c->icount -= irqcycles;
+ s2650c->icount -= check_irq_line(s2650c);
do
{
@@ -1498,8 +1495,6 @@ static CPU_EXECUTE( s2650 )
break;
}
} while( s2650c->icount > 0 );
-
- return cycles - s2650c->icount;
}
diff --git a/src/emu/cpu/saturn/saturn.c b/src/emu/cpu/saturn/saturn.c
index 248e839d2d0..327f0f91a48 100644
--- a/src/emu/cpu/saturn/saturn.c
+++ b/src/emu/cpu/saturn/saturn.c
@@ -170,8 +170,6 @@ static CPU_EXECUTE( saturn )
{
saturn_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
cpustate->oldpc = cpustate->pc;
@@ -194,8 +192,6 @@ static CPU_EXECUTE( saturn )
}
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/sc61860/sc61860.c b/src/emu/cpu/sc61860/sc61860.c
index d977df89aae..0b235a238bf 100644
--- a/src/emu/cpu/sc61860/sc61860.c
+++ b/src/emu/cpu/sc61860/sc61860.c
@@ -113,8 +113,6 @@ static CPU_EXECUTE( sc61860 )
{
sc61860_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
cpustate->oldpc = cpustate->pc;
@@ -138,8 +136,6 @@ static CPU_EXECUTE( sc61860 )
else sc61860_instruction(cpustate);*/
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/scmp/scmp.c b/src/emu/cpu/scmp/scmp.c
index 6822dc0f71a..4fd930c1f44 100644
--- a/src/emu/cpu/scmp/scmp.c
+++ b/src/emu/cpu/scmp/scmp.c
@@ -475,8 +475,6 @@ static CPU_EXECUTE( scmp )
{
scmp_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
if ((cpustate->SR & 0x08) && (devcb_call_read_line(&cpustate->sensea_func))) {
@@ -486,8 +484,6 @@ static CPU_EXECUTE( scmp )
execute_one(cpustate, ROP(cpustate));
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
/***************************************************************************
diff --git a/src/emu/cpu/se3208/se3208.c b/src/emu/cpu/se3208/se3208.c
index c9b7bc8a2c7..bc0c6f99255 100644
--- a/src/emu/cpu/se3208/se3208.c
+++ b/src/emu/cpu/se3208/se3208.c
@@ -1757,7 +1757,6 @@ static CPU_EXECUTE( se3208 )
{
se3208_state_t *se3208_state = get_safe_token(device);
- se3208_state->icount=cycles;
do
{
UINT16 Opcode=memory_decrypted_read_word(se3208_state->program, WORD_XOR_LE(se3208_state->PC));
@@ -1779,8 +1778,6 @@ static CPU_EXECUTE( se3208 )
}
--(se3208_state->icount);
} while(se3208_state->icount>0);
-
- return cycles-se3208_state->icount;
}
static CPU_INIT( se3208 )
diff --git a/src/emu/cpu/sh2/sh2.c b/src/emu/cpu/sh2/sh2.c
index 8e8ba0d5e3c..1bacc091a98 100644
--- a/src/emu/cpu/sh2/sh2.c
+++ b/src/emu/cpu/sh2/sh2.c
@@ -2188,10 +2188,11 @@ static CPU_RESET( sh1 )
/* Execute cycles - returns number of cycles actually run */
static CPU_EXECUTE( sh2 )
{
- sh2_icount = cycles;
-
if (sh2->cpu_off)
- return 0;
+ {
+ sh2->icount = 0;
+ return;
+ }
do
{
@@ -2238,8 +2239,6 @@ static CPU_EXECUTE( sh2 )
}
sh2_icount--;
} while( sh2_icount > 0 );
-
- return cycles - sh2_icount;
}
static CPU_INIT( sh2 )
diff --git a/src/emu/cpu/sh2/sh2drc.c b/src/emu/cpu/sh2/sh2drc.c
index 22473a91ec5..97e0e609b46 100644
--- a/src/emu/cpu/sh2/sh2drc.c
+++ b/src/emu/cpu/sh2/sh2drc.c
@@ -890,7 +890,6 @@ static CPU_EXECUTE( sh2 )
code_flush_cache(sh2);
/* execute */
- sh2->icount = cycles;
do
{
/* run as much as we can */
@@ -910,9 +909,6 @@ static CPU_EXECUTE( sh2 )
code_flush_cache(sh2);
}
} while (execute_result != EXECUTE_OUT_OF_CYCLES);
-
- /* return the number of cycles executed */
- return cycles - sh2->icount;
}
/*-------------------------------------------------
diff --git a/src/emu/cpu/sh4/sh4.c b/src/emu/cpu/sh4/sh4.c
index aabf390f236..f8280fb561d 100644
--- a/src/emu/cpu/sh4/sh4.c
+++ b/src/emu/cpu/sh4/sh4.c
@@ -3328,10 +3328,12 @@ static CPU_RESET( sh4 )
static CPU_EXECUTE( sh4 )
{
SH4 *sh4 = get_safe_token(device);
- sh4->sh4_icount = cycles;
if (sh4->cpu_off)
- return 0;
+ {
+ sh4->sh4_icount = 0;
+ return;
+ }
do
{
@@ -3377,8 +3379,6 @@ static CPU_EXECUTE( sh4 )
}
sh4->sh4_icount--;
} while( sh4->sh4_icount > 0 );
-
- return cycles - sh4->sh4_icount;
}
static CPU_INIT( sh4 )
diff --git a/src/emu/cpu/sharc/sharc.c b/src/emu/cpu/sharc/sharc.c
index 00866dac10c..0d254d11de1 100644
--- a/src/emu/cpu/sharc/sharc.c
+++ b/src/emu/cpu/sharc/sharc.c
@@ -670,14 +670,13 @@ static void check_interrupts(SHARC_REGS *cpustate)
static CPU_EXECUTE( sharc )
{
SHARC_REGS *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
if (cpustate->idle && cpustate->irq_active == 0)
{
// handle pending DMA transfers
if (cpustate->dmaop_cycles > 0)
{
- cpustate->dmaop_cycles -= cycles;
+ cpustate->dmaop_cycles -= cpustate->icount;
if (cpustate->dmaop_cycles <= 0)
{
cpustate->dmaop_cycles = 0;
@@ -691,8 +690,6 @@ static CPU_EXECUTE( sharc )
cpustate->icount = 0;
debugger_instruction_hook(device, cpustate->daddr);
-
- return cycles;
}
if (cpustate->irq_active != 0)
{
@@ -838,8 +835,6 @@ static CPU_EXECUTE( sharc )
--cpustate->icount;
};
-
- return cycles - cpustate->icount;
}
/**************************************************************************
diff --git a/src/emu/cpu/sm8500/sm8500.c b/src/emu/cpu/sm8500/sm8500.c
index 17762d12cd0..4acacad08b7 100644
--- a/src/emu/cpu/sm8500/sm8500.c
+++ b/src/emu/cpu/sm8500/sm8500.c
@@ -231,8 +231,6 @@ static CPU_EXECUTE( sm8500 )
UINT16 oldpc;
int mycycles;
- cpustate->icount = cycles;
-
do
{
UINT8 r1,r2;
@@ -261,8 +259,6 @@ static CPU_EXECUTE( sm8500 )
}
cpustate->icount -= mycycles;
} while ( cpustate->icount > 0 );
-
- return cycles - cpustate->icount;
}
static CPU_BURN( sm8500 )
diff --git a/src/emu/cpu/spc700/spc700.c b/src/emu/cpu/spc700/spc700.c
index bbfb1aab35b..b1aaa410cae 100644
--- a/src/emu/cpu/spc700/spc700.c
+++ b/src/emu/cpu/spc700/spc700.c
@@ -1353,7 +1353,11 @@ static CPU_EXECUTE( spc700 )
{
spc700i_cpu *cpustate = get_safe_token(device);
- CLOCKS = CPU_STOPPED ? 0 : cycles;
+ if (CPU_STOPPED)
+ {
+ CLOCKS = 0;
+ return;
+ }
while(CLOCKS > 0)
{
REG_PPC = REG_PC;
@@ -1620,7 +1624,6 @@ static CPU_EXECUTE( spc700 )
case 0xff: OP_STOP ( 3 ); break; /* STOP */
}
}
- return cycles - CLOCKS;
}
diff --git a/src/emu/cpu/ssem/ssem.c b/src/emu/cpu/ssem/ssem.c
index 447d9317b63..a9161b784ef 100644
--- a/src/emu/cpu/ssem/ssem.c
+++ b/src/emu/cpu/ssem/ssem.c
@@ -172,8 +172,6 @@ static CPU_EXECUTE( ssem )
ssem_state *cpustate = get_safe_token(device);
UINT32 op;
- cpustate->icount = cycles;
-
cpustate->pc &= 0x1f;
while (cpustate->icount > 0)
@@ -232,8 +230,6 @@ static CPU_EXECUTE( ssem )
--cpustate->icount;
}
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/ssp1601/ssp1601.c b/src/emu/cpu/ssp1601/ssp1601.c
index 863d45c37c3..bb1f87a105e 100644
--- a/src/emu/cpu/ssp1601/ssp1601.c
+++ b/src/emu/cpu/ssp1601/ssp1601.c
@@ -553,8 +553,6 @@ static CPU_EXECUTE( ssp1601 )
{
ssp1601_state_t *ssp1601_state = get_safe_token(device);
- ssp1601_state->g_cycles = cycles;
-
while (ssp1601_state->g_cycles > 0)
{
int op;
@@ -757,7 +755,6 @@ static CPU_EXECUTE( ssp1601 )
}
update_P(ssp1601_state);
- return cycles - ssp1601_state->g_cycles;
}
diff --git a/src/emu/cpu/superfx/superfx.c b/src/emu/cpu/superfx/superfx.c
index 64430d186f3..ecf2ebdea0e 100644
--- a/src/emu/cpu/superfx/superfx.c
+++ b/src/emu/cpu/superfx/superfx.c
@@ -812,8 +812,6 @@ static CPU_EXECUTE( superfx )
superfx_state *cpustate = get_safe_token(device);
UINT8 op;
- cpustate->icount = cycles;
-
if(!(cpustate->sfr & SUPERFX_SFR_G))
{
superfx_add_clocks_internal(cpustate, 6);
@@ -1485,8 +1483,6 @@ static CPU_EXECUTE( superfx )
--cpustate->icount;
}
-
- return cycles - cpustate->icount;
}
/*****************************************************************************/
diff --git a/src/emu/cpu/t11/t11.c b/src/emu/cpu/t11/t11.c
index c8789186701..41b96ee4ccf 100644
--- a/src/emu/cpu/t11/t11.c
+++ b/src/emu/cpu/t11/t11.c
@@ -345,7 +345,6 @@ static CPU_EXECUTE( t11 )
{
t11_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
t11_check_irqs(cpustate);
if (cpustate->wait_state)
@@ -368,8 +367,7 @@ static CPU_EXECUTE( t11 )
} while (cpustate->icount > 0);
getout:
-
- return cycles - cpustate->icount;
+ ;
}
diff --git a/src/emu/cpu/tlcs90/tlcs90.c b/src/emu/cpu/tlcs90/tlcs90.c
index b021c5b493e..ef139ddef7b 100644
--- a/src/emu/cpu/tlcs90/tlcs90.c
+++ b/src/emu/cpu/tlcs90/tlcs90.c
@@ -1351,7 +1351,7 @@ static CPU_EXECUTE( t90 )
unsigned a32;
PAIR tmp;
- cpustate->icount = cycles - cpustate->extra_cycles;
+ cpustate->icount -= cpustate->extra_cycles;
cpustate->extra_cycles = 0;
do
@@ -1981,8 +1981,6 @@ static CPU_EXECUTE( t90 )
cpustate->icount -= cpustate->extra_cycles;
cpustate->extra_cycles = 0;
-
- return cycles - cpustate->icount;
}
static CPU_RESET( t90 )
diff --git a/src/emu/cpu/tlcs900/tlcs900.c b/src/emu/cpu/tlcs900/tlcs900.c
index 7193dfb5c82..6c749badd52 100644
--- a/src/emu/cpu/tlcs900/tlcs900.c
+++ b/src/emu/cpu/tlcs900/tlcs900.c
@@ -858,8 +858,6 @@ static CPU_EXECUTE( tlcs900 )
{
tlcs900_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
const tlcs900inst *inst;
@@ -897,8 +895,6 @@ static CPU_EXECUTE( tlcs900 )
cpustate->icount -= cpustate->cycles;
} while ( cpustate->icount > 0 );
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/tms0980/tms0980.c b/src/emu/cpu/tms0980/tms0980.c
index 7b29c52b036..552fd6c2624 100644
--- a/src/emu/cpu/tms0980/tms0980.c
+++ b/src/emu/cpu/tms0980/tms0980.c
@@ -805,8 +805,6 @@ static CPU_EXECUTE( tms0980 )
{
tms0980_state *cpustate = get_safe_token( device );
- cpustate->icount = cycles;
-
do
{
// debugger_instruction_hook( device, ( ( cpustate->pa << cpustate->pc_size ) | cpustate->pc ) << 1 );
@@ -1088,8 +1086,6 @@ static CPU_EXECUTE( tms0980 )
}
cpustate->subcycle = ( cpustate->subcycle + 1 ) % 6;
} while( cpustate->icount > 0 );
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/tms32010/tms32010.c b/src/emu/cpu/tms32010/tms32010.c
index a003abba462..5288f2f35a6 100644
--- a/src/emu/cpu/tms32010/tms32010.c
+++ b/src/emu/cpu/tms32010/tms32010.c
@@ -855,7 +855,6 @@ static int Ext_IRQ(tms32010_state *cpustate)
static CPU_EXECUTE( tms32010 )
{
tms32010_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
do
{
@@ -881,8 +880,6 @@ static CPU_EXECUTE( tms32010 )
(*opcode_7F[(cpustate->opcode.b.l & 0x1f)].function)(cpustate);
}
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/tms32025/tms32025.c b/src/emu/cpu/tms32025/tms32025.c
index 6fad5766ff6..f79d53a1bff 100644
--- a/src/emu/cpu/tms32025/tms32025.c
+++ b/src/emu/cpu/tms32025/tms32025.c
@@ -1967,7 +1967,6 @@ again:
static CPU_EXECUTE( tms32025 )
{
tms32025_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
/**** Respond to external hold signal */
@@ -2099,8 +2098,6 @@ static CPU_EXECUTE( tms32025 )
}
}
}
-
- return (cycles - cpustate->icount);
}
diff --git a/src/emu/cpu/tms32031/tms32031.c b/src/emu/cpu/tms32031/tms32031.c
index c817498227c..ecd3408531d 100644
--- a/src/emu/cpu/tms32031/tms32031.c
+++ b/src/emu/cpu/tms32031/tms32031.c
@@ -465,12 +465,14 @@ static CPU_EXECUTE( tms32031 )
tms32031_state *tms = get_safe_token(device);
/* check IRQs up front */
- tms->icount = cycles;
check_irqs(tms);
/* if we're idling, just eat the cycles */
if (tms->is_idling)
- return tms->icount;
+ {
+ tms->icount = 0;
+ return;
+ }
if ((device->machine->debug_flags & DEBUG_FLAG_ENABLED) == 0)
{
@@ -529,8 +531,6 @@ static CPU_EXECUTE( tms32031 )
execute_one(tms);
}
}
-
- return cycles - tms->icount;
}
diff --git a/src/emu/cpu/tms32051/tms32051.c b/src/emu/cpu/tms32051/tms32051.c
index cc5cc5fe6ec..fded98f04a7 100644
--- a/src/emu/cpu/tms32051/tms32051.c
+++ b/src/emu/cpu/tms32051/tms32051.c
@@ -338,8 +338,6 @@ static CPU_EXECUTE( tms )
{
tms32051_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
while(cpustate->icount > 0)
{
UINT16 ppc;
@@ -396,7 +394,6 @@ static CPU_EXECUTE( tms )
}
}
}
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/tms34010/tms34010.c b/src/emu/cpu/tms34010/tms34010.c
index 13892fec4c3..aee35aa5c6b 100644
--- a/src/emu/cpu/tms34010/tms34010.c
+++ b/src/emu/cpu/tms34010/tms34010.c
@@ -782,7 +782,10 @@ static CPU_EXECUTE( tms34010 )
/* Get out if CPU is halted. Absolutely no interrupts must be taken!!! */
if (IOREG(tms, REG_HSTCTLH) & 0x8000)
- return cycles;
+ {
+ tms->icount = 0;
+ return;
+ }
/* if the CPU's reset was deferred, do it now */
if (tms->reset_deferred)
@@ -791,9 +794,6 @@ static CPU_EXECUTE( tms34010 )
tms->pc = RLONG(tms, 0xffffffe0);
}
- /* execute starting now */
- tms->icount = cycles;
-
/* check interrupts first */
tms->executing = TRUE;
check_interrupt(tms);
@@ -819,8 +819,6 @@ static CPU_EXECUTE( tms34010 )
} while (tms->icount > 0);
}
tms->executing = FALSE;
-
- return cycles - tms->icount;
}
diff --git a/src/emu/cpu/tms57002/tms57002.c b/src/emu/cpu/tms57002/tms57002.c
index 305fffbeacf..df9012e6110 100644
--- a/src/emu/cpu/tms57002/tms57002.c
+++ b/src/emu/cpu/tms57002/tms57002.c
@@ -1276,10 +1276,9 @@ static int tms57002_decode_get_pc(tms57002_t *s)
static CPU_EXECUTE(tms57002)
{
tms57002_t *s = get_safe_token(device);
- int initial_cycles = cycles;
int ipc = -1;
- while(cycles > 0 && !(s->sti & (S_IDLE | IN_PLOAD | IN_CLOAD))) {
+ while(s->icount > 0 && !(s->sti & (S_IDLE | IN_PLOAD | IN_CLOAD))) {
int iipc;
debugger_instruction_hook(device, s->pc);
@@ -1315,7 +1314,7 @@ static CPU_EXECUTE(tms57002)
}
}
inst:
- cycles--;
+ s->icount--;
if(s->rptc) {
s->rptc--;
@@ -1332,9 +1331,8 @@ static CPU_EXECUTE(tms57002)
}
}
- if(cycles > 0)
- cycles = 0;
- return initial_cycles - cycles;
+ if(s->icount > 0)
+ s->icount = 0;
}
static CPU_INIT(tms57002)
diff --git a/src/emu/cpu/tms7000/tms7000.c b/src/emu/cpu/tms7000/tms7000.c
index 220ecc8d839..3d74a310675 100644
--- a/src/emu/cpu/tms7000/tms7000.c
+++ b/src/emu/cpu/tms7000/tms7000.c
@@ -445,8 +445,7 @@ static CPU_EXECUTE( tms7000 )
tms7000_state *cpustate = get_safe_token(device);
int op;
- cpustate->icount = cycles;
- cpustate->div_by_16_trigger += cycles;
+ cpustate->div_by_16_trigger += cpustate->icount;
tms7000_check_IRQ_lines(cpustate);
@@ -479,7 +478,6 @@ static CPU_EXECUTE( tms7000 )
} while( cpustate->icount > 0 );
cpustate->div_by_16_trigger -= cpustate->icount;
- return cycles - cpustate->icount;
}
static CPU_EXECUTE( tms7000_exl )
@@ -487,8 +485,7 @@ static CPU_EXECUTE( tms7000_exl )
tms7000_state *cpustate = get_safe_token(device);
int op;
- cpustate->icount = cycles;
- cpustate->div_by_16_trigger += cycles;
+ cpustate->div_by_16_trigger += cpustate->icount;
tms7000_check_IRQ_lines(cpustate);
@@ -522,7 +519,6 @@ static CPU_EXECUTE( tms7000_exl )
} while( cpustate->icount > 0 );
cpustate->div_by_16_trigger -= cpustate->icount;
- return cycles - cpustate->icount;
}
/****************************************************************************
diff --git a/src/emu/cpu/tms9900/99xxcore.h b/src/emu/cpu/tms9900/99xxcore.h
index 7a8981c6fe0..0dec954e622 100644
--- a/src/emu/cpu/tms9900/99xxcore.h
+++ b/src/emu/cpu/tms9900/99xxcore.h
@@ -1404,7 +1404,6 @@ INLINE UINT16 fetch(tms99xx_state *cpustate)
static CPU_EXECUTE( tms99xx )
{
tms99xx_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
cpustate->lds_flag = 0;
cpustate->ldd_flag = 0;
@@ -1541,8 +1540,6 @@ static CPU_EXECUTE( tms99xx )
}
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
#if (TMS99XX_MODEL == TI990_10_ID)
diff --git a/src/emu/cpu/unsp/unsp.c b/src/emu/cpu/unsp/unsp.c
index c7f88e108c9..70ae8967a71 100644
--- a/src/emu/cpu/unsp/unsp.c
+++ b/src/emu/cpu/unsp/unsp.c
@@ -176,8 +176,6 @@ static CPU_EXECUTE( unsp )
UINT16 r0, r1;
lres = 0;
- unsp->icount = cycles;
-
while (unsp->icount > 0)
{
debugger_instruction_hook(device, UNSP_LPC<<1);
@@ -748,8 +746,6 @@ static CPU_EXECUTE( unsp )
unsp->icount -= 5;
unsp->icount = MAX(unsp->icount, 0);
}
-
- return cycles - unsp->icount;
}
diff --git a/src/emu/cpu/upd7810/upd7810.c b/src/emu/cpu/upd7810/upd7810.c
index 061d84a0e54..06b0a956f0b 100644
--- a/src/emu/cpu/upd7810/upd7810.c
+++ b/src/emu/cpu/upd7810/upd7810.c
@@ -1885,7 +1885,6 @@ static CPU_EXIT( upd7810 )
static CPU_EXECUTE( upd7810 )
{
upd7810_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
do
{
@@ -1961,8 +1960,6 @@ static CPU_EXECUTE( upd7810 )
upd7810_take_irq(cpustate);
} while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
static void set_irq_line(upd7810_state *cpustate, int irqline, int state)
diff --git a/src/emu/cpu/v30mz/v30mz.c b/src/emu/cpu/v30mz/v30mz.c
index a797fde77ee..76b65c863e0 100644
--- a/src/emu/cpu/v30mz/v30mz.c
+++ b/src/emu/cpu/v30mz/v30mz.c
@@ -969,8 +969,6 @@ static CPU_EXECUTE( v30mz )
{
v30mz_state *cpustate = get_safe_token(device);
- cpustate->icount=cycles;
-
while(cpustate->icount>0) {
/* Dispatch IRQ */
if (cpustate->pending_irq && cpustate->no_interrupt==0)
@@ -988,8 +986,6 @@ static CPU_EXECUTE( v30mz )
debugger_instruction_hook(device, (cpustate->sregs[CS]<<4) + cpustate->ip);
nec_instruction[FETCHOP](cpustate);
}
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/v60/v60.c b/src/emu/cpu/v60/v60.c
index 19d5c34e252..4dfe2b1645e 100644
--- a/src/emu/cpu/v60/v60.c
+++ b/src/emu/cpu/v60/v60.c
@@ -441,7 +441,6 @@ static CPU_EXECUTE( v60 )
{
v60_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
if (cpustate->irq_line != CLEAR_LINE)
v60_try_irq(cpustate);
@@ -456,8 +455,6 @@ static CPU_EXECUTE( v60 )
if (cpustate->irq_line != CLEAR_LINE)
v60_try_irq(cpustate);
}
-
- return cycles - cpustate->icount;
}
diff --git a/src/emu/cpu/v810/v810.c b/src/emu/cpu/v810/v810.c
index 3208d64ab85..d1690c20d7a 100644
--- a/src/emu/cpu/v810/v810.c
+++ b/src/emu/cpu/v810/v810.c
@@ -1026,7 +1026,6 @@ static CPU_EXECUTE( v810 )
{
v810_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
while(cpustate->icount>0)
{
UINT32 op;
@@ -1037,7 +1036,6 @@ static CPU_EXECUTE( v810 )
cpustate->PC+=2;
cpustate->icount-= OpCodeTable[op>>10](cpustate,op);
}
- return cycles-cpustate->icount;
}
diff --git a/src/emu/cpu/z180/z180.c b/src/emu/cpu/z180/z180.c
index 349f7fd878a..2f3da15f981 100644
--- a/src/emu/cpu/z180/z180.c
+++ b/src/emu/cpu/z180/z180.c
@@ -2398,8 +2398,6 @@ static CPU_EXECUTE( z180 )
z180_state *cpustate = get_safe_token(device);
int curcycles;
- cpustate->icount = cycles;
-
/* check for NMIs on the way in; they can only be set externally */
/* via timers, and can't be dynamically enabled, so it is safe */
/* to just check here */
@@ -2517,7 +2515,6 @@ again:
}
//cpustate->old_icount -= cpustate->icount;
- return cycles - cpustate->icount;
}
/****************************************************************************
diff --git a/src/emu/cpu/z8/z8.c b/src/emu/cpu/z8/z8.c
index 800c97a3eb1..2e43c3822d9 100644
--- a/src/emu/cpu/z8/z8.c
+++ b/src/emu/cpu/z8/z8.c
@@ -687,8 +687,6 @@ static CPU_EXECUTE( z8 )
{
z8_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
UINT8 opcode;
@@ -709,8 +707,6 @@ static CPU_EXECUTE( z8 )
cpustate->icount -= cycles;
}
while (cpustate->icount > 0);
-
- return cycles - cpustate->icount;
}
/***************************************************************************
diff --git a/src/emu/cpu/z80/z80.c b/src/emu/cpu/z80/z80.c
index b90c4cc6ccb..a027f1399d4 100644
--- a/src/emu/cpu/z80/z80.c
+++ b/src/emu/cpu/z80/z80.c
@@ -3570,8 +3570,6 @@ static CPU_EXECUTE( z80 )
{
z80_state *z80 = get_safe_token(device);
- z80->icount = cycles;
-
/* check for NMIs on the way in; they can only be set externally */
/* via timers, and can't be dynamically enabled, so it is safe */
/* to just check here */
@@ -3601,16 +3599,12 @@ static CPU_EXECUTE( z80 )
z80->r++;
EXEC_INLINE(z80,op,ROP(z80));
} while (z80->icount > 0);
-
- return cycles - z80->icount;
}
static CPU_EXECUTE( nsc800 )
{
z80_state *z80 = get_safe_token(device);
- z80->icount = cycles;
-
/* check for NMIs on the way in; they can only be set externally */
/* via timers, and can't be dynamically enabled, so it is safe */
/* to just check here */
@@ -3647,8 +3641,6 @@ static CPU_EXECUTE( z80 )
z80->r++;
EXEC_INLINE(z80,op,ROP(z80));
} while (z80->icount > 0);
-
- return cycles - z80->icount;
}
/****************************************************************************
diff --git a/src/emu/cpu/z8000/z8000.c b/src/emu/cpu/z8000/z8000.c
index a75ea7fc66d..b1065b1a04c 100644
--- a/src/emu/cpu/z8000/z8000.c
+++ b/src/emu/cpu/z8000/z8000.c
@@ -431,8 +431,6 @@ static CPU_EXECUTE( z8000 )
{
z8000_state *cpustate = get_safe_token(device);
- cpustate->icount = cycles;
-
do
{
/* any interrupt request pending? */
@@ -461,8 +459,6 @@ static CPU_EXECUTE( z8000 )
}
} while (cpustate->icount > 0);
- return cycles - cpustate->icount;
-
}
static void set_irq_line(z8000_state *cpustate, int irqline, int state)
diff --git a/src/emu/devcpu.c b/src/emu/devcpu.c
index 9f9a4d752aa..f9e12f162c9 100644
--- a/src/emu/devcpu.c
+++ b/src/emu/devcpu.c
@@ -334,9 +334,9 @@ void cpu_device::device_reset()
// cycles
//-------------------------------------------------
-INT32 cpu_device::execute_run(INT32 cycles)
+void cpu_device::execute_run()
{
- return (*m_execute)(this, cycles);
+ (*m_execute)(this);
}
diff --git a/src/emu/devcpu.h b/src/emu/devcpu.h
index 4dd5cff31e7..25bb49d3006 100644
--- a/src/emu/devcpu.h
+++ b/src/emu/devcpu.h
@@ -207,7 +207,7 @@ enum
#define CPU_EXIT_CALL(name) CPU_EXIT_NAME(name)(device)
#define CPU_EXECUTE_NAME(name) cpu_execute_##name
-#define CPU_EXECUTE(name) int CPU_EXECUTE_NAME(name)(cpu_device *device, int cycles)
+#define CPU_EXECUTE(name) void CPU_EXECUTE_NAME(name)(cpu_device *device)
#define CPU_EXECUTE_CALL(name) CPU_EXECUTE_NAME(name)(device, cycles)
#define CPU_BURN_NAME(name) cpu_burn_##name
@@ -333,7 +333,7 @@ typedef void (*cpu_set_info_func)(cpu_device *device, UINT32 state, cpuinfo *inf
typedef void (*cpu_init_func)(cpu_device *device, device_irq_callback irqcallback);
typedef void (*cpu_reset_func)(cpu_device *device);
typedef void (*cpu_exit_func)(cpu_device *device);
-typedef int (*cpu_execute_func)(cpu_device *device, int cycles);
+typedef void (*cpu_execute_func)(cpu_device *device);
typedef void (*cpu_burn_func)(cpu_device *device, int cycles);
typedef int (*cpu_translate_func)(cpu_device *device, int space, int intention, offs_t *address);
typedef int (*cpu_read_func)(cpu_device *device, int space, UINT32 offset, int size, UINT64 *value);
@@ -486,7 +486,7 @@ protected:
virtual void device_debug_setup();
// device_execute_interface overrides
- virtual INT32 execute_run(INT32 cycles);
+ virtual void execute_run();
virtual void execute_burn(INT32 cycles);
virtual void execute_set_input(int inputnum, int state) { set_legacy_runtime_int(CPUINFO_INT_INPUT_STATE + inputnum, state); }
diff --git a/src/emu/diexec.h b/src/emu/diexec.h
index 1890a315766..176fc57b066 100644
--- a/src/emu/diexec.h
+++ b/src/emu/diexec.h
@@ -253,11 +253,11 @@ public:
UINT32 default_irq_vector() const { return m_execute_config.default_irq_vector(); }
// required operation overrides
- INT32 run(INT32 clocks) { return execute_run(clocks); }
+ void run() { execute_run(); }
protected:
// optional operation overrides
- virtual INT32 execute_run(INT32 cycles) = 0;
+ virtual void execute_run() = 0;
virtual void execute_burn(INT32 cycles);
virtual void execute_set_input(int linenum, int state);
diff --git a/src/emu/schedule.c b/src/emu/schedule.c
index 61b8a3ce396..5fa3a3a677b 100644
--- a/src/emu/schedule.c
+++ b/src/emu/schedule.c
@@ -177,15 +177,17 @@ void device_scheduler::timeslice()
m_executing_device = exec;
*exec->m_icount = exec->m_cycles_running;
if (!call_debugger)
- ran = exec->execute_run(exec->m_cycles_running);
+ exec->execute_run();
else
{
debugger_start_cpu_hook(&exec->device(), target);
- ran = exec->execute_run(exec->m_cycles_running);
+ exec->execute_run();
debugger_stop_cpu_hook(&exec->device());
}
// adjust for any cycles we took back
+ assert(ran >= *exec->m_icount);
+ ran -= *exec->m_icount;
assert(ran >= exec->m_cycles_stolen);
ran -= exec->m_cycles_stolen;
profiler_mark_end();