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.
This commit is contained in:
Aaron Giles 2010-06-09 16:20:50 +00:00
parent ebdc4525f9
commit eba2c14060
105 changed files with 101 additions and 443 deletions

View File

@ -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;
}

View File

@ -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

View File

@ -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)

View File

@ -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 )

View File

@ -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 */

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}
/*****************************************************************************/

View File

@ -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;
}

View File

@ -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 )

View File

@ -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;
}
/***************************************************************************

View File

@ -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 )

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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 );

View File

@ -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);
}

View File

@ -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;
}
/*****************************************************************************/

View File

@ -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)

View File

@ -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 )

View File

@ -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;
}
/*************************************************************************/

View File

@ -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;
}
/***************************************************************************

View File

@ -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;
}
/***************************************************************************

View File

@ -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;
}

View File

@ -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);

View File

@ -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;
}

View File

@ -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;
}
/*=================================================================*/

View File

@ -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)

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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)

View File

@ -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 )

View File

@ -817,7 +817,7 @@ static CPU_EXECUTE( m37710 )
m37710i_update_irqs(m37710);
return m37710->execute(m37710, cycles);
m37710->ICount = m37710->execute(m37710, m37710->ICount);
}

View File

@ -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)

View File

@ -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;
}

View File

@ -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)

View File

@ -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)

View File

@ -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;
}

View File

@ -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 )

View File

@ -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; \
} \
}

View File

@ -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;
}
/****************************************************************************

View File

@ -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 )

View File

@ -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;
}
/***************************************************************************

View File

@ -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;
}
/***************************************************************************

View File

@ -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;
}
/*****************************************************************************/

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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 )

View File

@ -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;
}

View File

@ -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] = {

View File

@ -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 */

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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)

View File

@ -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

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}
/***************************************************************************

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}
/***************************************************************************

View File

@ -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 )

View File

@ -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 )

View File

@ -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;
}
/*-------------------------------------------------

View File

@ -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 )

View File

@ -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;
}
/**************************************************************************

View File

@ -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 )

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}
/*****************************************************************************/

View File

@ -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;
;
}

View File

@ -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 )

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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)

View File

@ -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;
}
/****************************************************************************

View File

@ -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)

View File

@ -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;
}

View File

@ -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)

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}
/****************************************************************************

View File

@ -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;
}
/***************************************************************************

View File

@ -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;
}
/****************************************************************************

Some files were not shown because too many files have changed in this diff Show More