summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/spc700
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2009-03-15 17:12:40 +0000
committer Aaron Giles <aaron@aarongiles.com>2009-03-15 17:12:40 +0000
commit46494694d15ba7ced83782fb385ee1474d8b882a (patch)
tree590cad40562178523ff8b41986b3ee9f69be3663 /src/emu/cpu/spc700
parentd0527ba566044a695b2da07d108c892d0949159a (diff)
CPU cores now compile cleanly.
Diffstat (limited to 'src/emu/cpu/spc700')
-rw-r--r--src/emu/cpu/spc700/spc700.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/emu/cpu/spc700/spc700.c b/src/emu/cpu/spc700/spc700.c
index 2c9136758d8..dff3222e57b 100644
--- a/src/emu/cpu/spc700/spc700.c
+++ b/src/emu/cpu/spc700/spc700.c
@@ -97,6 +97,15 @@ typedef struct
int spc_int32;
} spc700i_cpu;
+INLINE spc700i_cpu *get_safe_token(const device_config *device)
+{
+ assert(device != NULL);
+ assert(device->token != NULL);
+ assert(device->type == CPU);
+ assert(cpu_get_type(device) == CPU_SPC700);
+ return (spc700i_cpu *)device->token;
+}
+
/* ======================================================================== */
/* ==================== ARCHITECTURE-DEPENDANT DEFINES ==================== */
/* ======================================================================== */
@@ -1239,7 +1248,7 @@ INLINE void SET_FLAG_I(spc700i_cpu *cpustate, uint value)
static CPU_INIT( spc700 )
{
- spc700i_cpu *cpustate = device->token;
+ spc700i_cpu *cpustate = get_safe_token(device);
INT_ACK = irqcallback;
cpustate->device = device;
@@ -1249,7 +1258,7 @@ static CPU_INIT( spc700 )
static CPU_RESET( spc700 )
{
- spc700i_cpu *cpustate = device->token;
+ spc700i_cpu *cpustate = get_safe_token(device);
CPU_STOPPED = 0;
#if !SPC700_OPTIMIZE_SNES
@@ -1307,7 +1316,7 @@ static void spc700_set_irq_line(spc700i_cpu *cpustate,int line, int state)
/* Execute instructions for <clocks> cycles */
static CPU_EXECUTE( spc700 )
{
- spc700i_cpu *cpustate = device->token;
+ spc700i_cpu *cpustate = get_safe_token(device);
CLOCKS = CPU_STOPPED ? 0 : cycles;
while(CLOCKS > 0)
@@ -1586,7 +1595,7 @@ static CPU_EXECUTE( spc700 )
static CPU_SET_INFO( spc700 )
{
- spc700i_cpu *cpustate = device->token;
+ spc700i_cpu *cpustate = get_safe_token(device);
switch (state)
{
@@ -1613,7 +1622,7 @@ static CPU_SET_INFO( spc700 )
CPU_GET_INFO( spc700 )
{
- spc700i_cpu *cpustate = (device != NULL) ? device->token : NULL;
+ spc700i_cpu *cpustate = (device != NULL && device->token != NULL) ? get_safe_token(device) : NULL;
uint p = 0;
if (cpustate != NULL)