pointerified the psx cpu core & switched it to the new memory functions. Changed some MIPS_* to PSXCPU_*

This commit is contained in:
smf- 2008-11-19 19:32:44 +00:00
parent 2cd2454c39
commit 24022b72ca
8 changed files with 1540 additions and 1499 deletions

2
.gitattributes vendored
View File

@ -291,9 +291,9 @@ src/emu/cpu/mips/mips3drc.c svneol=native#text/plain
src/emu/cpu/mips/mips3dsm.c svneol=native#text/plain
src/emu/cpu/mips/mips3fe.c svneol=native#text/plain
src/emu/cpu/mips/mips3fe.h svneol=native#text/plain
src/emu/cpu/mips/mipsdasm.c svneol=native#text/plain
src/emu/cpu/mips/psx.c svneol=native#text/plain
src/emu/cpu/mips/psx.h svneol=native#text/plain
src/emu/cpu/mips/psxdasm.c svneol=native#text/plain
src/emu/cpu/mips/r3000.c svneol=native#text/plain
src/emu/cpu/mips/r3000.h svneol=native#text/plain
src/emu/cpu/mips/r3kdasm.c svneol=native#text/plain

View File

@ -1500,7 +1500,7 @@ CPUDEFS += -DHAS_CXD8661R=$(if $(filter CXD8661R,$(CPUS)),1,0)
ifneq ($(filter PSXCPU CXD8661R,$(CPUS)),)
OBJDIRS += $(CPUOBJ)/mips
CPUOBJS += $(CPUOBJ)/mips/psx.o
DBGOBJS += $(CPUOBJ)/mips/mipsdasm.o
DBGOBJS += $(CPUOBJ)/mips/psxdasm.o
endif
$(CPUOBJ)/mips/psx.o: $(CPUSRC)/mips/psx.c \

View File

