summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/powerpc/ppc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/powerpc/ppc.c')
-rw-r--r--src/emu/cpu/powerpc/ppc.c1065
1 files changed, 532 insertions, 533 deletions
diff --git a/src/emu/cpu/powerpc/ppc.c b/src/emu/cpu/powerpc/ppc.c
index ef9cc57ef19..3d748ae9f83 100644
--- a/src/emu/cpu/powerpc/ppc.c
+++ b/src/emu/cpu/powerpc/ppc.c
@@ -13,7 +13,7 @@ static const int mpc603e_pll_config[12][9] =
{ 0x2, 0x2, 0x2, 0x1, 0x1, 0x1, -1, 0x0, -1 },
{ -1, -1, -1, -1, -1, 0xc, -1, 0xc, -1 },
{ 0x5, 0x5, 0x5, 0x4, 0x4, 0x4, -1, -1, -1 },
- { -1, -1, -1, 0x6, 0x6, -1, -1, -1, -1 },
+ { -1, -1, -1, 0x6, 0x6, -1, -1, -1, -1 },
{ -1, -1, 0x8, 0x8, -1, -1, -1, -1, -1 },
{ -1, 0xe, 0xe, -1, -1, -1, -1, -1, -1 },
{ 0xa, 0xa, 0xa, -1, -1, -1, -1, -1, -1 },
@@ -84,116 +84,116 @@ static void ppc403_exception(int exception);
static UINT8 ppc403_spu_r(UINT32 a);
static void ppc403_spu_w(UINT32 a, UINT8 d);
-#define RD ((op >> 21) & 0x1F)
-#define RT ((op >> 21) & 0x1f)
-#define RS ((op >> 21) & 0x1f)
-#define RA ((op >> 16) & 0x1f)
-#define RB ((op >> 11) & 0x1f)
-#define RC ((op >> 6) & 0x1f)
-
-#define MB ((op >> 6) & 0x1f)
-#define ME ((op >> 1) & 0x1f)
-#define SH ((op >> 11) & 0x1f)
-#define BO ((op >> 21) & 0x1f)
-#define BI ((op >> 16) & 0x1f)
-#define CRFD ((op >> 23) & 0x7)
-#define CRFA ((op >> 18) & 0x7)
-#define FXM ((op >> 12) & 0xff)
-#define SPR (((op >> 16) & 0x1f) | ((op >> 6) & 0x3e0))
-
-#define SIMM16 (INT32)(INT16)(op & 0xffff)
-#define UIMM16 (UINT32)(op & 0xffff)
-
-#define RCBIT (op & 0x1)
-#define OEBIT (op & 0x400)
-#define AABIT (op & 0x2)
-#define LKBIT (op & 0x1)
-
-#define REG(x) (ppc.r[x])
-#define LR (ppc.lr)
-#define CTR (ppc.ctr)
-#define XER (ppc.xer)
-#define CR(x) (ppc.cr[x])
-#define MSR (ppc.msr)
-#define SRR0 (ppc.srr0)
-#define SRR1 (ppc.srr1)
-#define SRR2 (ppc.srr2)
-#define SRR3 (ppc.srr3)
-#define EVPR (ppc.evpr)
-#define EXIER (ppc.exier)
-#define EXISR (ppc.exisr)
-#define DEC (ppc.dec)
+#define RD ((op >> 21) & 0x1F)
+#define RT ((op >> 21) & 0x1f)
+#define RS ((op >> 21) & 0x1f)
+#define RA ((op >> 16) & 0x1f)
+#define RB ((op >> 11) & 0x1f)
+#define RC ((op >> 6) & 0x1f)
+
+#define MB ((op >> 6) & 0x1f)
+#define ME ((op >> 1) & 0x1f)
+#define SH ((op >> 11) & 0x1f)
+#define BO ((op >> 21) & 0x1f)
+#define BI ((op >> 16) & 0x1f)
+#define CRFD ((op >> 23) & 0x7)
+#define CRFA ((op >> 18) & 0x7)
+#define FXM ((op >> 12) & 0xff)
+#define SPR (((op >> 16) & 0x1f) | ((op >> 6) & 0x3e0))
+
+#define SIMM16 (INT32)(INT16)(op & 0xffff)
+#define UIMM16 (UINT32)(op & 0xffff)
+
+#define RCBIT (op & 0x1)
+#define OEBIT (op & 0x400)
+#define AABIT (op & 0x2)
+#define LKBIT (op & 0x1)
+
+#define REG(x) (ppc.r[x])
+#define LR (ppc.lr)
+#define CTR (ppc.ctr)
+#define XER (ppc.xer)
+#define CR(x) (ppc.cr[x])
+#define MSR (ppc.msr)
+#define SRR0 (ppc.srr0)
+#define SRR1 (ppc.srr1)
+#define SRR2 (ppc.srr2)
+#define SRR3 (ppc.srr3)
+#define EVPR (ppc.evpr)
+#define EXIER (ppc.exier)
+#define EXISR (ppc.exisr)
+#define DEC (ppc.dec)
// Stuff added for the 6xx
-#define FPR(x) (ppc.fpr[x])
-#define FM ((op >> 17) & 0xFF)
-#define SPRF (((op >> 6) & 0x3E0) | ((op >> 16) & 0x1F))
+#define FPR(x) (ppc.fpr[x])
+#define FM ((op >> 17) & 0xFF)
+#define SPRF (((op >> 6) & 0x3E0) | ((op >> 16) & 0x1F))
-#define CHECK_SUPERVISOR() \
- if((ppc.msr & 0x4000) != 0){ \
+#define CHECK_SUPERVISOR() \
+ if((ppc.msr & 0x4000) != 0){ \
}
-#define CHECK_FPU_AVAILABLE() \
- if((ppc.msr & 0x2000) == 0){ \
+#define CHECK_FPU_AVAILABLE() \
+ if((ppc.msr & 0x2000) == 0){ \
}
-static UINT32 ppc_field_xlat[256];
-
-
-
-#define FPSCR_FX 0x80000000
-#define FPSCR_FEX 0x40000000
-#define FPSCR_VX 0x20000000
-#define FPSCR_OX 0x10000000
-#define FPSCR_UX 0x08000000
-#define FPSCR_ZX 0x04000000
-#define FPSCR_XX 0x02000000
-
-
-
-#define BITMASK_0(n) (UINT32)(((UINT64)1 << n) - 1)
-#define CRBIT(x) ((ppc.cr[x / 4] & (1 << (3 - (x % 4)))) ? 1 : 0)
-#define _BIT(n) (1 << (n))
-#define GET_ROTATE_MASK(mb,me) (ppc_rotate_mask[mb][me])
-#define ADD_CA(r,a,b) ((UINT32)r < (UINT32)a)
-#define SUB_CA(r,a,b) (!((UINT32)a < (UINT32)b))
-#define ADD_OV(r,a,b) ((~((a) ^ (b)) & ((a) ^ (r))) & 0x80000000)
-#define SUB_OV(r,a,b) (( ((a) ^ (b)) & ((a) ^ (r))) & 0x80000000)
-
-#define XER_SO 0x80000000
-#define XER_OV 0x40000000
-#define XER_CA 0x20000000
-
-#define MSR_AP 0x00800000 /* Access privilege state (PPC602) */
-#define MSR_SA 0x00400000 /* Supervisor access mode (PPC602) */
-#define MSR_POW 0x00040000 /* Power Management Enable */
-#define MSR_WE 0x00040000
-#define MSR_CE 0x00020000
-#define MSR_ILE 0x00010000 /* Interrupt Little Endian Mode */
-#define MSR_EE 0x00008000 /* External Interrupt Enable */
-#define MSR_PR 0x00004000 /* Problem State */
-#define MSR_FP 0x00002000 /* Floating Point Available */
-#define MSR_ME 0x00001000 /* Machine Check Enable */
-#define MSR_FE0 0x00000800
-#define MSR_SE 0x00000400 /* Single Step Trace Enable */
-#define MSR_BE 0x00000200 /* Branch Trace Enable */
-#define MSR_DE 0x00000200
-#define MSR_FE1 0x00000100
-#define MSR_IP 0x00000040 /* Interrupt Prefix */
-#define MSR_IR 0x00000020 /* Instruction Relocate */
-#define MSR_DR 0x00000010 /* Data Relocate */
-#define MSR_PE 0x00000008
-#define MSR_PX 0x00000004
-#define MSR_RI 0x00000002 /* Recoverable Interrupt Enable */
-#define MSR_LE 0x00000001
-
-#define TSR_ENW 0x80000000
-#define TSR_WIS 0x40000000
-
-#define BYTE_REVERSE16(x) ((((x) >> 8) & 0xff) | (((x) << 8) & 0xff00))
-#define BYTE_REVERSE32(x) ((((x) >> 24) & 0xff) | (((x) >> 8) & 0xff00) | (((x) << 8) & 0xff0000) | (((x) << 24) & 0xff000000))
+static UINT32 ppc_field_xlat[256];
+
+
+
+#define FPSCR_FX 0x80000000
+#define FPSCR_FEX 0x40000000
+#define FPSCR_VX 0x20000000
+#define FPSCR_OX 0x10000000
+#define FPSCR_UX 0x08000000
+#define FPSCR_ZX 0x04000000
+#define FPSCR_XX 0x02000000
+
+
+
+#define BITMASK_0(n) (UINT32)(((UINT64)1 << n) - 1)
+#define CRBIT(x) ((ppc.cr[x / 4] & (1 << (3 - (x % 4)))) ? 1 : 0)
+#define _BIT(n) (1 << (n))
+#define GET_ROTATE_MASK(mb,me) (ppc_rotate_mask[mb][me])
+#define ADD_CA(r,a,b) ((UINT32)r < (UINT32)a)
+#define SUB_CA(r,a,b) (!((UINT32)a < (UINT32)b))
+#define ADD_OV(r,a,b) ((~((a) ^ (b)) & ((a) ^ (r))) & 0x80000000)
+#define SUB_OV(r,a,b) (( ((a) ^ (b)) & ((a) ^ (r))) & 0x80000000)
+
+#define XER_SO 0x80000000
+#define XER_OV 0x40000000
+#define XER_CA 0x20000000
+
+#define MSR_AP 0x00800000 /* Access privilege state (PPC602) */
+#define MSR_SA 0x00400000 /* Supervisor access mode (PPC602) */
+#define MSR_POW 0x00040000 /* Power Management Enable */
+#define MSR_WE 0x00040000
+#define MSR_CE 0x00020000
+#define MSR_ILE 0x00010000 /* Interrupt Little Endian Mode */
+#define MSR_EE 0x00008000 /* External Interrupt Enable */
+#define MSR_PR 0x00004000 /* Problem State */
+#define MSR_FP 0x00002000 /* Floating Point Available */
+#define MSR_ME 0x00001000 /* Machine Check Enable */
+#define MSR_FE0 0x00000800
+#define MSR_SE 0x00000400 /* Single Step Trace Enable */
+#define MSR_BE 0x00000200 /* Branch Trace Enable */
+#define MSR_DE 0x00000200
+#define MSR_FE1 0x00000100
+#define MSR_IP 0x00000040 /* Interrupt Prefix */
+#define MSR_IR 0x00000020 /* Instruction Relocate */
+#define MSR_DR 0x00000010 /* Data Relocate */
+#define MSR_PE 0x00000008
+#define MSR_PX 0x00000004
+#define MSR_RI 0x00000002 /* Recoverable Interrupt Enable */
+#define MSR_LE 0x00000001
+
+#define TSR_ENW 0x80000000
+#define TSR_WIS 0x40000000
+
+#define BYTE_REVERSE16(x) ((((x) >> 8) & 0xff) | (((x) << 8) & 0xff00))
+#define BYTE_REVERSE32(x) ((((x) >> 24) & 0xff) | (((x) >> 8) & 0xff00) | (((x) << 8) & 0xff0000) | (((x) << 24) & 0xff000000))
struct DMA_REGS {
UINT32 cr;
@@ -217,8 +217,8 @@ struct SPU_REGS {
};
union FPR {
- UINT64 id;
- double fd;
+ UINT64 id;
+ double fd;
};
union FPR32 {
@@ -303,7 +303,7 @@ struct PPC_REGS {
int interrupt_pending;
- UINT64 tb; /* 56-bit timebase register */
+ UINT64 tb; /* 56-bit timebase register */
device_irq_acknowledge_callback irq_callback;
legacy_cpu_device *device;
@@ -313,7 +313,7 @@ struct PPC_REGS {
UINT32 dec, dec_frac;
UINT32 fpscr;
- FPR fpr[32];
+ FPR fpr[32];
UINT32 sr[16];
int is603;
@@ -370,8 +370,8 @@ static int bus_freq_multiplier = 1;
static PPC_REGS ppc;
static UINT32 ppc_rotate_mask[32][32];
-#define ROPCODE(pc) memory_decrypted_read_dword(ppc.program, pc)
-#define ROPCODE64(pc) memory_decrypted_read_qword(ppc.program, DWORD_XOR_BE(pc))
+#define ROPCODE(pc) memory_decrypted_read_dword(ppc.program, pc)
+#define ROPCODE64(pc) memory_decrypted_read_qword(ppc.program, DWORD_XOR_BE(pc))
/*********************************************************************/
@@ -525,16 +525,16 @@ INLINE void ppc_set_spr(int spr, UINT32 value)
{
switch (spr)
{
- case SPR_LR: LR = value; return;
- case SPR_CTR: CTR = value; return;
- case SPR_XER: XER = value; return;
- case SPR_SRR0: ppc.srr0 = value; return;
- case SPR_SRR1: ppc.srr1 = value; return;
- case SPR_SPRG0: ppc.sprg[0] = value; return;
- case SPR_SPRG1: ppc.sprg[1] = value; return;
- case SPR_SPRG2: ppc.sprg[2] = value; return;
- case SPR_SPRG3: ppc.sprg[3] = value; return;
- case SPR_PVR: return;
+ case SPR_LR: LR = value; return;
+ case SPR_CTR: CTR = value; return;
+ case SPR_XER: XER = value; return;
+ case SPR_SRR0: ppc.srr0 = value; return;
+ case SPR_SRR1: ppc.srr1 = value; return;
+ case SPR_SPRG0: ppc.sprg[0] = value; return;
+ case SPR_SPRG1: ppc.sprg[1] = value; return;
+ case SPR_SPRG2: ppc.sprg[2] = value; return;
+ case SPR_SPRG3: ppc.sprg[3] = value; return;
+ case SPR_PVR: return;
}
if(IS_PPC602() || IS_PPC603()) {
@@ -562,63 +562,63 @@ INLINE void ppc_set_spr(int spr, UINT32 value)
ppc_write_timebase_h(value);
return;
- case SPR603E_HID0: ppc.hid0 = value; return;
- case SPR603E_HID1: ppc.hid1 = value; return;
- case SPR603E_HID2: ppc.hid2 = value; return;
-
- case SPR603E_DSISR: ppc.dsisr = value; return;
- case SPR603E_DAR: ppc.dar = value; return;
- case SPR603E_EAR: ppc.ear = value; return;
- case SPR603E_DMISS: ppc.dmiss = value; return;
- case SPR603E_DCMP: ppc.dcmp = value; return;
- case SPR603E_HASH1: ppc.hash1 = value; return;
- case SPR603E_HASH2: ppc.hash2 = value; return;
- case SPR603E_IMISS: ppc.imiss = value; return;
- case SPR603E_ICMP: ppc.icmp = value; return;
- case SPR603E_RPA: ppc.rpa = value; return;
-
- case SPR603E_IBAT0L: ppc.ibat[0].l = value; return;
- case SPR603E_IBAT0U: ppc.ibat[0].u = value; return;
- case SPR603E_IBAT1L: ppc.ibat[1].l = value; return;
- case SPR603E_IBAT1U: ppc.ibat[1].u = value; return;
- case SPR603E_IBAT2L: ppc.ibat[2].l = value; return;
- case SPR603E_IBAT2U: ppc.ibat[2].u = value; return;
- case SPR603E_IBAT3L: ppc.ibat[3].l = value; return;
- case SPR603E_IBAT3U: ppc.ibat[3].u = value; return;
- case SPR603E_DBAT0L: ppc.dbat[0].l = value; return;
- case SPR603E_DBAT0U: ppc.dbat[0].u = value; return;
- case SPR603E_DBAT1L: ppc.dbat[1].l = value; return;
- case SPR603E_DBAT1U: ppc.dbat[1].u = value; return;
- case SPR603E_DBAT2L: ppc.dbat[2].l = value; return;
- case SPR603E_DBAT2U: ppc.dbat[2].u = value; return;
- case SPR603E_DBAT3L: ppc.dbat[3].l = value; return;
- case SPR603E_DBAT3U: ppc.dbat[3].u = value; return;
+ case SPR603E_HID0: ppc.hid0 = value; return;
+ case SPR603E_HID1: ppc.hid1 = value; return;
+ case SPR603E_HID2: ppc.hid2 = value; return;
+
+ case SPR603E_DSISR: ppc.dsisr = value; return;
+ case SPR603E_DAR: ppc.dar = value; return;
+ case SPR603E_EAR: ppc.ear = value; return;
+ case SPR603E_DMISS: ppc.dmiss = value; return;
+ case SPR603E_DCMP: ppc.dcmp = value; return;
+ case SPR603E_HASH1: ppc.hash1 = value; return;
+ case SPR603E_HASH2: ppc.hash2 = value; return;
+ case SPR603E_IMISS: ppc.imiss = value; return;
+ case SPR603E_ICMP: ppc.icmp = value; return;
+ case SPR603E_RPA: ppc.rpa = value; return;
+
+ case SPR603E_IBAT0L: ppc.ibat[0].l = value; return;
+ case SPR603E_IBAT0U: ppc.ibat[0].u = value; return;
+ case SPR603E_IBAT1L: ppc.ibat[1].l = value; return;
+ case SPR603E_IBAT1U: ppc.ibat[1].u = value; return;
+ case SPR603E_IBAT2L: ppc.ibat[2].l = value; return;
+ case SPR603E_IBAT2U: ppc.ibat[2].u = value; return;
+ case SPR603E_IBAT3L: ppc.ibat[3].l = value; return;
+ case SPR603E_IBAT3U: ppc.ibat[3].u = value; return;
+ case SPR603E_DBAT0L: ppc.dbat[0].l = value; return;
+ case SPR603E_DBAT0U: ppc.dbat[0].u = value; return;
+ case SPR603E_DBAT1L: ppc.dbat[1].l = value; return;
+ case SPR603E_DBAT1U: ppc.dbat[1].u = value; return;
+ case SPR603E_DBAT2L: ppc.dbat[2].l = value; return;
+ case SPR603E_DBAT2U: ppc.dbat[2].u = value; return;
+ case SPR603E_DBAT3L: ppc.dbat[3].l = value; return;
+ case SPR603E_DBAT3U: ppc.dbat[3].u = value; return;
case SPR603E_SDR1:
ppc.sdr1 = value;
return;
- case SPR603E_IABR: ppc.iabr = value; return;
+ case SPR603E_IABR: ppc.iabr = value; return;
}
}
if (ppc.is602) {
switch(spr)
{
- case SPR602_LT: ppc.lt = value; return;
- case SPR602_IBR: ppc.ibr = value; return;
- case SPR602_SEBR: ppc.sebr = value; return;
- case SPR602_SER: ppc.ser = value; return;
- case SPR602_SP: ppc.sp = value; return;
- case SPR602_TCR: ppc.tcr = value; return;
+ case SPR602_LT: ppc.lt = value; return;
+ case SPR602_IBR: ppc.ibr = value; return;
+ case SPR602_SEBR: ppc.sebr = value; return;
+ case SPR602_SER: ppc.ser = value; return;
+ case SPR602_SP: ppc.sp = value; return;
+ case SPR602_TCR: ppc.tcr = value; return;
}
}
if (IS_PPC403()) {
switch(spr)
{
- case SPR403_TBHI: ppc_write_timebase_h(value); return;
- case SPR403_TBLO: ppc_write_timebase_l(value); return;
+ case SPR403_TBHI: ppc_write_timebase_h(value); return;
+ case SPR403_TBLO: ppc_write_timebase_l(value); return;
case SPR403_TSR:
ppc.tsr &= ~value; // 1 clears, 0 does nothing
@@ -649,25 +649,25 @@ INLINE void ppc_set_spr(int spr, UINT32 value)
}
return;
- case SPR403_ESR: ppc.esr = value; return;
- case SPR403_ICCR: ppc.iccr = value; return;
- case SPR403_DCCR: ppc.dccr = value; return;
- case SPR403_EVPR: EVPR = value & 0xffff0000; return;
- case SPR403_PIT: ppc.pit = value; return;
- case SPR403_SGR: ppc.sgr = value; return;
- case SPR403_DBSR: ppc.dbsr = value; return;
- case SPR403_DCWR: return;
- case SPR403_PID: ppc.pid = value; return;
- case SPR403_PBL1: ppc.pbl1 = value; return;
- case SPR403_PBU1: ppc.pbu1 = value; return;
- case SPR403_PBL2: ppc.pbl2 = value; return;
- case SPR403_PBU2: ppc.pbu2 = value; return;
- case SPR403_SRR2: ppc.srr2 = value; return;
- case SPR403_SRR3: ppc.srr3 = value; return;
- case SPR403_DAC1: ppc.dac1 = value; return;
- case SPR403_DAC2: ppc.dac2 = value; return;
- case SPR403_IAC1: ppc.iac1 = value; return;
- case SPR403_IAC2: ppc.iac2 = value; return;
+ case SPR403_ESR: ppc.esr = value; return;
+ case SPR403_ICCR: ppc.iccr = value; return;
+ case SPR403_DCCR: ppc.dccr = value; return;
+ case SPR403_EVPR: EVPR = value & 0xffff0000; return;
+ case SPR403_PIT: ppc.pit = value; return;
+ case SPR403_SGR: ppc.sgr = value; return;
+ case SPR403_DBSR: ppc.dbsr = value; return;
+ case SPR403_DCWR: return;
+ case SPR403_PID: ppc.pid = value; return;
+ case SPR403_PBL1: ppc.pbl1 = value; return;
+ case SPR403_PBU1: ppc.pbu1 = value; return;
+ case SPR403_PBL2: ppc.pbl2 = value; return;
+ case SPR403_PBU2: ppc.pbu2 = value; return;
+ case SPR403_SRR2: ppc.srr2 = value; return;
+ case SPR403_SRR3: ppc.srr3 = value; return;
+ case SPR403_DAC1: ppc.dac1 = value; return;
+ case SPR403_DAC2: ppc.dac2 = value; return;
+ case SPR403_IAC1: ppc.iac1 = value; return;
+ case SPR403_IAC2: ppc.iac2 = value; return;
}
}
@@ -678,16 +678,16 @@ INLINE UINT32 ppc_get_spr(int spr)
{
switch(spr)
{
- case SPR_LR: return LR;
- case SPR_CTR: return CTR;
- case SPR_XER: return XER;
- case SPR_SRR0: return ppc.srr0;
- case SPR_SRR1: return ppc.srr1;
- case SPR_SPRG0: return ppc.sprg[0];
- case SPR_SPRG1: return ppc.sprg[1];
- case SPR_SPRG2: return ppc.sprg[2];
- case SPR_SPRG3: return ppc.sprg[3];
- case SPR_PVR: return ppc.pvr;
+ case SPR_LR: return LR;
+ case SPR_CTR: return CTR;
+ case SPR_XER: return XER;
+ case SPR_SRR0: return ppc.srr0;
+ case SPR_SRR1: return ppc.srr1;
+ case SPR_SPRG0: return ppc.sprg[0];
+ case SPR_SPRG1: return ppc.sprg[1];
+ case SPR_SPRG2: return ppc.sprg[2];
+ case SPR_SPRG3: return ppc.sprg[3];
+ case SPR_PVR: return ppc.pvr;
}
if (IS_PPC403())
@@ -695,42 +695,42 @@ INLINE UINT32 ppc_get_spr(int spr)
switch (spr)
{
case SPR403_TBLU:
- case SPR403_TBLO: return (UINT32)(ppc_read_timebase());
+ case SPR403_TBLO: return (UINT32)(ppc_read_timebase());
case SPR403_TBHU:
- case SPR403_TBHI: return (UINT32)(ppc_read_timebase() >> 32);
-
- case SPR403_EVPR: return EVPR;
- case SPR403_ESR: return ppc.esr;
- case SPR403_TCR: return ppc.tcr;
- case SPR403_ICCR: return ppc.iccr;
- case SPR403_DCCR: return ppc.dccr;
- case SPR403_PIT: return ppc.pit;
- case SPR403_DBSR: return ppc.dbsr;
- case SPR403_SGR: return ppc.sgr;
- case SPR403_TSR: return ppc.tsr;
- case SPR403_PBL1: return ppc.pbl1;
- case SPR403_PBU1: return ppc.pbu1;
- case SPR403_PBL2: return ppc.pbl2;
- case SPR403_PBU2: return ppc.pbu2;
- case SPR403_SRR2: return ppc.srr2;
- case SPR403_SRR3: return ppc.srr3;
- case SPR403_DAC1: return ppc.dac1;
- case SPR403_DAC2: return ppc.dac2;
- case SPR403_IAC1: return ppc.iac1;
- case SPR403_IAC2: return ppc.iac2;
+ case SPR403_TBHI: return (UINT32)(ppc_read_timebase() >> 32);
+
+ case SPR403_EVPR: return EVPR;
+ case SPR403_ESR: return ppc.esr;
+ case SPR403_TCR: return ppc.tcr;
+ case SPR403_ICCR: return ppc.iccr;
+ case SPR403_DCCR: return ppc.dccr;
+ case SPR403_PIT: return ppc.pit;
+ case SPR403_DBSR: return ppc.dbsr;
+ case SPR403_SGR: return ppc.sgr;
+ case SPR403_TSR: return ppc.tsr;
+ case SPR403_PBL1: return ppc.pbl1;
+ case SPR403_PBU1: return ppc.pbu1;
+ case SPR403_PBL2: return ppc.pbl2;
+ case SPR403_PBU2: return ppc.pbu2;
+ case SPR403_SRR2: return ppc.srr2;
+ case SPR403_SRR3: return ppc.srr3;
+ case SPR403_DAC1: return ppc.dac1;
+ case SPR403_DAC2: return ppc.dac2;
+ case SPR403_IAC1: return ppc.iac1;
+ case SPR403_IAC2: return ppc.iac2;
}
}
if (ppc.is602) {
switch(spr)
{
- case SPR602_LT: return ppc.lt;
- case SPR602_IBR: return ppc.ibr;
- case SPR602_ESASRR: return ppc.esasrr;
- case SPR602_SEBR: return ppc.sebr;
- case SPR602_SER: return ppc.ser;
- case SPR602_SP: return ppc.sp;
- case SPR602_TCR: return ppc.tcr;
+ case SPR602_LT: return ppc.lt;
+ case SPR602_IBR: return ppc.ibr;
+ case SPR602_ESASRR: return ppc.esasrr;
+ case SPR602_SEBR: return ppc.sebr;
+ case SPR602_SER: return ppc.ser;
+ case SPR602_SP: return ppc.sp;
+ case SPR602_TCR: return ppc.tcr;
}
}
@@ -746,39 +746,39 @@ INLINE UINT32 ppc_get_spr(int spr)
fatalerror("ppc: get_spr: TBU_R\n");
break;
- case SPR603E_TBL_W: return (UINT32)(ppc_read_timebase());
- case SPR603E_TBU_W: return (UINT32)(ppc_read_timebase() >> 32);
- case SPR603E_HID0: return ppc.hid0;
- case SPR603E_HID1: return ppc.hid1;
- case SPR603E_HID2: return ppc.hid2;
- case SPR603E_DEC: return read_decrementer();
- case SPR603E_SDR1: return ppc.sdr1;
- case SPR603E_DSISR: return ppc.dsisr;
- case SPR603E_DAR: return ppc.dar;
- case SPR603E_EAR: return ppc.ear;
- case SPR603E_DMISS: return ppc.dmiss;
- case SPR603E_DCMP: return ppc.dcmp;
- case SPR603E_HASH1: return ppc.hash1;
- case SPR603E_HASH2: return ppc.hash2;
- case SPR603E_IMISS: return ppc.imiss;
- case SPR603E_ICMP: return ppc.icmp;
- case SPR603E_RPA: return ppc.rpa;
- case SPR603E_IBAT0L: return ppc.ibat[0].l;
- case SPR603E_IBAT0U: return ppc.ibat[0].u;
- case SPR603E_IBAT1L: return ppc.ibat[1].l;
- case SPR603E_IBAT1U: return ppc.ibat[1].u;
- case SPR603E_IBAT2L: return ppc.ibat[2].l;
- case SPR603E_IBAT2U: return ppc.ibat[2].u;
- case SPR603E_IBAT3L: return ppc.ibat[3].l;
- case SPR603E_IBAT3U: return ppc.ibat[3].u;
- case SPR603E_DBAT0L: return ppc.dbat[0].l;
- case SPR603E_DBAT0U: return ppc.dbat[0].u;
- case SPR603E_DBAT1L: return ppc.dbat[1].l;
- case SPR603E_DBAT1U: return ppc.dbat[1].u;
- case SPR603E_DBAT2L: return ppc.dbat[2].l;
- case SPR603E_DBAT2U: return ppc.dbat[2].u;
- case SPR603E_DBAT3L: return ppc.dbat[3].l;
- case SPR603E_DBAT3U: return ppc.dbat[3].u;
+ case SPR603E_TBL_W: return (UINT32)(ppc_read_timebase());
+ case SPR603E_TBU_W: return (UINT32)(ppc_read_timebase() >> 32);
+ case SPR603E_HID0: return ppc.hid0;
+ case SPR603E_HID1: return ppc.hid1;
+ case SPR603E_HID2: return ppc.hid2;
+ case SPR603E_DEC: return read_decrementer();
+ case SPR603E_SDR1: return ppc.sdr1;
+ case SPR603E_DSISR: return ppc.dsisr;
+ case SPR603E_DAR: return ppc.dar;
+ case SPR603E_EAR: return ppc.ear;
+ case SPR603E_DMISS: return ppc.dmiss;
+ case SPR603E_DCMP: return ppc.dcmp;
+ case SPR603E_HASH1: return ppc.hash1;
+ case SPR603E_HASH2: return ppc.hash2;
+ case SPR603E_IMISS: return ppc.imiss;
+ case SPR603E_ICMP: return ppc.icmp;
+ case SPR603E_RPA: return ppc.rpa;
+ case SPR603E_IBAT0L: return ppc.ibat[0].l;
+ case SPR603E_IBAT0U: return ppc.ibat[0].u;
+ case SPR603E_IBAT1L: return ppc.ibat[1].l;
+ case SPR603E_IBAT1U: return ppc.ibat[1].u;
+ case SPR603E_IBAT2L: return ppc.ibat[2].l;
+ case SPR603E_IBAT2U: return ppc.ibat[2].u;
+ case SPR603E_IBAT3L: return ppc.ibat[3].l;
+ case SPR603E_IBAT3U: return ppc.ibat[3].u;
+ case SPR603E_DBAT0L: return ppc.dbat[0].l;
+ case SPR603E_DBAT0U: return ppc.dbat[0].u;
+ case SPR603E_DBAT1L: return ppc.dbat[1].l;
+ case SPR603E_DBAT1U: return ppc.dbat[1].u;
+ case SPR603E_DBAT2L: return ppc.dbat[2].l;
+ case SPR603E_DBAT2U: return ppc.dbat[2].u;
+ case SPR603E_DBAT3L: return ppc.dbat[3].l;
+ case SPR603E_DBAT3U: return ppc.dbat[3].u;
}
}
@@ -1139,14 +1139,14 @@ static CPU_INIT( ppc603 )
ppc.pvr = configdata->pvr;
multiplier = (float)((configdata->bus_frequency_multiplier >> 4) & 0xf) +
- (float)(configdata->bus_frequency_multiplier & 0xf) / 10.0f;
+ (float)(configdata->bus_frequency_multiplier & 0xf) / 10.0f;
bus_freq_multiplier = (int)(multiplier * 2);
switch(config->pvr)
{
- case PPC_MODEL_603E: pll_config = mpc603e_pll_config[bus_freq_multiplier-1][configdata->bus_frequency]; break;
- case PPC_MODEL_603EV: pll_config = mpc603ev_pll_config[bus_freq_multiplier-1][configdata->bus_frequency]; break;
- case PPC_MODEL_603R: pll_config = mpc603r_pll_config[bus_freq_multiplier-1][configdata->bus_frequency]; break;
+ case PPC_MODEL_603E: pll_config = mpc603e_pll_config[bus_freq_multiplier-1][configdata->bus_frequency]; break;
+ case PPC_MODEL_603EV: pll_config = mpc603ev_pll_config[bus_freq_multiplier-1][configdata->bus_frequency]; break;
+ case PPC_MODEL_603R: pll_config = mpc603r_pll_config[bus_freq_multiplier-1][configdata->bus_frequency]; break;
default: break;
}
@@ -1287,7 +1287,7 @@ static CPU_INIT( ppc602 )
ppc.pvr = configdata->pvr;
multiplier = (float)((configdata->bus_frequency_multiplier >> 4) & 0xf) +
- (float)(configdata->bus_frequency_multiplier & 0xf) / 10.0f;
+ (float)(configdata->bus_frequency_multiplier & 0xf) / 10.0f;
bus_freq_multiplier = (int)(multiplier * 2);
}
@@ -1428,7 +1428,7 @@ static CPU_INIT( mpc8240 )
ppc.pvr = configdata->pvr;
multiplier = (float)((configdata->bus_frequency_multiplier >> 4) & 0xf) +
- (float)(configdata->bus_frequency_multiplier & 0xf) / 10.0f;
+ (float)(configdata->bus_frequency_multiplier & 0xf) / 10.0f;
bus_freq_multiplier = (int)(multiplier * 2);
}
@@ -1554,7 +1554,7 @@ static CPU_INIT( ppc601 )
ppc.pvr = configdata->pvr;
multiplier = (float)((configdata->bus_frequency_multiplier >> 4) & 0xf) +
- (float)(configdata->bus_frequency_multiplier & 0xf) / 10.0f;
+ (float)(configdata->bus_frequency_multiplier & 0xf) / 10.0f;
bus_freq_multiplier = (int)(multiplier * 2);
ppc.hid1 = 0;
@@ -1684,7 +1684,7 @@ static CPU_INIT( ppc604 )
ppc.pvr = configdata->pvr;
multiplier = (float)((configdata->bus_frequency_multiplier >> 4) & 0xf) +
- (float)(configdata->bus_frequency_multiplier & 0xf) / 10.0f;
+ (float)(configdata->bus_frequency_multiplier & 0xf) / 10.0f;
bus_freq_multiplier = (int)(multiplier * 2);
ppc.hid1 = 0;
@@ -1706,47 +1706,47 @@ static CPU_SET_INFO( ppc )
switch (state)
{
case CPUINFO_INT_PC:
- case CPUINFO_INT_REGISTER + PPC_PC: ppc.pc = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_MSR: ppc_set_msr(info->i); break;
- case CPUINFO_INT_REGISTER + PPC_CR: ppc_set_cr(info->i); break;
- case CPUINFO_INT_REGISTER + PPC_LR: LR = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_CTR: CTR = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_XER: XER = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_SRR0: SRR0 = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_SRR1: SRR1 = info->i; break;
-
- case CPUINFO_INT_REGISTER + PPC_R0: ppc.r[0] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R1: ppc.r[1] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R2: ppc.r[2] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R3: ppc.r[3] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R4: ppc.r[4] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R5: ppc.r[5] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R6: ppc.r[6] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R7: ppc.r[7] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R8: ppc.r[8] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R9: ppc.r[9] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R10: ppc.r[10] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R11: ppc.r[11] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R12: ppc.r[12] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R13: ppc.r[13] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R14: ppc.r[14] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R15: ppc.r[15] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R16: ppc.r[16] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R17: ppc.r[17] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R18: ppc.r[18] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R19: ppc.r[19] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R20: ppc.r[20] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R21: ppc.r[21] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R22: ppc.r[22] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R23: ppc.r[23] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R24: ppc.r[24] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R25: ppc.r[25] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R26: ppc.r[26] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R27: ppc.r[27] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R28: ppc.r[28] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R29: ppc.r[29] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R30: ppc.r[30] = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_R31: ppc.r[31] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_PC: ppc.pc = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_MSR: ppc_set_msr(info->i); break;
+ case CPUINFO_INT_REGISTER + PPC_CR: ppc_set_cr(info->i); break;
+ case CPUINFO_INT_REGISTER + PPC_LR: LR = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_CTR: CTR = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_XER: XER = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_SRR0: SRR0 = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_SRR1: SRR1 = info->i; break;
+
+ case CPUINFO_INT_REGISTER + PPC_R0: ppc.r[0] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R1: ppc.r[1] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R2: ppc.r[2] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R3: ppc.r[3] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R4: ppc.r[4] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R5: ppc.r[5] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R6: ppc.r[6] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R7: ppc.r[7] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R8: ppc.r[8] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R9: ppc.r[9] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R10: ppc.r[10] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R11: ppc.r[11] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R12: ppc.r[12] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R13: ppc.r[13] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R14: ppc.r[14] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R15: ppc.r[15] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R16: ppc.r[16] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R17: ppc.r[17] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R18: ppc.r[18] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R19: ppc.r[19] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R20: ppc.r[20] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R21: ppc.r[21] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R22: ppc.r[22] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R23: ppc.r[23] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R24: ppc.r[24] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R25: ppc.r[25] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R26: ppc.r[26] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R27: ppc.r[27] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R28: ppc.r[28] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R29: ppc.r[29] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R30: ppc.r[30] = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_R31: ppc.r[31] = info->i; break;
}
}
@@ -1759,9 +1759,9 @@ static CPU_SET_INFO( ppc403 )
}
switch(state)
{
- case CPUINFO_INT_REGISTER + PPC_EXIER: EXIER = info->i; break;
- case CPUINFO_INT_REGISTER + PPC_EXISR: EXISR = info->i; break;
- default: ppc_set_info(state, info); break;
+ case CPUINFO_INT_REGISTER + PPC_EXIER: EXIER = info->i; break;
+ case CPUINFO_INT_REGISTER + PPC_EXISR: EXISR = info->i; break;
+ default: ppc_set_info(state, info); break;
}
}
@@ -1774,9 +1774,9 @@ static CPU_SET_INFO( ppc603 )
}
switch(state)
{
- case CPUINFO_INT_REGISTER + PPC_DEC: write_decrementer(info->i); break;
- case CPUINFO_INT_INPUT_STATE + PPC_INPUT_LINE_SMI: ppc603_set_smi_line(info->i); break;
- default: ppc_set_info(state, info); break;
+ case CPUINFO_INT_REGISTER + PPC_DEC: write_decrementer(info->i); break;
+ case CPUINFO_INT_INPUT_STATE + PPC_INPUT_LINE_SMI: ppc603_set_smi_line(info->i); break;
+ default: ppc_set_info(state, info); break;
}
}
@@ -1785,131 +1785,131 @@ static CPU_GET_INFO( ppc )
switch(state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(ppc); break;
- case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
- case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
- case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
- case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
- case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
- case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
- case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
- case CPUINFO_INT_MIN_CYCLES: info->i = 1; break;
- case CPUINFO_INT_MAX_CYCLES: info->i = 40; break;
-
- case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 32; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
- case CPUINFO_INT_ADDRBUS_SHIFT + AS_PROGRAM: info->i = 0; break;
- case CPUINFO_INT_DATABUS_WIDTH + AS_DATA: info->i = 0; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_DATA: info->i = 0; break;
- case CPUINFO_INT_ADDRBUS_SHIFT + AS_DATA: info->i = 0; break;
- case CPUINFO_INT_DATABUS_WIDTH + AS_IO: info->i = 0; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_IO: info->i = 0; break;
- case CPUINFO_INT_ADDRBUS_SHIFT + AS_IO: info->i = 0; break;
-
- case CPUINFO_INT_INPUT_STATE: info->i = CLEAR_LINE; break;
-
- case CPUINFO_INT_PREVIOUSPC: /* not implemented */ break;
-
- case CPUINFO_INT_PC: /* intentional fallthrough */
- case CPUINFO_INT_REGISTER + PPC_PC: info->i = ppc.pc; break;
- case CPUINFO_INT_REGISTER + PPC_MSR: info->i = ppc_get_msr(); break;
- case CPUINFO_INT_REGISTER + PPC_CR: info->i = ppc_get_cr(); break;
- case CPUINFO_INT_REGISTER + PPC_LR: info->i = LR; break;
- case CPUINFO_INT_REGISTER + PPC_CTR: info->i = CTR; break;
- case CPUINFO_INT_REGISTER + PPC_XER: info->i = XER; break;
- case CPUINFO_INT_REGISTER + PPC_SRR0: info->i = SRR0; break;
- case CPUINFO_INT_REGISTER + PPC_SRR1: info->i = SRR1; break;
-
- case CPUINFO_INT_REGISTER + PPC_R0: info->i = ppc.r[0]; break;
- case CPUINFO_INT_REGISTER + PPC_R1: info->i = ppc.r[1]; break;
- case CPUINFO_INT_REGISTER + PPC_R2: info->i = ppc.r[2]; break;
- case CPUINFO_INT_REGISTER + PPC_R3: info->i = ppc.r[3]; break;
- case CPUINFO_INT_REGISTER + PPC_R4: info->i = ppc.r[4]; break;
- case CPUINFO_INT_REGISTER + PPC_R5: info->i = ppc.r[5]; break;
- case CPUINFO_INT_REGISTER + PPC_R6: info->i = ppc.r[6]; break;
- case CPUINFO_INT_REGISTER + PPC_R7: info->i = ppc.r[7]; break;
- case CPUINFO_INT_REGISTER + PPC_R8: info->i = ppc.r[8]; break;
- case CPUINFO_INT_REGISTER + PPC_R9: info->i = ppc.r[9]; break;
- case CPUINFO_INT_REGISTER + PPC_R10: info->i = ppc.r[10]; break;
- case CPUINFO_INT_REGISTER + PPC_R11: info->i = ppc.r[11]; break;
- case CPUINFO_INT_REGISTER + PPC_R12: info->i = ppc.r[12]; break;
- case CPUINFO_INT_REGISTER + PPC_R13: info->i = ppc.r[13]; break;
- case CPUINFO_INT_REGISTER + PPC_R14: info->i = ppc.r[14]; break;
- case CPUINFO_INT_REGISTER + PPC_R15: info->i = ppc.r[15]; break;
- case CPUINFO_INT_REGISTER + PPC_R16: info->i = ppc.r[16]; break;
- case CPUINFO_INT_REGISTER + PPC_R17: info->i = ppc.r[17]; break;
- case CPUINFO_INT_REGISTER + PPC_R18: info->i = ppc.r[18]; break;
- case CPUINFO_INT_REGISTER + PPC_R19: info->i = ppc.r[19]; break;
- case CPUINFO_INT_REGISTER + PPC_R20: info->i = ppc.r[20]; break;
- case CPUINFO_INT_REGISTER + PPC_R21: info->i = ppc.r[21]; break;
- case CPUINFO_INT_REGISTER + PPC_R22: info->i = ppc.r[22]; break;
- case CPUINFO_INT_REGISTER + PPC_R23: info->i = ppc.r[23]; break;
- case CPUINFO_INT_REGISTER + PPC_R24: info->i = ppc.r[24]; break;
- case CPUINFO_INT_REGISTER + PPC_R25: info->i = ppc.r[25]; break;
- case CPUINFO_INT_REGISTER + PPC_R26: info->i = ppc.r[26]; break;
- case CPUINFO_INT_REGISTER + PPC_R27: info->i = ppc.r[27]; break;
- case CPUINFO_INT_REGISTER + PPC_R28: info->i = ppc.r[28]; break;
- case CPUINFO_INT_REGISTER + PPC_R29: info->i = ppc.r[29]; break;
- case CPUINFO_INT_REGISTER + PPC_R30: info->i = ppc.r[30]; break;
- case CPUINFO_INT_REGISTER + PPC_R31: info->i = ppc.r[31]; break;
+ case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(ppc); break;
+ case CPUINFO_INT_INPUT_LINES: info->i = 1; break;
+ case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break;
+ case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
+ case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
+ case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
+ case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break;
+ case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break;
+ case CPUINFO_INT_MIN_CYCLES: info->i = 1; break;
+ case CPUINFO_INT_MAX_CYCLES: info->i = 40; break;
+
+ case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 32; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
+ case CPUINFO_INT_ADDRBUS_SHIFT + AS_PROGRAM: info->i = 0; break;
+ case CPUINFO_INT_DATABUS_WIDTH + AS_DATA: info->i = 0; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_DATA: info->i = 0; break;
+ case CPUINFO_INT_ADDRBUS_SHIFT + AS_DATA: info->i = 0; break;
+ case CPUINFO_INT_DATABUS_WIDTH + AS_IO: info->i = 0; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_IO: info->i = 0; break;
+ case CPUINFO_INT_ADDRBUS_SHIFT + AS_IO: info->i = 0; break;
+
+ case CPUINFO_INT_INPUT_STATE: info->i = CLEAR_LINE; break;
+
+ case CPUINFO_INT_PREVIOUSPC: /* not implemented */ break;
+
+ case CPUINFO_INT_PC: /* intentional fallthrough */
+ case CPUINFO_INT_REGISTER + PPC_PC: info->i = ppc.pc; break;
+ case CPUINFO_INT_REGISTER + PPC_MSR: info->i = ppc_get_msr(); break;
+ case CPUINFO_INT_REGISTER + PPC_CR: info->i = ppc_get_cr(); break;
+ case CPUINFO_INT_REGISTER + PPC_LR: info->i = LR; break;
+ case CPUINFO_INT_REGISTER + PPC_CTR: info->i = CTR; break;
+ case CPUINFO_INT_REGISTER + PPC_XER: info->i = XER; break;
+ case CPUINFO_INT_REGISTER + PPC_SRR0: info->i = SRR0; break;
+ case CPUINFO_INT_REGISTER + PPC_SRR1: info->i = SRR1; break;
+
+ case CPUINFO_INT_REGISTER + PPC_R0: info->i = ppc.r[0]; break;
+ case CPUINFO_INT_REGISTER + PPC_R1: info->i = ppc.r[1]; break;
+ case CPUINFO_INT_REGISTER + PPC_R2: info->i = ppc.r[2]; break;
+ case CPUINFO_INT_REGISTER + PPC_R3: info->i = ppc.r[3]; break;
+ case CPUINFO_INT_REGISTER + PPC_R4: info->i = ppc.r[4]; break;
+ case CPUINFO_INT_REGISTER + PPC_R5: info->i = ppc.r[5]; break;
+ case CPUINFO_INT_REGISTER + PPC_R6: info->i = ppc.r[6]; break;
+ case CPUINFO_INT_REGISTER + PPC_R7: info->i = ppc.r[7]; break;
+ case CPUINFO_INT_REGISTER + PPC_R8: info->i = ppc.r[8]; break;
+ case CPUINFO_INT_REGISTER + PPC_R9: info->i = ppc.r[9]; break;
+ case CPUINFO_INT_REGISTER + PPC_R10: info->i = ppc.r[10]; break;
+ case CPUINFO_INT_REGISTER + PPC_R11: info->i = ppc.r[11]; break;
+ case CPUINFO_INT_REGISTER + PPC_R12: info->i = ppc.r[12]; break;
+ case CPUINFO_INT_REGISTER + PPC_R13: info->i = ppc.r[13]; break;
+ case CPUINFO_INT_REGISTER + PPC_R14: info->i = ppc.r[14]; break;
+ case CPUINFO_INT_REGISTER + PPC_R15: info->i = ppc.r[15]; break;
+ case CPUINFO_INT_REGISTER + PPC_R16: info->i = ppc.r[16]; break;
+ case CPUINFO_INT_REGISTER + PPC_R17: info->i = ppc.r[17]; break;
+ case CPUINFO_INT_REGISTER + PPC_R18: info->i = ppc.r[18]; break;
+ case CPUINFO_INT_REGISTER + PPC_R19: info->i = ppc.r[19]; break;
+ case CPUINFO_INT_REGISTER + PPC_R20: info->i = ppc.r[20]; break;
+ case CPUINFO_INT_REGISTER + PPC_R21: info->i = ppc.r[21]; break;
+ case CPUINFO_INT_REGISTER + PPC_R22: info->i = ppc.r[22]; break;
+ case CPUINFO_INT_REGISTER + PPC_R23: info->i = ppc.r[23]; break;
+ case CPUINFO_INT_REGISTER + PPC_R24: info->i = ppc.r[24]; break;
+ case CPUINFO_INT_REGISTER + PPC_R25: info->i = ppc.r[25]; break;
+ case CPUINFO_INT_REGISTER + PPC_R26: info->i = ppc.r[26]; break;
+ case CPUINFO_INT_REGISTER + PPC_R27: info->i = ppc.r[27]; break;
+ case CPUINFO_INT_REGISTER + PPC_R28: info->i = ppc.r[28]; break;
+ case CPUINFO_INT_REGISTER + PPC_R29: info->i = ppc.r[29]; break;
+ case CPUINFO_INT_REGISTER + PPC_R30: info->i = ppc.r[30]; break;
+ case CPUINFO_INT_REGISTER + PPC_R31: info->i = ppc.r[31]; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
- case CPUINFO_FCT_BURN: info->burn = NULL; break;
- case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(ppc); break;
- case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &ppc_icount; break;
+ case CPUINFO_FCT_BURN: info->burn = NULL; break;
+ case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(ppc); break;
+ case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &ppc_icount; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case CPUINFO_STR_NAME: strcpy(info->s, "PPC403"); break;
- case CPUINFO_STR_FAMILY: strcpy(info->s, "PowerPC"); break;
- case CPUINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
- case CPUINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
- case CPUINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
-
- case CPUINFO_STR_FLAGS: strcpy(info->s, " "); break;
-
- case CPUINFO_STR_REGISTER + PPC_PC: sprintf(info->s, "PC: %08X", ppc.pc); break;
- case CPUINFO_STR_REGISTER + PPC_MSR: sprintf(info->s, "MSR: %08X", ppc_get_msr()); break;
- case CPUINFO_STR_REGISTER + PPC_CR: sprintf(info->s, "CR: %08X", ppc_get_cr()); break;
- case CPUINFO_STR_REGISTER + PPC_LR: sprintf(info->s, "LR: %08X", LR); break;
- case CPUINFO_STR_REGISTER + PPC_CTR: sprintf(info->s, "CTR: %08X", CTR); break;
- case CPUINFO_STR_REGISTER + PPC_XER: sprintf(info->s, "XER: %08X", XER); break;
- case CPUINFO_STR_REGISTER + PPC_SRR0: sprintf(info->s, "SRR0: %08X", SRR0); break;
- case CPUINFO_STR_REGISTER + PPC_SRR1: sprintf(info->s, "SRR1: %08X", SRR1); break;
-
- case CPUINFO_STR_REGISTER + PPC_R0: sprintf(info->s, "R0: %08X", ppc.r[0]); break;
- case CPUINFO_STR_REGISTER + PPC_R1: sprintf(info->s, "R1: %08X", ppc.r[1]); break;
- case CPUINFO_STR_REGISTER + PPC_R2: sprintf(info->s, "R2: %08X", ppc.r[2]); break;
- case CPUINFO_STR_REGISTER + PPC_R3: sprintf(info->s, "R3: %08X", ppc.r[3]); break;
- case CPUINFO_STR_REGISTER + PPC_R4: sprintf(info->s, "R4: %08X", ppc.r[4]); break;
- case CPUINFO_STR_REGISTER + PPC_R5: sprintf(info->s, "R5: %08X", ppc.r[5]); break;
- case CPUINFO_STR_REGISTER + PPC_R6: sprintf(info->s, "R6: %08X", ppc.r[6]); break;
- case CPUINFO_STR_REGISTER + PPC_R7: sprintf(info->s, "R7: %08X", ppc.r[7]); break;
- case CPUINFO_STR_REGISTER + PPC_R8: sprintf(info->s, "R8: %08X", ppc.r[8]); break;
- case CPUINFO_STR_REGISTER + PPC_R9: sprintf(info->s, "R9: %08X", ppc.r[9]); break;
- case CPUINFO_STR_REGISTER + PPC_R10: sprintf(info->s, "R10: %08X", ppc.r[10]); break;
- case CPUINFO_STR_REGISTER + PPC_R11: sprintf(info->s, "R11: %08X", ppc.r[11]); break;
- case CPUINFO_STR_REGISTER + PPC_R12: sprintf(info->s, "R12: %08X", ppc.r[12]); break;
- case CPUINFO_STR_REGISTER + PPC_R13: sprintf(info->s, "R13: %08X", ppc.r[13]); break;
- case CPUINFO_STR_REGISTER + PPC_R14: sprintf(info->s, "R14: %08X", ppc.r[14]); break;
- case CPUINFO_STR_REGISTER + PPC_R15: sprintf(info->s, "R15: %08X", ppc.r[15]); break;
- case CPUINFO_STR_REGISTER + PPC_R16: sprintf(info->s, "R16: %08X", ppc.r[16]); break;
- case CPUINFO_STR_REGISTER + PPC_R17: sprintf(info->s, "R17: %08X", ppc.r[17]); break;
- case CPUINFO_STR_REGISTER + PPC_R18: sprintf(info->s, "R18: %08X", ppc.r[18]); break;
- case CPUINFO_STR_REGISTER + PPC_R19: sprintf(info->s, "R19: %08X", ppc.r[19]); break;
- case CPUINFO_STR_REGISTER + PPC_R20: sprintf(info->s, "R20: %08X", ppc.r[20]); break;
- case CPUINFO_STR_REGISTER + PPC_R21: sprintf(info->s, "R21: %08X", ppc.r[21]); break;
- case CPUINFO_STR_REGISTER + PPC_R22: sprintf(info->s, "R22: %08X", ppc.r[22]); break;
- case CPUINFO_STR_REGISTER + PPC_R23: sprintf(info->s, "R23: %08X", ppc.r[23]); break;
- case CPUINFO_STR_REGISTER + PPC_R24: sprintf(info->s, "R24: %08X", ppc.r[24]); break;
- case CPUINFO_STR_REGISTER + PPC_R25: sprintf(info->s, "R25: %08X", ppc.r[25]); break;
- case CPUINFO_STR_REGISTER + PPC_R26: sprintf(info->s, "R26: %08X", ppc.r[26]); break;
- case CPUINFO_STR_REGISTER + PPC_R27: sprintf(info->s, "R27: %08X", ppc.r[27]); break;
- case CPUINFO_STR_REGISTER + PPC_R28: sprintf(info->s, "R28: %08X", ppc.r[28]); break;
- case CPUINFO_STR_REGISTER + PPC_R29: sprintf(info->s, "R29: %08X", ppc.r[29]); break;
- case CPUINFO_STR_REGISTER + PPC_R30: sprintf(info->s, "R30: %08X", ppc.r[30]); break;
- case CPUINFO_STR_REGISTER + PPC_R31: sprintf(info->s, "R31: %08X", ppc.r[31]); break;
+ case CPUINFO_STR_NAME: strcpy(info->s, "PPC403"); break;
+ case CPUINFO_STR_FAMILY: strcpy(info->s, "PowerPC"); break;
+ case CPUINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case CPUINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case CPUINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
+
+ case CPUINFO_STR_FLAGS: strcpy(info->s, " "); break;
+
+ case CPUINFO_STR_REGISTER + PPC_PC: sprintf(info->s, "PC: %08X", ppc.pc); break;
+ case CPUINFO_STR_REGISTER + PPC_MSR: sprintf(info->s, "MSR: %08X", ppc_get_msr()); break;
+ case CPUINFO_STR_REGISTER + PPC_CR: sprintf(info->s, "CR: %08X", ppc_get_cr()); break;
+ case CPUINFO_STR_REGISTER + PPC_LR: sprintf(info->s, "LR: %08X", LR); break;
+ case CPUINFO_STR_REGISTER + PPC_CTR: sprintf(info->s, "CTR: %08X", CTR); break;
+ case CPUINFO_STR_REGISTER + PPC_XER: sprintf(info->s, "XER: %08X", XER); break;
+ case CPUINFO_STR_REGISTER + PPC_SRR0: sprintf(info->s, "SRR0: %08X", SRR0); break;
+ case CPUINFO_STR_REGISTER + PPC_SRR1: sprintf(info->s, "SRR1: %08X", SRR1); break;
+
+ case CPUINFO_STR_REGISTER + PPC_R0: sprintf(info->s, "R0: %08X", ppc.r[0]); break;
+ case CPUINFO_STR_REGISTER + PPC_R1: sprintf(info->s, "R1: %08X", ppc.r[1]); break;
+ case CPUINFO_STR_REGISTER + PPC_R2: sprintf(info->s, "R2: %08X", ppc.r[2]); break;
+ case CPUINFO_STR_REGISTER + PPC_R3: sprintf(info->s, "R3: %08X", ppc.r[3]); break;
+ case CPUINFO_STR_REGISTER + PPC_R4: sprintf(info->s, "R4: %08X", ppc.r[4]); break;
+ case CPUINFO_STR_REGISTER + PPC_R5: sprintf(info->s, "R5: %08X", ppc.r[5]); break;
+ case CPUINFO_STR_REGISTER + PPC_R6: sprintf(info->s, "R6: %08X", ppc.r[6]); break;
+ case CPUINFO_STR_REGISTER + PPC_R7: sprintf(info->s, "R7: %08X", ppc.r[7]); break;
+ case CPUINFO_STR_REGISTER + PPC_R8: sprintf(info->s, "R8: %08X", ppc.r[8]); break;
+ case CPUINFO_STR_REGISTER + PPC_R9: sprintf(info->s, "R9: %08X", ppc.r[9]); break;
+ case CPUINFO_STR_REGISTER + PPC_R10: sprintf(info->s, "R10: %08X", ppc.r[10]); break;
+ case CPUINFO_STR_REGISTER + PPC_R11: sprintf(info->s, "R11: %08X", ppc.r[11]); break;
+ case CPUINFO_STR_REGISTER + PPC_R12: sprintf(info->s, "R12: %08X", ppc.r[12]); break;
+ case CPUINFO_STR_REGISTER + PPC_R13: sprintf(info->s, "R13: %08X", ppc.r[13]); break;
+ case CPUINFO_STR_REGISTER + PPC_R14: sprintf(info->s, "R14: %08X", ppc.r[14]); break;
+ case CPUINFO_STR_REGISTER + PPC_R15: sprintf(info->s, "R15: %08X", ppc.r[15]); break;
+ case CPUINFO_STR_REGISTER + PPC_R16: sprintf(info->s, "R16: %08X", ppc.r[16]); break;
+ case CPUINFO_STR_REGISTER + PPC_R17: sprintf(info->s, "R17: %08X", ppc.r[17]); break;
+ case CPUINFO_STR_REGISTER + PPC_R18: sprintf(info->s, "R18: %08X", ppc.r[18]); break;
+ case CPUINFO_STR_REGISTER + PPC_R19: sprintf(info->s, "R19: %08X", ppc.r[19]); break;
+ case CPUINFO_STR_REGISTER + PPC_R20: sprintf(info->s, "R20: %08X", ppc.r[20]); break;
+ case CPUINFO_STR_REGISTER + PPC_R21: sprintf(info->s, "R21: %08X", ppc.r[21]); break;
+ case CPUINFO_STR_REGISTER + PPC_R22: sprintf(info->s, "R22: %08X", ppc.r[22]); break;
+ case CPUINFO_STR_REGISTER + PPC_R23: sprintf(info->s, "R23: %08X", ppc.r[23]); break;
+ case CPUINFO_STR_REGISTER + PPC_R24: sprintf(info->s, "R24: %08X", ppc.r[24]); break;
+ case CPUINFO_STR_REGISTER + PPC_R25: sprintf(info->s, "R25: %08X", ppc.r[25]); break;
+ case CPUINFO_STR_REGISTER + PPC_R26: sprintf(info->s, "R26: %08X", ppc.r[26]); break;
+ case CPUINFO_STR_REGISTER + PPC_R27: sprintf(info->s, "R27: %08X", ppc.r[27]); break;
+ case CPUINFO_STR_REGISTER + PPC_R28: sprintf(info->s, "R28: %08X", ppc.r[28]); break;
+ case CPUINFO_STR_REGISTER + PPC_R29: sprintf(info->s, "R29: %08X", ppc.r[29]); break;
+ case CPUINFO_STR_REGISTER + PPC_R30: sprintf(info->s, "R30: %08X", ppc.r[30]); break;
+ case CPUINFO_STR_REGISTER + PPC_R31: sprintf(info->s, "R31: %08X", ppc.r[31]); break;
}
}
@@ -1918,24 +1918,24 @@ CPU_GET_INFO( ppc403 )
switch(state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_INT_INPUT_LINES: info->i = 8; break;
- case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
- case CPUINFO_INT_REGISTER + PPC_EXIER: info->i = EXIER; break;
- case CPUINFO_INT_REGISTER + PPC_EXISR: info->i = EXISR; break;
+ case CPUINFO_INT_INPUT_LINES: info->i = 8; break;
+ case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
+ case CPUINFO_INT_REGISTER + PPC_EXIER: info->i = EXIER; break;
+ case CPUINFO_INT_REGISTER + PPC_EXISR: info->i = EXISR; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
- case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ppc403); break;
- case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(ppc403); break;
- case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc403); break;
- case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(ppc403); break;
- case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc403); break;
+ case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ppc403); break;
+ case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(ppc403); break;
+ case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc403); break;
+ case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(ppc403); break;
+ case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc403); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case CPUINFO_STR_NAME: strcpy(info->s, "PPC403"); break;
- case CPUINFO_STR_REGISTER + PPC_EXIER: sprintf(info->s, "EXIER: %08X", EXIER); break;
- case CPUINFO_STR_REGISTER + PPC_EXISR: sprintf(info->s, "EXISR: %08X", EXISR); break;
+ case CPUINFO_STR_NAME: strcpy(info->s, "PPC403"); break;
+ case CPUINFO_STR_REGISTER + PPC_EXIER: sprintf(info->s, "EXIER: %08X", EXIER); break;
+ case CPUINFO_STR_REGISTER + PPC_EXISR: sprintf(info->s, "EXISR: %08X", EXISR); break;
- default: CPU_GET_INFO_CALL(ppc); break;
+ default: CPU_GET_INFO_CALL(ppc); break;
}
}
@@ -1944,24 +1944,24 @@ CPU_GET_INFO( ppc405 )
switch(state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_INT_INPUT_LINES: info->i = 8; break;
- case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
- case CPUINFO_INT_REGISTER + PPC_EXIER: info->i = EXIER; break;
- case CPUINFO_INT_REGISTER + PPC_EXISR: info->i = EXISR; break;
+ case CPUINFO_INT_INPUT_LINES: info->i = 8; break;
+ case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
+ case CPUINFO_INT_REGISTER + PPC_EXIER: info->i = EXIER; break;
+ case CPUINFO_INT_REGISTER + PPC_EXISR: info->i = EXISR; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
- case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ppc405); break;
- case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(ppc405); break;
- case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc405); break;
- case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(ppc405); break;
- case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc405); break;
+ case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ppc405); break;
+ case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(ppc405); break;
+ case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc405); break;
+ case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(ppc405); break;
+ case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc405); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case CPUINFO_STR_NAME: strcpy(info->s, "PPC405"); break;
- case CPUINFO_STR_REGISTER + PPC_EXIER: sprintf(info->s, "EXIER: %08X", EXIER); break;
- case CPUINFO_STR_REGISTER + PPC_EXISR: sprintf(info->s, "EXISR: %08X", EXISR); break;
+ case CPUINFO_STR_NAME: strcpy(info->s, "PPC405"); break;
+ case CPUINFO_STR_REGISTER + PPC_EXIER: sprintf(info->s, "EXIER: %08X", EXIER); break;
+ case CPUINFO_STR_REGISTER + PPC_EXISR: sprintf(info->s, "EXISR: %08X", EXISR); break;
- default: CPU_GET_INFO_CALL(ppc); break;
+ default: CPU_GET_INFO_CALL(ppc); break;
}
}
@@ -1970,31 +1970,31 @@ CPU_GET_INFO( ppc603 )
switch(state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_INT_INPUT_LINES: info->i = 5; break;
- case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
+ case CPUINFO_INT_INPUT_LINES: info->i = 5; break;
+ case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
- case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 64; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
- case CPUINFO_INT_LOGADDR_WIDTH_PROGRAM: info->i = 32; break;
- case CPUINFO_INT_PAGE_SHIFT_PROGRAM: info->i = 17; break;
- case CPUINFO_INT_REGISTER + PPC_DEC: info->i = read_decrementer(); break;
+ case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 64; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
+ case CPUINFO_INT_LOGADDR_WIDTH_PROGRAM: info->i = 32; break;
+ case CPUINFO_INT_PAGE_SHIFT_PROGRAM: info->i = 17; break;
+ case CPUINFO_INT_REGISTER + PPC_DEC: info->i = read_decrementer(); break;
/* --- the following bits of info are returned as pointers to data or functions --- */
- case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ppc603); break;
- case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(ppc603); break;
- case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc603); break;
- case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(ppc603); break;
- case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc603); break;
- case CPUINFO_FCT_READ: info->read = CPU_GET_READ_NAME(ppc); break;
- case CPUINFO_FCT_WRITE: info->write = CPU_GET_WRITE_NAME(ppc); break;
- case CPUINFO_FCT_READOP: info->readop = CPU_GET_READOP_NAME(ppc); break;
- case CPUINFO_FCT_TRANSLATE: info->translate = ppc_translate_address_cb; break;
+ case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ppc603); break;
+ case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(ppc603); break;
+ case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc603); break;
+ case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(ppc603); break;
+ case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc603); break;
+ case CPUINFO_FCT_READ: info->read = CPU_GET_READ_NAME(ppc); break;
+ case CPUINFO_FCT_WRITE: info->write = CPU_GET_WRITE_NAME(ppc); break;
+ case CPUINFO_FCT_READOP: info->readop = CPU_GET_READOP_NAME(ppc); break;
+ case CPUINFO_FCT_TRANSLATE: info->translate = ppc_translate_address_cb; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case CPUINFO_STR_NAME: strcpy(info->s, "PPC603"); break;
- case CPUINFO_STR_REGISTER + PPC_DEC: sprintf(info->s, "DEC: %08X", read_decrementer()); break;
+ case CPUINFO_STR_NAME: strcpy(info->s, "PPC603"); break;
+ case CPUINFO_STR_REGISTER + PPC_DEC: sprintf(info->s, "DEC: %08X", read_decrementer()); break;
- default: CPU_GET_INFO_CALL(ppc); break;
+ default: CPU_GET_INFO_CALL(ppc); break;
}
}
@@ -2007,8 +2007,8 @@ static CPU_SET_INFO( ppc602 )
}
switch(state)
{
- case CPUINFO_INT_INPUT_STATE + PPC_INPUT_LINE_SMI: ppc602_set_smi_line(info->i); break;
- default: ppc_set_info(state, info); break;
+ case CPUINFO_INT_INPUT_STATE + PPC_INPUT_LINE_SMI: ppc602_set_smi_line(info->i); break;
+ default: ppc_set_info(state, info); break;
}
}
@@ -2017,29 +2017,29 @@ CPU_GET_INFO( ppc602 )
switch(state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_INT_INPUT_LINES: info->i = 5; break;
- case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
- case CPUINFO_INT_REGISTER + PPC_IBR: info->i = ppc.ibr; break;
+ case CPUINFO_INT_INPUT_LINES: info->i = 5; break;
+ case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
+ case CPUINFO_INT_REGISTER + PPC_IBR: info->i = ppc.ibr; break;
- case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 64; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
+ case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 64; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
- case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ppc602); break;
- case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(ppc602); break;
- case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc602); break;
- case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(ppc602); break;
- case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc602); break;
- case CPUINFO_FCT_READ: info->read = CPU_GET_READ_NAME(ppc); break;
- case CPUINFO_FCT_WRITE: info->write = CPU_GET_WRITE_NAME(ppc); break;
- case CPUINFO_FCT_READOP: info->readop = CPU_GET_READOP_NAME(ppc); break;
- case CPUINFO_FCT_TRANSLATE: info->translate = ppc_translate_address_cb; break;
+ case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ppc602); break;
+ case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(ppc602); break;
+ case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc602); break;
+ case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(ppc602); break;
+ case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc602); break;
+ case CPUINFO_FCT_READ: info->read = CPU_GET_READ_NAME(ppc); break;
+ case CPUINFO_FCT_WRITE: info->write = CPU_GET_WRITE_NAME(ppc); break;
+ case CPUINFO_FCT_READOP: info->readop = CPU_GET_READOP_NAME(ppc); break;
+ case CPUINFO_FCT_TRANSLATE: info->translate = ppc_translate_address_cb; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case CPUINFO_STR_NAME: strcpy(info->s, "PPC602"); break;
- case CPUINFO_STR_REGISTER + PPC_IBR: sprintf(info->s, "IBR: %08X", ppc.ibr); break;
+ case CPUINFO_STR_NAME: strcpy(info->s, "PPC602"); break;
+ case CPUINFO_STR_REGISTER + PPC_IBR: sprintf(info->s, "IBR: %08X", ppc.ibr); break;
- default: CPU_GET_INFO_CALL(ppc); break;
+ default: CPU_GET_INFO_CALL(ppc); break;
}
}
@@ -2053,7 +2053,7 @@ static CPU_SET_INFO( mpc8240 )
}
switch(state)
{
- default: ppc_set_info(state, info); break;
+ default: ppc_set_info(state, info); break;
}
}
@@ -2062,26 +2062,26 @@ CPU_GET_INFO( mpc8240 )
switch(state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_INT_INPUT_LINES: info->i = 5; break;
- case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
+ case CPUINFO_INT_INPUT_LINES: info->i = 5; break;
+ case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
- case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 64; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
+ case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 64; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
- case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(mpc8240); break;
- case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(mpc8240); break;
- case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc603); break;
- case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(mpc8240); break;
- case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc603); break;
- case CPUINFO_FCT_READ: info->read = CPU_GET_READ_NAME(ppc); break;
- case CPUINFO_FCT_WRITE: info->write = CPU_GET_WRITE_NAME(ppc); break;
- case CPUINFO_FCT_READOP: info->readop = CPU_GET_READOP_NAME(ppc); break;
+ case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(mpc8240); break;
+ case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(mpc8240); break;
+ case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc603); break;
+ case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(mpc8240); break;
+ case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc603); break;
+ case CPUINFO_FCT_READ: info->read = CPU_GET_READ_NAME(ppc); break;
+ case CPUINFO_FCT_WRITE: info->write = CPU_GET_WRITE_NAME(ppc); break;
+ case CPUINFO_FCT_READOP: info->readop = CPU_GET_READOP_NAME(ppc); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case CPUINFO_STR_NAME: strcpy(info->s, "MPC8240"); break;
+ case CPUINFO_STR_NAME: strcpy(info->s, "MPC8240"); break;
- default: CPU_GET_INFO_CALL(ppc); break;
+ default: CPU_GET_INFO_CALL(ppc); break;
}
}
@@ -2094,7 +2094,7 @@ static CPU_SET_INFO( ppc601 )
}
switch(state)
{
- default: ppc_set_info(state, info); break;
+ default: ppc_set_info(state, info); break;
}
}
@@ -2103,26 +2103,26 @@ CPU_GET_INFO( ppc601 )
switch(state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_INT_INPUT_LINES: info->i = 5; break;
- case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
+ case CPUINFO_INT_INPUT_LINES: info->i = 5; break;
+ case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
- case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 64; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
+ case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 64; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
- case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ppc601); break;
- case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(ppc601); break;
- case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc603); break;
- case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(ppc601); break;
- case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc603); break;
- case CPUINFO_FCT_READ: info->read = CPU_GET_READ_NAME(ppc); break;
- case CPUINFO_FCT_WRITE: info->write = CPU_GET_WRITE_NAME(ppc); break;
- case CPUINFO_FCT_READOP: info->readop = CPU_GET_READOP_NAME(ppc); break;
+ case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ppc601); break;
+ case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(ppc601); break;
+ case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc603); break;
+ case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(ppc601); break;
+ case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc603); break;
+ case CPUINFO_FCT_READ: info->read = CPU_GET_READ_NAME(ppc); break;
+ case CPUINFO_FCT_WRITE: info->write = CPU_GET_WRITE_NAME(ppc); break;
+ case CPUINFO_FCT_READOP: info->readop = CPU_GET_READOP_NAME(ppc); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case CPUINFO_STR_NAME: strcpy(info->s, "PPC601"); break;
+ case CPUINFO_STR_NAME: strcpy(info->s, "PPC601"); break;
- default: CPU_GET_INFO_CALL(ppc); break;
+ default: CPU_GET_INFO_CALL(ppc); break;
}
}
@@ -2135,7 +2135,7 @@ static CPU_SET_INFO( ppc604 )
}
switch(state)
{
- default: ppc_set_info(state, info); break;
+ default: ppc_set_info(state, info); break;
}
}
@@ -2144,26 +2144,26 @@ CPU_GET_INFO( ppc604 )
switch(state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_INT_INPUT_LINES: info->i = 5; break;
- case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
+ case CPUINFO_INT_INPUT_LINES: info->i = 5; break;
+ case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
- case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 64; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
+ case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 64; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
- case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ppc604); break;
- case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(ppc604); break;
- case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc603); break;
- case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(ppc604); break;
- case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc603); break;
- case CPUINFO_FCT_READ: info->read = CPU_GET_READ_NAME(ppc); break;
- case CPUINFO_FCT_WRITE: info->write = CPU_GET_WRITE_NAME(ppc); break;
- case CPUINFO_FCT_READOP: info->readop = CPU_GET_READOP_NAME(ppc); break;
+ case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ppc604); break;
+ case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(ppc604); break;
+ case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(ppc603); break;
+ case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(ppc604); break;
+ case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(ppc603); break;
+ case CPUINFO_FCT_READ: info->read = CPU_GET_READ_NAME(ppc); break;
+ case CPUINFO_FCT_WRITE: info->write = CPU_GET_WRITE_NAME(ppc); break;
+ case CPUINFO_FCT_READOP: info->readop = CPU_GET_READOP_NAME(ppc); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case CPUINFO_STR_NAME: strcpy(info->s, "PPC604"); break;
+ case CPUINFO_STR_NAME: strcpy(info->s, "PPC604"); break;
- default: CPU_GET_INFO_CALL(ppc); break;
+ default: CPU_GET_INFO_CALL(ppc); break;
}
}
@@ -2179,4 +2179,3 @@ DEFINE_LEGACY_CPU_DEVICE(PPC603E, ppc603e);
DEFINE_LEGACY_CPU_DEVICE(PPC603R, ppc603r);
DEFINE_LEGACY_CPU_DEVICE(PPC604, ppc604);
DEFINE_LEGACY_CPU_DEVICE(MPC8240, mpc8240);
-