@ -290,7 +290,7 @@ int main( int argc, char *argv[] )
switch( cpu )
{
case CPU_PSX:
i = DasmMIPS( buf, pc + offset, filebuf + pc );
i = DasmPSXCPU( NULL, buf, pc + offset, filebuf + pc );
break;
case CPU_R3000:
{

View File

@ -1,2 +1,2 @@
..\..\..\..\dismips.exe: dismips.c mipsdasm.c r3kdasm.c mips3dsm.c ../../../lib/util/corestr.c
gcc -O3 -Wall -I../../../emu -I../../../osd -I../../../lib/util -DINLINE="static __inline__" -DSTANDALONE -DLSB_FIRST dismips.c mipsdasm.c r3kdasm.c mips3dsm.c ../../../lib/util/corestr.c -o../../../../dismips
..\..\..\..\dismips.exe: dismips.c psxdasm.c r3kdasm.c mips3dsm.c ../../../lib/util/corestr.c
gcc -O3 -Wall -I../../../emu -I../../../osd -I../../../lib/util -DINLINE="static __inline__" -DSTANDALONE -DLSB_FIRST dismips.c psxdasm.c r3kdasm.c mips3dsm.c ../../../lib/util/corestr.c -o../../../../dismips

File diff suppressed because it is too large Load Diff

View File

@ -5,84 +5,82 @@
#include "cpuintrf.h"
#define MIPS_DELAYR_PC ( 32 )
#define MIPS_DELAYR_NOTPC ( 33 )
#define PSXCPU_DELAYR_PC ( 32 )
#define PSXCPU_DELAYR_NOTPC ( 33 )
enum
{
MIPS_PC = 1,
MIPS_DELAYV, MIPS_DELAYR,
MIPS_HI, MIPS_LO,
MIPS_BIU,
MIPS_R0, MIPS_R1,
MIPS_R2, MIPS_R3,
MIPS_R4, MIPS_R5,
MIPS_R6, MIPS_R7,
MIPS_R8, MIPS_R9,
MIPS_R10, MIPS_R11,
MIPS_R12, MIPS_R13,
MIPS_R14, MIPS_R15,
MIPS_R16, MIPS_R17,
MIPS_R18, MIPS_R19,
MIPS_R20, MIPS_R21,
MIPS_R22, MIPS_R23,
MIPS_R24, MIPS_R25,
MIPS_R26, MIPS_R27,
MIPS_R28, MIPS_R29,
MIPS_R30, MIPS_R31,
MIPS_CP0R0, MIPS_CP0R1,
MIPS_CP0R2, MIPS_CP0R3,
MIPS_CP0R4, MIPS_CP0R5,
MIPS_CP0R6, MIPS_CP0R7,
MIPS_CP0R8, MIPS_CP0R9,
MIPS_CP0R10, MIPS_CP0R11,
MIPS_CP0R12, MIPS_CP0R13,
MIPS_CP0R14, MIPS_CP0R15,
MIPS_CP2DR0, MIPS_CP2DR1,
MIPS_CP2DR2, MIPS_CP2DR3,
MIPS_CP2DR4, MIPS_CP2DR5,
MIPS_CP2DR6, MIPS_CP2DR7,
MIPS_CP2DR8, MIPS_CP2DR9,
MIPS_CP2DR10, MIPS_CP2DR11,
MIPS_CP2DR12, MIPS_CP2DR13,
MIPS_CP2DR14, MIPS_CP2DR15,
MIPS_CP2DR16, MIPS_CP2DR17,
MIPS_CP2DR18, MIPS_CP2DR19,
MIPS_CP2DR20, MIPS_CP2DR21,
MIPS_CP2DR22, MIPS_CP2DR23,
MIPS_CP2DR24, MIPS_CP2DR25,
MIPS_CP2DR26, MIPS_CP2DR27,
MIPS_CP2DR28, MIPS_CP2DR29,
MIPS_CP2DR30, MIPS_CP2DR31,
MIPS_CP2CR0, MIPS_CP2CR1,
MIPS_CP2CR2, MIPS_CP2CR3,
MIPS_CP2CR4, MIPS_CP2CR5,
MIPS_CP2CR6, MIPS_CP2CR7,
MIPS_CP2CR8, MIPS_CP2CR9,
MIPS_CP2CR10, MIPS_CP2CR11,
MIPS_CP2CR12, MIPS_CP2CR13,
MIPS_CP2CR14, MIPS_CP2CR15,
MIPS_CP2CR16, MIPS_CP2CR17,
MIPS_CP2CR18, MIPS_CP2CR19,
MIPS_CP2CR20, MIPS_CP2CR21,
MIPS_CP2CR22, MIPS_CP2CR23,
MIPS_CP2CR24, MIPS_CP2CR25,
MIPS_CP2CR26, MIPS_CP2CR27,
MIPS_CP2CR28, MIPS_CP2CR29,
MIPS_CP2CR30, MIPS_CP2CR31
PSXCPU_PC = 1,
PSXCPU_DELAYV, PSXCPU_DELAYR,
PSXCPU_HI, PSXCPU_LO,
PSXCPU_BIU,
PSXCPU_R0, PSXCPU_R1,
PSXCPU_R2, PSXCPU_R3,
PSXCPU_R4, PSXCPU_R5,
PSXCPU_R6, PSXCPU_R7,
PSXCPU_R8, PSXCPU_R9,
PSXCPU_R10, PSXCPU_R11,
PSXCPU_R12, PSXCPU_R13,
PSXCPU_R14, PSXCPU_R15,
PSXCPU_R16, PSXCPU_R17,
PSXCPU_R18, PSXCPU_R19,
PSXCPU_R20, PSXCPU_R21,
PSXCPU_R22, PSXCPU_R23,
PSXCPU_R24, PSXCPU_R25,
PSXCPU_R26, PSXCPU_R27,
PSXCPU_R28, PSXCPU_R29,
PSXCPU_R30, PSXCPU_R31,
PSXCPU_CP0R0, PSXCPU_CP0R1,
PSXCPU_CP0R2, PSXCPU_CP0R3,
PSXCPU_CP0R4, PSXCPU_CP0R5,
PSXCPU_CP0R6, PSXCPU_CP0R7,
PSXCPU_CP0R8, PSXCPU_CP0R9,
PSXCPU_CP0R10, PSXCPU_CP0R11,
PSXCPU_CP0R12, PSXCPU_CP0R13,
PSXCPU_CP0R14, PSXCPU_CP0R15,
PSXCPU_CP2DR0, PSXCPU_CP2DR1,
PSXCPU_CP2DR2, PSXCPU_CP2DR3,
PSXCPU_CP2DR4, PSXCPU_CP2DR5,
PSXCPU_CP2DR6, PSXCPU_CP2DR7,
PSXCPU_CP2DR8, PSXCPU_CP2DR9,
PSXCPU_CP2DR10, PSXCPU_CP2DR11,
PSXCPU_CP2DR12, PSXCPU_CP2DR13,
PSXCPU_CP2DR14, PSXCPU_CP2DR15,
PSXCPU_CP2DR16, PSXCPU_CP2DR17,
PSXCPU_CP2DR18, PSXCPU_CP2DR19,
PSXCPU_CP2DR20, PSXCPU_CP2DR21,
PSXCPU_CP2DR22, PSXCPU_CP2DR23,
PSXCPU_CP2DR24, PSXCPU_CP2DR25,
PSXCPU_CP2DR26, PSXCPU_CP2DR27,
PSXCPU_CP2DR28, PSXCPU_CP2DR29,
PSXCPU_CP2DR30, PSXCPU_CP2DR31,
PSXCPU_CP2CR0, PSXCPU_CP2CR1,
PSXCPU_CP2CR2, PSXCPU_CP2CR3,
PSXCPU_CP2CR4, PSXCPU_CP2CR5,
PSXCPU_CP2CR6, PSXCPU_CP2CR7,
PSXCPU_CP2CR8, PSXCPU_CP2CR9,
PSXCPU_CP2CR10, PSXCPU_CP2CR11,
PSXCPU_CP2CR12, PSXCPU_CP2CR13,
PSXCPU_CP2CR14, PSXCPU_CP2CR15,
PSXCPU_CP2CR16, PSXCPU_CP2CR17,
PSXCPU_CP2CR18, PSXCPU_CP2CR19,
PSXCPU_CP2CR20, PSXCPU_CP2CR21,
PSXCPU_CP2CR22, PSXCPU_CP2CR23,
PSXCPU_CP2CR24, PSXCPU_CP2CR25,
PSXCPU_CP2CR26, PSXCPU_CP2CR27,
PSXCPU_CP2CR28, PSXCPU_CP2CR29,
PSXCPU_CP2CR30, PSXCPU_CP2CR31
};
#define MIPS_INT_NONE ( -1 )
#define PSXCPU_IRQ0 ( 0 )
#define PSXCPU_IRQ1 ( 1 )
#define PSXCPU_IRQ2 ( 2 )
#define PSXCPU_IRQ3 ( 3 )
#define PSXCPU_IRQ4 ( 4 )
#define PSXCPU_IRQ5 ( 5 )
#define MIPS_IRQ0 ( 0 )
#define MIPS_IRQ1 ( 1 )
#define MIPS_IRQ2 ( 2 )
#define MIPS_IRQ3 ( 3 )
#define MIPS_IRQ4 ( 4 )
#define MIPS_IRQ5 ( 5 )
#define MIPS_BYTE_EXTEND( a ) ( (INT32)(INT8)a )
#define MIPS_WORD_EXTEND( a ) ( (INT32)(INT16)a )
#define PSXCPU_BYTE_EXTEND( a ) ( (INT32)(INT8)a )
#define PSXCPU_WORD_EXTEND( a ) ( (INT32)(INT16)a )
#define INS_OP( op ) ( ( op >> 26 ) & 63 )
#define INS_RS( op ) ( ( op >> 21 ) & 31 )
@ -205,10 +203,16 @@ enum
#define CF_TLBP ( 8 )
#define CF_RFE ( 16 )
extern unsigned DasmMIPS( char *buffer, UINT32 pc, const UINT8 *opram );
typedef struct _DasmPSXCPU_state DasmPSXCPU_state;
#if (HAS_PSXCPU)
extern CPU_GET_INFO( psxcpu );
#endif
struct _DasmPSXCPU_state
{
UINT32 pc;
int delayr;
UINT32 delayv;
UINT32 r[ 32 ];
};
extern unsigned DasmPSXCPU( DasmPSXCPU_state *state, char *buffer, UINT32 pc, const UINT8 *opram );
#endif /* __PSX_H__ */

View File

@ -1,5 +1,5 @@
/*
* MIPS disassembler for the MAME project written by smf
* PSXCPU disassembler for the MAME project written by smf
*
*/
@ -120,42 +120,38 @@ static const char *const s_gtelm[] =
"0", "1"
};
static char *effective_address( UINT32 pc, UINT32 op )
static char *effective_address( DasmPSXCPU_state *state, UINT32 pc, UINT32 op )
{
static char s_address[ 20 ];
#ifndef STANDALONE
if( pc == cpu_get_pc(Machine->activecpu) )
if( state != NULL && state->pc == pc )
{
sprintf( s_address, "%s(%s) ; 0x%08x", make_signed_hex_str_16( INS_IMMEDIATE( op ) ), s_cpugenreg[ INS_RS( op ) ],
(UINT32)( cpu_get_reg( Machine->activecpu, MIPS_R0 + INS_RS( op ) ) + (INT16)INS_IMMEDIATE( op ) ) );
(UINT32)( state->r[ INS_RS( op ) ] + (INT16)INS_IMMEDIATE( op ) ) );
return s_address;
}
#endif
sprintf( s_address, "%s(%s)", make_signed_hex_str_16( INS_IMMEDIATE( op ) ), s_cpugenreg[ INS_RS( op ) ] );
return s_address;
}
static UINT32 relative_address( UINT32 pc, UINT32 op )
static UINT32 relative_address( DasmPSXCPU_state *state, UINT32 pc, UINT32 op )
{
UINT32 nextpc = pc + 4;
#ifndef STANDALONE
if( pc == cpu_get_pc(Machine->activecpu) && cpu_get_reg( Machine->activecpu, MIPS_DELAYR ) == 32 )
if( state != NULL && state->pc == pc && state->delayr == PSXCPU_DELAYR_PC )
{
nextpc = cpu_get_reg( Machine->activecpu, MIPS_DELAYV );
nextpc = state->delayv;
}
#endif
return nextpc + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( op ) ) << 2 );
return nextpc + ( PSXCPU_WORD_EXTEND( INS_IMMEDIATE( op ) ) << 2 );
}
static UINT32 jump_address( UINT32 pc, UINT32 op )
static UINT32 jump_address( DasmPSXCPU_state *state, UINT32 pc, UINT32 op )
{
UINT32 nextpc = pc + 4;
#ifndef STANDALONE
if( pc == cpu_get_pc(Machine->activecpu) && cpu_get_reg( Machine->activecpu, MIPS_DELAYR ) == 32 )
if( state != NULL && state->pc == pc && state->delayr == PSXCPU_DELAYR_PC )
{
nextpc = cpu_get_reg( Machine->activecpu, MIPS_DELAYV );
nextpc = state->delayv;
}
#endif
return ( nextpc & 0xf0000000 ) + ( INS_TARGET( op ) << 2 );
}
@ -185,7 +181,7 @@ static char *upper_address( UINT32 op, const UINT8 *opram )
return s_address;
}
unsigned DasmMIPS( char *buffer, UINT32 pc, const UINT8 *opram )
unsigned DasmPSXCPU( DasmPSXCPU_state *state, char *buffer, UINT32 pc, const UINT8 *opram )
{
UINT32 op;
const UINT8 *oldopram;
@ -309,45 +305,45 @@ unsigned DasmMIPS( char *buffer, UINT32 pc, const UINT8 *opram )
case RT_BLTZ:
if( INS_RT( op ) == RT_BLTZAL )
{
sprintf( buffer, "bltzal %s,$%08x", s_cpugenreg[ INS_RS( op ) ], relative_address( pc, op ) );
sprintf( buffer, "bltzal %s,$%08x", s_cpugenreg[ INS_RS( op ) ], relative_address( state, pc, op ) );
flags = DASMFLAG_STEP_OVER | DASMFLAG_STEP_OVER_EXTRA( 1 );
}
else
{
sprintf( buffer, "bltz %s,$%08x", s_cpugenreg[ INS_RS( op ) ], relative_address( pc, op ) );
sprintf( buffer, "bltz %s,$%08x", s_cpugenreg[ INS_RS( op ) ], relative_address( state, pc, op ) );
}
break;
case RT_BGEZ:
if( INS_RT( op ) == RT_BGEZAL )
{
sprintf( buffer, "bgezal %s,$%08x", s_cpugenreg[ INS_RS( op ) ], relative_address( pc, op ) );
sprintf( buffer, "bgezal %s,$%08x", s_cpugenreg[ INS_RS( op ) ], relative_address( state, pc, op ) );
flags = DASMFLAG_STEP_OVER | DASMFLAG_STEP_OVER_EXTRA( 1 );
}
else
{
sprintf( buffer, "bgez %s,$%08x", s_cpugenreg[ INS_RS( op ) ], relative_address( pc, op ) );
sprintf( buffer, "bgez %s,$%08x", s_cpugenreg[ INS_RS( op ) ], relative_address( state, pc, op ) );
}
break;
}
break;
case OP_J:
sprintf( buffer, "j $%08x", jump_address( pc, op ) );
sprintf( buffer, "j $%08x", jump_address( state, pc, op ) );
break;
case OP_JAL:
sprintf( buffer, "jal $%08x", jump_address( pc, op ) );
sprintf( buffer, "jal $%08x", jump_address( state, pc, op ) );
flags = DASMFLAG_STEP_OVER | DASMFLAG_STEP_OVER_EXTRA( 1 );
break;
case OP_BEQ:
sprintf( buffer, "beq %s,%s,$%08x", s_cpugenreg[ INS_RS( op ) ], s_cpugenreg[ INS_RT( op ) ], relative_address( pc, op ) );
sprintf( buffer, "beq %s,%s,$%08x", s_cpugenreg[ INS_RS( op ) ], s_cpugenreg[ INS_RT( op ) ], relative_address( state, pc, op ) );
break;
case OP_BNE:
sprintf( buffer, "bne %s,%s,$%08x", s_cpugenreg[ INS_RS( op ) ], s_cpugenreg[ INS_RT( op ) ], relative_address( pc, op ) );
sprintf( buffer, "bne %s,%s,$%08x", s_cpugenreg[ INS_RS( op ) ], s_cpugenreg[ INS_RT( op ) ], relative_address( state, pc, op ) );
break;
case OP_BLEZ:
sprintf( buffer, "blez %s,%s,$%08x", s_cpugenreg[ INS_RS( op ) ], s_cpugenreg[ INS_RT( op ) ], relative_address( pc, op ) );
sprintf( buffer, "blez %s,%s,$%08x", s_cpugenreg[ INS_RS( op ) ], s_cpugenreg[ INS_RT( op ) ], relative_address( state, pc, op ) );
break;
case OP_BGTZ:
sprintf( buffer, "bgtz %s,%s,$%08x", s_cpugenreg[ INS_RS( op ) ], s_cpugenreg[ INS_RT( op ) ], relative_address( pc, op ) );
sprintf( buffer, "bgtz %s,%s,$%08x", s_cpugenreg[ INS_RS( op ) ], s_cpugenreg[ INS_RT( op ) ], relative_address( state, pc, op ) );
break;
case OP_ADDI:
sprintf( buffer, "addi %s,%s,%s", s_cpugenreg[ INS_RT( op ) ], s_cpugenreg[ INS_RS( op ) ], make_signed_hex_str_16( INS_IMMEDIATE( op ) ) );
@ -393,10 +389,10 @@ unsigned DasmMIPS( char *buffer, UINT32 pc, const UINT8 *opram )
switch( INS_BC( op ) )
{
case BC_BCF:
sprintf( buffer, "bc0f $%08x", relative_address( pc, op ) );
sprintf( buffer, "bc0f $%08x", relative_address( state, pc, op ) );
break;
case BC_BCT:
sprintf( buffer, "bc0t $%08x", relative_address( pc, op ) );
sprintf( buffer, "bc0t $%08x", relative_address( state, pc, op ) );
break;
}
break;
@ -449,10 +445,10 @@ unsigned DasmMIPS( char *buffer, UINT32 pc, const UINT8 *opram )
switch( INS_BC( op ) )
{
case BC_BCF:
sprintf( buffer, "bc1f $%08x", relative_address( pc, op ) );
sprintf( buffer, "bc1f $%08x", relative_address( state, pc, op ) );
break;
case BC_BCT:
sprintf( buffer, "bc1t $%08x", relative_address( pc, op ) );
sprintf( buffer, "bc1t $%08x", relative_address( state, pc, op ) );
break;
}
break;
@ -486,10 +482,10 @@ unsigned DasmMIPS( char *buffer, UINT32 pc, const UINT8 *opram )
switch( INS_BC( op ) )
{
case BC_BCF:
sprintf( buffer, "bc2f $%08x", relative_address( pc, op ) );
sprintf( buffer, "bc2f $%08x", relative_address( state, pc, op ) );
break;
case BC_BCT:
sprintf( buffer, "bc2t $%08x", relative_address( pc, op ) );
sprintf( buffer, "bc2t $%08x", relative_address( state, pc, op ) );
break;
}
break;
@ -664,10 +660,10 @@ unsigned DasmMIPS( char *buffer, UINT32 pc, const UINT8 *opram )
switch( INS_BC( op ) )
{
case BC_BCF:
sprintf( buffer, "bc3f $%08x", relative_address( pc, op ) );
sprintf( buffer, "bc3f $%08x", relative_address( state, pc, op ) );
break;
case BC_BCT:
sprintf( buffer, "bc3t $%08x", relative_address( pc, op ) );
sprintf( buffer, "bc3t $%08x", relative_address( state, pc, op ) );
break;
}
break;
@ -682,64 +678,64 @@ unsigned DasmMIPS( char *buffer, UINT32 pc, const UINT8 *opram )
}
break;
case OP_LB:
sprintf( buffer, "lb %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "lb %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_LH:
sprintf( buffer, "lh %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "lh %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_LWL:
sprintf( buffer, "lwl %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "lwl %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_LW:
sprintf( buffer, "lw %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "lw %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_LBU:
sprintf( buffer, "lbu %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "lbu %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_LHU:
sprintf( buffer, "lhu %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "lhu %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_LWR:
sprintf( buffer, "lwr %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "lwr %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_SB:
sprintf( buffer, "sb %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "sb %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_SH:
sprintf( buffer, "sh %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "sh %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_SWL:
sprintf( buffer, "swl %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "swl %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_SW:
sprintf( buffer, "sw %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "sw %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_SWR:
sprintf( buffer, "swr %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "swr %s,%s", s_cpugenreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_LWC0:
sprintf( buffer, "lwc0 %s,%s", s_cp0genreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "lwc0 %s,%s", s_cp0genreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_LWC1:
sprintf( buffer, "lwc1 %s,%s", s_cp1genreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "lwc1 %s,%s", s_cp1genreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_LWC2:
sprintf( buffer, "lwc2 %s,%s", s_cp2genreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "lwc2 %s,%s", s_cp2genreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_LWC3:
sprintf( buffer, "lwc3 %s,%s", s_cp2genreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "lwc3 %s,%s", s_cp2genreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_SWC0:
sprintf( buffer, "swc0 %s,%s", s_cp0genreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "swc0 %s,%s", s_cp0genreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_SWC1:
sprintf( buffer, "swc1 %s,%s", s_cp1genreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "swc1 %s,%s", s_cp1genreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_SWC2:
sprintf( buffer, "swc2 %s,%s", s_cp2genreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "swc2 %s,%s", s_cp2genreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
case OP_SWC3:
sprintf( buffer, "swc3 %s,%s", s_cp2genreg[ INS_RT( op ) ], effective_address( pc, op ) );
sprintf( buffer, "swc3 %s,%s", s_cp2genreg[ INS_RT( op ) ], effective_address( state, pc, op ) );
break;
}
return ( opram - oldopram ) | flags | DASMFLAG_SUPPORTED;

View File

@ -72,12 +72,12 @@ static void psx_irq_update( running_machine *machine )
if( ( m_n_irqdata & m_n_irqmask ) != 0 )
{
verboselog( 2, "psx irq assert\n" );
cpu_set_input_line(machine->cpu[0], MIPS_IRQ0, ASSERT_LINE );
cpu_set_input_line(machine->cpu[0], PSXCPU_IRQ0, ASSERT_LINE );
}
else
{
verboselog( 2, "psx irq clear\n" );
cpu_set_input_line(machine->cpu[0], MIPS_IRQ0, CLEAR_LINE );
cpu_set_input_line(machine->cpu[0], PSXCPU_IRQ0, CLEAR_LINE );
}
}