summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/jaguar/jaguar.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/jaguar/jaguar.c')
-rw-r--r--src/emu/cpu/jaguar/jaguar.c564
1 files changed, 282 insertions, 282 deletions
diff --git a/src/emu/cpu/jaguar/jaguar.c b/src/emu/cpu/jaguar/jaguar.c
index f5fdaec6d11..b408c18ef8b 100644
--- a/src/emu/cpu/jaguar/jaguar.c
+++ b/src/emu/cpu/jaguar/jaguar.c
@@ -13,45 +13,45 @@
CPU_DISASSEMBLE( jaguargpu );
CPU_DISASSEMBLE( jaguardsp );
-#define LOG_GPU_IO 0
-#define LOG_DSP_IO 0
+#define LOG_GPU_IO 0
+#define LOG_DSP_IO 0
/***************************************************************************
CONSTANTS
***************************************************************************/
-#define ZFLAG 0x00001
-#define CFLAG 0x00002
-#define NFLAG 0x00004
-#define IFLAG 0x00008
-#define EINT0FLAG 0x00010
-#define EINT1FLAG 0x00020
-#define EINT2FLAG 0x00040
-#define EINT3FLAG 0x00080
-#define EINT4FLAG 0x00100
-#define EINT04FLAGS (EINT0FLAG | EINT1FLAG | EINT2FLAG | EINT3FLAG | EINT4FLAG)
-#define CINT0FLAG 0x00200
-#define CINT1FLAG 0x00400
-#define CINT2FLAG 0x00800
-#define CINT3FLAG 0x01000
-#define CINT4FLAG 0x02000
-#define CINT04FLAGS (CINT0FLAG | CINT1FLAG | CINT2FLAG | CINT3FLAG | CINT4FLAG)
-#define RPAGEFLAG 0x04000
-#define DMAFLAG 0x08000
-#define EINT5FLAG 0x10000 /* DSP only */
-#define CINT5FLAG 0x20000 /* DSP only */
-
-#define CLR_Z(J) ((J)->FLAGS &= ~ZFLAG)
-#define CLR_ZN(J) ((J)->FLAGS &= ~(ZFLAG | NFLAG))
-#define CLR_ZNC(J) ((J)->FLAGS &= ~(CFLAG | ZFLAG | NFLAG))
-#define SET_Z(J,r) ((J)->FLAGS |= ((r) == 0))
-#define SET_C_ADD(J,a,b) ((J)->FLAGS |= ((UINT32)(b) > (UINT32)(~(a))) << 1)
-#define SET_C_SUB(J,a,b) ((J)->FLAGS |= ((UINT32)(b) > (UINT32)(a)) << 1)
-#define SET_N(J,r) ((J)->FLAGS |= (((UINT32)(r) >> 29) & 4))
-#define SET_ZN(J,r) SET_N(J,r); SET_Z(J,r)
-#define SET_ZNC_ADD(J,a,b,r) SET_N(J,r); SET_Z(J,r); SET_C_ADD(J,a,b)
-#define SET_ZNC_SUB(J,a,b,r) SET_N(J,r); SET_Z(J,r); SET_C_SUB(J,a,b)
+#define ZFLAG 0x00001
+#define CFLAG 0x00002
+#define NFLAG 0x00004
+#define IFLAG 0x00008
+#define EINT0FLAG 0x00010
+#define EINT1FLAG 0x00020
+#define EINT2FLAG 0x00040
+#define EINT3FLAG 0x00080
+#define EINT4FLAG 0x00100
+#define EINT04FLAGS (EINT0FLAG | EINT1FLAG | EINT2FLAG | EINT3FLAG | EINT4FLAG)
+#define CINT0FLAG 0x00200
+#define CINT1FLAG 0x00400
+#define CINT2FLAG 0x00800
+#define CINT3FLAG 0x01000
+#define CINT4FLAG 0x02000
+#define CINT04FLAGS (CINT0FLAG | CINT1FLAG | CINT2FLAG | CINT3FLAG | CINT4FLAG)
+#define RPAGEFLAG 0x04000
+#define DMAFLAG 0x08000
+#define EINT5FLAG 0x10000 /* DSP only */
+#define CINT5FLAG 0x20000 /* DSP only */
+
+#define CLR_Z(J) ((J)->FLAGS &= ~ZFLAG)
+#define CLR_ZN(J) ((J)->FLAGS &= ~(ZFLAG | NFLAG))
+#define CLR_ZNC(J) ((J)->FLAGS &= ~(CFLAG | ZFLAG | NFLAG))
+#define SET_Z(J,r) ((J)->FLAGS |= ((r) == 0))
+#define SET_C_ADD(J,a,b) ((J)->FLAGS |= ((UINT32)(b) > (UINT32)(~(a))) << 1)
+#define SET_C_SUB(J,a,b) ((J)->FLAGS |= ((UINT32)(b) > (UINT32)(a)) << 1)
+#define SET_N(J,r) ((J)->FLAGS |= (((UINT32)(r) >> 29) & 4))
+#define SET_ZN(J,r) SET_N(J,r); SET_Z(J,r)
+#define SET_ZNC_ADD(J,a,b,r) SET_N(J,r); SET_Z(J,r); SET_C_ADD(J,a,b)
+#define SET_ZNC_SUB(J,a,b,r) SET_N(J,r); SET_Z(J,r); SET_C_SUB(J,a,b)
@@ -59,18 +59,18 @@ CPU_DISASSEMBLE( jaguardsp );
MACROS
***************************************************************************/
-#define PC ctrl[G_PC]
-#define FLAGS ctrl[G_FLAGS]
+#define PC ctrl[G_PC]
+#define FLAGS ctrl[G_FLAGS]
-#define CONDITION(x) condition_table[(x) + ((jaguar->FLAGS & 7) << 5)]
+#define CONDITION(x) condition_table[(x) + ((jaguar->FLAGS & 7) << 5)]
-#define READBYTE(J,a) (J)->program->read_byte(a)
-#define READWORD(J,a) (J)->program->read_word(a)
-#define READLONG(J,a) (J)->program->read_dword(a)
+#define READBYTE(J,a) (J)->program->read_byte(a)
+#define READWORD(J,a) (J)->program->read_word(a)
+#define READLONG(J,a) (J)->program->read_dword(a)
-#define WRITEBYTE(J,a,v) (J)->program->write_byte(a, v)
-#define WRITEWORD(J,a,v) (J)->program->write_word(a, v)
-#define WRITELONG(J,a,v) (J)->program->write_dword(a, v)
+#define WRITEBYTE(J,a,v) (J)->program->write_byte(a, v)
+#define WRITEWORD(J,a,v) (J)->program->write_word(a, v)
+#define WRITELONG(J,a,v) (J)->program->write_dword(a, v)
@@ -82,21 +82,21 @@ CPU_DISASSEMBLE( jaguardsp );
struct jaguar_cpu_state
{
/* core registers */
- UINT32 r[32];
- UINT32 a[32];
- UINT32 * b0;
- UINT32 * b1;
+ UINT32 r[32];
+ UINT32 a[32];
+ UINT32 * b0;
+ UINT32 * b1;
/* control registers */
- UINT32 ctrl[G_CTRLMAX];
- UINT32 ppc;
- UINT64 accum;
+ UINT32 ctrl[G_CTRLMAX];
+ UINT32 ppc;
+ UINT64 accum;
/* internal stuff */
- int isdsp;
- int icount;
- int bankswitch_icount;
- void (*const *table)(jaguar_cpu_state *jaguar, UINT16 op);
+ int isdsp;
+ int icount;
+ int bankswitch_icount;
+ void (*const *table)(jaguar_cpu_state *jaguar, UINT16 op);
device_irq_acknowledge_callback irq_callback;
jaguar_int_func cpu_interrupt;
legacy_cpu_device *device;
@@ -110,9 +110,9 @@ struct jaguar_cpu_state
PRIVATE GLOBAL VARIABLES
***************************************************************************/
-static UINT32 table_refcount;
-static UINT16 * mirror_table;
-static UINT8 * condition_table;
+static UINT32 table_refcount;
+static UINT16 * mirror_table;
+static UINT8 * condition_table;
static const UINT32 convert_zero[32] =
{ 32,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 };
@@ -127,7 +127,7 @@ static void abs_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void add_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void addc_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void addq_n_rn(jaguar_cpu_state *jaguar, UINT16 op);
-static void addqmod_n_rn(jaguar_cpu_state *jaguar, UINT16 op); /* DSP only */
+static void addqmod_n_rn(jaguar_cpu_state *jaguar, UINT16 op); /* DSP only */
static void addqt_n_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void and_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void bclr_n_rn(jaguar_cpu_state *jaguar, UINT16 op);
@@ -149,8 +149,8 @@ static void load_r14rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void load_r15rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void loadb_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void loadw_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
-static void loadp_rn_rn(jaguar_cpu_state *jaguar, UINT16 op); /* GPU only */
-static void mirror_rn(jaguar_cpu_state *jaguar, UINT16 op); /* DSP only */
+static void loadp_rn_rn(jaguar_cpu_state *jaguar, UINT16 op); /* GPU only */
+static void mirror_rn(jaguar_cpu_state *jaguar, UINT16 op); /* DSP only */
static void mmult_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void move_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void move_pc_rn(jaguar_cpu_state *jaguar, UINT16 op);
@@ -165,15 +165,15 @@ static void nop(jaguar_cpu_state *jaguar, UINT16 op);
static void normi_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void not_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void or_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
-static void pack_rn(jaguar_cpu_state *jaguar, UINT16 op); /* GPU only */
+static void pack_rn(jaguar_cpu_state *jaguar, UINT16 op); /* GPU only */
static void resmac_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void ror_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void rorq_n_rn(jaguar_cpu_state *jaguar, UINT16 op);
-static void sat8_rn(jaguar_cpu_state *jaguar, UINT16 op); /* GPU only */
-static void sat16_rn(jaguar_cpu_state *jaguar, UINT16 op); /* GPU only */
-static void sat16s_rn(jaguar_cpu_state *jaguar, UINT16 op); /* DSP only */
-static void sat24_rn(jaguar_cpu_state *jaguar, UINT16 op); /* GPU only */
-static void sat32s_rn(jaguar_cpu_state *jaguar, UINT16 op); /* DSP only */
+static void sat8_rn(jaguar_cpu_state *jaguar, UINT16 op); /* GPU only */
+static void sat16_rn(jaguar_cpu_state *jaguar, UINT16 op); /* GPU only */
+static void sat16s_rn(jaguar_cpu_state *jaguar, UINT16 op); /* DSP only */
+static void sat24_rn(jaguar_cpu_state *jaguar, UINT16 op); /* GPU only */
+static void sat32s_rn(jaguar_cpu_state *jaguar, UINT16 op); /* DSP only */
static void sh_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void sha_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void sharq_n_rn(jaguar_cpu_state *jaguar, UINT16 op);
@@ -186,52 +186,52 @@ static void store_rn_r14rn(jaguar_cpu_state *jaguar, UINT16 op);
static void store_rn_r15rn(jaguar_cpu_state *jaguar, UINT16 op);
static void storeb_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void storew_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
-static void storep_rn_rn(jaguar_cpu_state *jaguar, UINT16 op); /* GPU only */
+static void storep_rn_rn(jaguar_cpu_state *jaguar, UINT16 op); /* GPU only */
static void sub_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void subc_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void subq_n_rn(jaguar_cpu_state *jaguar, UINT16 op);
-static void subqmod_n_rn(jaguar_cpu_state *jaguar, UINT16 op); /* DSP only */
+static void subqmod_n_rn(jaguar_cpu_state *jaguar, UINT16 op); /* DSP only */
static void subqt_n_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void xor_rn_rn(jaguar_cpu_state *jaguar, UINT16 op);
static void (*const gpu_op_table[64])(jaguar_cpu_state *jaguar, UINT16 op) =
{
- /* 00-03 */ add_rn_rn, addc_rn_rn, addq_n_rn, addqt_n_rn,
- /* 04-07 */ sub_rn_rn, subc_rn_rn, subq_n_rn, subqt_n_rn,
- /* 08-11 */ neg_rn, and_rn_rn, or_rn_rn, xor_rn_rn,
- /* 12-15 */ not_rn, btst_n_rn, bset_n_rn, bclr_n_rn,
- /* 16-19 */ mult_rn_rn, imult_rn_rn, imultn_rn_rn, resmac_rn,
- /* 20-23 */ imacn_rn_rn, div_rn_rn, abs_rn, sh_rn_rn,
- /* 24-27 */ shlq_n_rn, shrq_n_rn, sha_rn_rn, sharq_n_rn,
- /* 28-31 */ ror_rn_rn, rorq_n_rn, cmp_rn_rn, cmpq_n_rn,
- /* 32-35 */ sat8_rn, sat16_rn, move_rn_rn, moveq_n_rn,
- /* 36-39 */ moveta_rn_rn, movefa_rn_rn, movei_n_rn, loadb_rn_rn,
- /* 40-43 */ loadw_rn_rn, load_rn_rn, loadp_rn_rn, load_r14n_rn,
- /* 44-47 */ load_r15n_rn, storeb_rn_rn, storew_rn_rn, store_rn_rn,
- /* 48-51 */ storep_rn_rn, store_rn_r14n, store_rn_r15n, move_pc_rn,
- /* 52-55 */ jump_cc_rn, jr_cc_n, mmult_rn_rn, mtoi_rn_rn,
- /* 56-59 */ normi_rn_rn, nop, load_r14rn_rn, load_r15rn_rn,
- /* 60-63 */ store_rn_r14rn, store_rn_r15rn, sat24_rn, pack_rn
+ /* 00-03 */ add_rn_rn, addc_rn_rn, addq_n_rn, addqt_n_rn,
+ /* 04-07 */ sub_rn_rn, subc_rn_rn, subq_n_rn, subqt_n_rn,
+ /* 08-11 */ neg_rn, and_rn_rn, or_rn_rn, xor_rn_rn,
+ /* 12-15 */ not_rn, btst_n_rn, bset_n_rn, bclr_n_rn,
+ /* 16-19 */ mult_rn_rn, imult_rn_rn, imultn_rn_rn, resmac_rn,
+ /* 20-23 */ imacn_rn_rn, div_rn_rn, abs_rn, sh_rn_rn,
+ /* 24-27 */ shlq_n_rn, shrq_n_rn, sha_rn_rn, sharq_n_rn,
+ /* 28-31 */ ror_rn_rn, rorq_n_rn, cmp_rn_rn, cmpq_n_rn,
+ /* 32-35 */ sat8_rn, sat16_rn, move_rn_rn, moveq_n_rn,
+ /* 36-39 */ moveta_rn_rn, movefa_rn_rn, movei_n_rn, loadb_rn_rn,
+ /* 40-43 */ loadw_rn_rn, load_rn_rn, loadp_rn_rn, load_r14n_rn,
+ /* 44-47 */ load_r15n_rn, storeb_rn_rn, storew_rn_rn, store_rn_rn,
+ /* 48-51 */ storep_rn_rn, store_rn_r14n, store_rn_r15n, move_pc_rn,
+ /* 52-55 */ jump_cc_rn, jr_cc_n, mmult_rn_rn, mtoi_rn_rn,
+ /* 56-59 */ normi_rn_rn, nop, load_r14rn_rn, load_r15rn_rn,
+ /* 60-63 */ store_rn_r14rn, store_rn_r15rn, sat24_rn, pack_rn
};
static void (*const dsp_op_table[64])(jaguar_cpu_state *jaguar, UINT16 op) =
{
- /* 00-03 */ add_rn_rn, addc_rn_rn, addq_n_rn, addqt_n_rn,
- /* 04-07 */ sub_rn_rn, subc_rn_rn, subq_n_rn, subqt_n_rn,
- /* 08-11 */ neg_rn, and_rn_rn, or_rn_rn, xor_rn_rn,
- /* 12-15 */ not_rn, btst_n_rn, bset_n_rn, bclr_n_rn,
- /* 16-19 */ mult_rn_rn, imult_rn_rn, imultn_rn_rn, resmac_rn,
- /* 20-23 */ imacn_rn_rn, div_rn_rn, abs_rn, sh_rn_rn,
- /* 24-27 */ shlq_n_rn, shrq_n_rn, sha_rn_rn, sharq_n_rn,
- /* 28-31 */ ror_rn_rn, rorq_n_rn, cmp_rn_rn, cmpq_n_rn,
- /* 32-35 */ subqmod_n_rn, sat16s_rn, move_rn_rn, moveq_n_rn,
- /* 36-39 */ moveta_rn_rn, movefa_rn_rn, movei_n_rn, loadb_rn_rn,
- /* 40-43 */ loadw_rn_rn, load_rn_rn, sat32s_rn, load_r14n_rn,
- /* 44-47 */ load_r15n_rn, storeb_rn_rn, storew_rn_rn, store_rn_rn,
- /* 48-51 */ mirror_rn, store_rn_r14n, store_rn_r15n, move_pc_rn,
- /* 52-55 */ jump_cc_rn, jr_cc_n, mmult_rn_rn, mtoi_rn_rn,
- /* 56-59 */ normi_rn_rn, nop, load_r14rn_rn, load_r15rn_rn,
- /* 60-63 */ store_rn_r14rn, store_rn_r15rn, illegal, addqmod_n_rn
+ /* 00-03 */ add_rn_rn, addc_rn_rn, addq_n_rn, addqt_n_rn,
+ /* 04-07 */ sub_rn_rn, subc_rn_rn, subq_n_rn, subqt_n_rn,
+ /* 08-11 */ neg_rn, and_rn_rn, or_rn_rn, xor_rn_rn,
+ /* 12-15 */ not_rn, btst_n_rn, bset_n_rn, bclr_n_rn,
+ /* 16-19 */ mult_rn_rn, imult_rn_rn, imultn_rn_rn, resmac_rn,
+ /* 20-23 */ imacn_rn_rn, div_rn_rn, abs_rn, sh_rn_rn,
+ /* 24-27 */ shlq_n_rn, shrq_n_rn, sha_rn_rn, sharq_n_rn,
+ /* 28-31 */ ror_rn_rn, rorq_n_rn, cmp_rn_rn, cmpq_n_rn,
+ /* 32-35 */ subqmod_n_rn, sat16s_rn, move_rn_rn, moveq_n_rn,
+ /* 36-39 */ moveta_rn_rn, movefa_rn_rn, movei_n_rn, loadb_rn_rn,
+ /* 40-43 */ loadw_rn_rn, load_rn_rn, sat32s_rn, load_r14n_rn,
+ /* 44-47 */ load_r15n_rn, storeb_rn_rn, storew_rn_rn, store_rn_rn,
+ /* 48-51 */ mirror_rn, store_rn_r14n, store_rn_r15n, move_pc_rn,
+ /* 52-55 */ jump_cc_rn, jr_cc_n, mmult_rn_rn, mtoi_rn_rn,
+ /* 56-59 */ normi_rn_rn, nop, load_r14rn_rn, load_r15rn_rn,
+ /* 60-63 */ store_rn_r14rn, store_rn_r15rn, illegal, addqmod_n_rn
};
@@ -240,7 +240,7 @@ static void (*const dsp_op_table[64])(jaguar_cpu_state *jaguar, UINT16 op) =
MEMORY ACCESSORS
***************************************************************************/
-#define ROPCODE(J,pc) ((J)->direct->read_decrypted_word(pc, WORD_XOR_BE(0)))
+#define ROPCODE(J,pc) ((J)->direct->read_decrypted_word(pc, WORD_XOR_BE(0)))
@@ -252,7 +252,7 @@ INLINE jaguar_cpu_state *get_safe_token(device_t *device)
{
assert(device != NULL);
assert(device->type() == JAGUARGPU ||
- device->type() == JAGUARDSP);
+ device->type() == JAGUARDSP);
return (jaguar_cpu_state *)downcast<legacy_cpu_device *>(device)->token();
}
@@ -371,13 +371,13 @@ static void init_tables(void)
mirror_table = global_alloc_array(UINT16, 65536);
for (i = 0; i < 65536; i++)
mirror_table[i] = ((i >> 15) & 0x0001) | ((i >> 13) & 0x0002) |
- ((i >> 11) & 0x0004) | ((i >> 9) & 0x0008) |
- ((i >> 7) & 0x0010) | ((i >> 5) & 0x0020) |
- ((i >> 3) & 0x0040) | ((i >> 1) & 0x0080) |
- ((i << 1) & 0x0100) | ((i << 3) & 0x0200) |
- ((i << 5) & 0x0400) | ((i << 7) & 0x0800) |
- ((i << 9) & 0x1000) | ((i << 11) & 0x2000) |
- ((i << 13) & 0x4000) | ((i << 15) & 0x8000);
+ ((i >> 11) & 0x0004) | ((i >> 9) & 0x0008) |
+ ((i >> 7) & 0x0010) | ((i >> 5) & 0x0020) |
+ ((i >> 3) & 0x0040) | ((i >> 1) & 0x0080) |
+ ((i << 1) & 0x0100) | ((i << 3) & 0x0200) |
+ ((i << 5) & 0x0400) | ((i << 7) & 0x0800) |
+ ((i << 9) & 0x1000) | ((i << 11) & 0x2000) |
+ ((i << 13) & 0x4000) | ((i << 15) & 0x8000);
/* fill in the condition table */
condition_table = global_alloc_array(UINT8, 32 * 8);
@@ -598,7 +598,7 @@ void addq_n_rn(jaguar_cpu_state *jaguar, UINT16 op)
CLR_ZNC(jaguar); SET_ZNC_ADD(jaguar, r2, r1, res);
}
-void addqmod_n_rn(jaguar_cpu_state *jaguar, UINT16 op) /* DSP only */
+void addqmod_n_rn(jaguar_cpu_state *jaguar, UINT16 op) /* DSP only */
{
int dreg = op & 31;
UINT32 r1 = convert_zero[(op >> 5) & 31];
@@ -751,7 +751,7 @@ void jr_cc_n(jaguar_cpu_state *jaguar, UINT16 op)
jaguar->PC = newpc;
(*jaguar->table[op >> 10])(jaguar, op);
- jaguar->icount -= 3; /* 3 wait states guaranteed */
+ jaguar->icount -= 3; /* 3 wait states guaranteed */
}
}
@@ -768,7 +768,7 @@ void jump_cc_rn(jaguar_cpu_state *jaguar, UINT16 op)
jaguar->PC = newpc;
(*jaguar->table[op >> 10])(jaguar, op);
- jaguar->icount -= 3; /* 3 wait states guaranteed */
+ jaguar->icount -= 3; /* 3 wait states guaranteed */
}
}
@@ -814,14 +814,14 @@ void loadw_rn_rn(jaguar_cpu_state *jaguar, UINT16 op)
jaguar->r[op & 31] = READWORD(jaguar, r1);
}
-void loadp_rn_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
+void loadp_rn_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
{
UINT32 r1 = jaguar->r[(op >> 5) & 31];
jaguar->ctrl[G_HIDATA] = READWORD(jaguar, r1);
jaguar->r[op & 31] = READWORD(jaguar, r1+4);
}
-void mirror_rn(jaguar_cpu_state *jaguar, UINT16 op) /* DSP only */
+void mirror_rn(jaguar_cpu_state *jaguar, UINT16 op) /* DSP only */
{
int dreg = op & 31;
UINT32 r1 = jaguar->r[dreg];
@@ -959,15 +959,15 @@ void or_rn_rn(jaguar_cpu_state *jaguar, UINT16 op)
CLR_ZN(jaguar); SET_ZN(jaguar, res);
}
-void pack_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
+void pack_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
{
int dreg = op & 31;
UINT32 r1 = jaguar->r[(op >> 5) & 31];
UINT32 r2 = jaguar->r[dreg];
UINT32 res;
- if (r1 == 0) /* PACK */
+ if (r1 == 0) /* PACK */
res = ((r2 >> 10) & 0xf000) | ((r2 >> 5) & 0x0f00) | (r2 & 0xff);
- else /* UNPACK */
+ else /* UNPACK */
res = ((r2 & 0xf000) << 10) | ((r2 & 0x0f00) << 5) | (r2 & 0xff);
jaguar->r[dreg] = res;
CLR_ZN(jaguar); SET_ZN(jaguar, res);
@@ -998,7 +998,7 @@ void rorq_n_rn(jaguar_cpu_state *jaguar, UINT16 op)
CLR_ZNC(jaguar); SET_ZN(jaguar, res); jaguar->FLAGS |= (r2 >> 30) & 2;
}
-void sat8_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
+void sat8_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
{
int dreg = op & 31;
INT32 r2 = jaguar->r[dreg];
@@ -1007,7 +1007,7 @@ void sat8_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
CLR_ZN(jaguar); SET_ZN(jaguar, res);
}
-void sat16_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
+void sat16_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
{
int dreg = op & 31;
INT32 r2 = jaguar->r[dreg];
@@ -1016,7 +1016,7 @@ void sat16_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
CLR_ZN(jaguar); SET_ZN(jaguar, res);
}
-void sat16s_rn(jaguar_cpu_state *jaguar, UINT16 op) /* DSP only */
+void sat16s_rn(jaguar_cpu_state *jaguar, UINT16 op) /* DSP only */
{
int dreg = op & 31;
INT32 r2 = jaguar->r[dreg];
@@ -1025,7 +1025,7 @@ void sat16s_rn(jaguar_cpu_state *jaguar, UINT16 op) /* DSP only */
CLR_ZN(jaguar); SET_ZN(jaguar, res);
}
-void sat24_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
+void sat24_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
{
int dreg = op & 31;
INT32 r2 = jaguar->r[dreg];
@@ -1034,7 +1034,7 @@ void sat24_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
CLR_ZN(jaguar); SET_ZN(jaguar, res);
}
-void sat32s_rn(jaguar_cpu_state *jaguar, UINT16 op) /* DSP only */
+void sat32s_rn(jaguar_cpu_state *jaguar, UINT16 op) /* DSP only */
{
int dreg = op & 31;
INT32 r2 = (UINT32)jaguar->r[dreg];
@@ -1160,7 +1160,7 @@ void storew_rn_rn(jaguar_cpu_state *jaguar, UINT16 op)
WRITEWORD(jaguar, r1, jaguar->r[op & 31]);
}
-void storep_rn_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
+void storep_rn_rn(jaguar_cpu_state *jaguar, UINT16 op) /* GPU only */
{
UINT32 r1 = jaguar->r[(op >> 5) & 31];
WRITELONG(jaguar, r1, jaguar->ctrl[G_HIDATA]);
@@ -1197,7 +1197,7 @@ void subq_n_rn(jaguar_cpu_state *jaguar, UINT16 op)
CLR_ZNC(jaguar); SET_ZNC_SUB(jaguar, r2, r1, res);
}
-void subqmod_n_rn(jaguar_cpu_state *jaguar, UINT16 op) /* DSP only */
+void subqmod_n_rn(jaguar_cpu_state *jaguar, UINT16 op) /* DSP only */
{
int dreg = op & 31;
UINT32 r1 = convert_zero[(op >> 5) & 31];
@@ -1434,49 +1434,49 @@ static CPU_SET_INFO( jaguargpu )
switch (state)
{
/* --- the following bits of info are set as 64-bit signed integers --- */
- case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ0: set_irq_line(jaguar, JAGUAR_IRQ0, info->i); break;
- case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ1: set_irq_line(jaguar, JAGUAR_IRQ1, info->i); break;
- case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ2: set_irq_line(jaguar, JAGUAR_IRQ2, info->i); break;
- case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ3: set_irq_line(jaguar, JAGUAR_IRQ3, info->i); break;
- case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ4: set_irq_line(jaguar, JAGUAR_IRQ4, info->i); break;
+ case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ0: set_irq_line(jaguar, JAGUAR_IRQ0, info->i); break;
+ case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ1: set_irq_line(jaguar, JAGUAR_IRQ1, info->i); break;
+ case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ2: set_irq_line(jaguar, JAGUAR_IRQ2, info->i); break;
+ case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ3: set_irq_line(jaguar, JAGUAR_IRQ3, info->i); break;
+ case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ4: set_irq_line(jaguar, JAGUAR_IRQ4, info->i); break;
case CPUINFO_INT_PC:
- case CPUINFO_INT_REGISTER + JAGUAR_PC: jaguar->PC = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_FLAGS: jaguar->FLAGS = info->i; break;
-
- case CPUINFO_INT_REGISTER + JAGUAR_R0: jaguar->r[0] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R1: jaguar->r[1] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R2: jaguar->r[2] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R3: jaguar->r[3] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R4: jaguar->r[4] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R5: jaguar->r[5] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R6: jaguar->r[6] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R7: jaguar->r[7] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R8: jaguar->r[8] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R9: jaguar->r[9] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R10: jaguar->r[10] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R11: jaguar->r[11] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R12: jaguar->r[12] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R13: jaguar->r[13] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R14: jaguar->r[14] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R15: jaguar->r[15] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R16: jaguar->r[16] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R17: jaguar->r[17] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R18: jaguar->r[18] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R19: jaguar->r[19] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R20: jaguar->r[20] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R21: jaguar->r[21] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R22: jaguar->r[22] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R23: jaguar->r[23] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R24: jaguar->r[24] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R25: jaguar->r[25] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R26: jaguar->r[26] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R27: jaguar->r[27] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R28: jaguar->r[28] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R29: jaguar->r[29] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R30: jaguar->r[30] = info->i; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R31: jaguar->r[31] = info->i; break;
- case CPUINFO_INT_SP: jaguar->b0[31] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_PC: jaguar->PC = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_FLAGS: jaguar->FLAGS = info->i; break;
+
+ case CPUINFO_INT_REGISTER + JAGUAR_R0: jaguar->r[0] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R1: jaguar->r[1] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R2: jaguar->r[2] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R3: jaguar->r[3] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R4: jaguar->r[4] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R5: jaguar->r[5] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R6: jaguar->r[6] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R7: jaguar->r[7] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R8: jaguar->r[8] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R9: jaguar->r[9] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R10: jaguar->r[10] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R11: jaguar->r[11] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R12: jaguar->r[12] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R13: jaguar->r[13] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R14: jaguar->r[14] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R15: jaguar->r[15] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R16: jaguar->r[16] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R17: jaguar->r[17] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R18: jaguar->r[18] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R19: jaguar->r[19] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R20: jaguar->r[20] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R21: jaguar->r[21] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R22: jaguar->r[22] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R23: jaguar->r[23] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R24: jaguar->r[24] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R25: jaguar->r[25] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R26: jaguar->r[26] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R27: jaguar->r[27] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R28: jaguar->r[28] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R29: jaguar->r[29] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R30: jaguar->r[30] = info->i; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R31: jaguar->r[31] = info->i; break;
+ case CPUINFO_INT_SP: jaguar->b0[31] = info->i; break;
}
}
@@ -1492,85 +1492,85 @@ CPU_GET_INFO( jaguargpu )
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(jaguar_cpu_state); break;
- case CPUINFO_INT_INPUT_LINES: info->i = 5; 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 = 2; break;
- case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 6; break;
- case CPUINFO_INT_MIN_CYCLES: info->i = 1; break;
- case CPUINFO_INT_MAX_CYCLES: info->i = 1; break;
-
- case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 32; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 24; break;
- case CPUINFO_INT_ADDRBUS_SHIFT + AS_PROGRAM: info->i = 0; break;
-
- case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ0: info->i = (jaguar->ctrl[G_CTRL] & 0x40) ? ASSERT_LINE : CLEAR_LINE; break;
- case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ1: info->i = (jaguar->ctrl[G_CTRL] & 0x80) ? ASSERT_LINE : CLEAR_LINE; break;
- case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ2: info->i = (jaguar->ctrl[G_CTRL] & 0x100) ? ASSERT_LINE : CLEAR_LINE; break;
- case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ3: info->i = (jaguar->ctrl[G_CTRL] & 0x200) ? ASSERT_LINE : CLEAR_LINE; break;
- case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ4: info->i = (jaguar->ctrl[G_CTRL] & 0x400) ? ASSERT_LINE : CLEAR_LINE; break;
-
- case CPUINFO_INT_PREVIOUSPC: info->i = jaguar->ppc; break;
+ case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(jaguar_cpu_state); break;
+ case CPUINFO_INT_INPUT_LINES: info->i = 5; 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 = 2; break;
+ case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 6; break;
+ case CPUINFO_INT_MIN_CYCLES: info->i = 1; break;
+ case CPUINFO_INT_MAX_CYCLES: info->i = 1; break;
+
+ case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 32; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 24; break;
+ case CPUINFO_INT_ADDRBUS_SHIFT + AS_PROGRAM: info->i = 0; break;
+
+ case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ0: info->i = (jaguar->ctrl[G_CTRL] & 0x40) ? ASSERT_LINE : CLEAR_LINE; break;
+ case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ1: info->i = (jaguar->ctrl[G_CTRL] & 0x80) ? ASSERT_LINE : CLEAR_LINE; break;
+ case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ2: info->i = (jaguar->ctrl[G_CTRL] & 0x100) ? ASSERT_LINE : CLEAR_LINE; break;
+ case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ3: info->i = (jaguar->ctrl[G_CTRL] & 0x200) ? ASSERT_LINE : CLEAR_LINE; break;
+ case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ4: info->i = (jaguar->ctrl[G_CTRL] & 0x400) ? ASSERT_LINE : CLEAR_LINE; break;
+
+ case CPUINFO_INT_PREVIOUSPC: info->i = jaguar->ppc; break;
case CPUINFO_INT_PC:
- case CPUINFO_INT_REGISTER + JAGUAR_PC: info->i = jaguar->PC; break;
- case CPUINFO_INT_REGISTER + JAGUAR_FLAGS: info->i = jaguar->FLAGS; break;
-
- case CPUINFO_INT_REGISTER + JAGUAR_R0: info->i = jaguar->r[0]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R1: info->i = jaguar->r[1]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R2: info->i = jaguar->r[2]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R3: info->i = jaguar->r[3]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R4: info->i = jaguar->r[4]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R5: info->i = jaguar->r[5]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R6: info->i = jaguar->r[6]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R7: info->i = jaguar->r[7]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R8: info->i = jaguar->r[8]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R9: info->i = jaguar->r[9]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R10: info->i = jaguar->r[10]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R11: info->i = jaguar->r[11]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R12: info->i = jaguar->r[12]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R13: info->i = jaguar->r[13]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R14: info->i = jaguar->r[14]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R15: info->i = jaguar->r[15]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R16: info->i = jaguar->r[16]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R17: info->i = jaguar->r[17]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R18: info->i = jaguar->r[18]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R19: info->i = jaguar->r[19]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R20: info->i = jaguar->r[20]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R21: info->i = jaguar->r[21]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R22: info->i = jaguar->r[22]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R23: info->i = jaguar->r[23]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R24: info->i = jaguar->r[24]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R25: info->i = jaguar->r[25]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R26: info->i = jaguar->r[26]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R27: info->i = jaguar->r[27]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R28: info->i = jaguar->r[28]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R29: info->i = jaguar->r[29]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R30: info->i = jaguar->r[30]; break;
- case CPUINFO_INT_REGISTER + JAGUAR_R31: info->i = jaguar->r[31]; break;
- case CPUINFO_INT_SP: info->i = jaguar->b0[31]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_PC: info->i = jaguar->PC; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_FLAGS: info->i = jaguar->FLAGS; break;
+
+ case CPUINFO_INT_REGISTER + JAGUAR_R0: info->i = jaguar->r[0]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R1: info->i = jaguar->r[1]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R2: info->i = jaguar->r[2]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R3: info->i = jaguar->r[3]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R4: info->i = jaguar->r[4]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R5: info->i = jaguar->r[5]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R6: info->i = jaguar->r[6]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R7: info->i = jaguar->r[7]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R8: info->i = jaguar->r[8]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R9: info->i = jaguar->r[9]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R10: info->i = jaguar->r[10]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R11: info->i = jaguar->r[11]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R12: info->i = jaguar->r[12]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R13: info->i = jaguar->r[13]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R14: info->i = jaguar->r[14]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R15: info->i = jaguar->r[15]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R16: info->i = jaguar->r[16]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R17: info->i = jaguar->r[17]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R18: info->i = jaguar->r[18]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R19: info->i = jaguar->r[19]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R20: info->i = jaguar->r[20]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R21: info->i = jaguar->r[21]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R22: info->i = jaguar->r[22]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R23: info->i = jaguar->r[23]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R24: info->i = jaguar->r[24]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R25: info->i = jaguar->r[25]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R26: info->i = jaguar->r[26]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R27: info->i = jaguar->r[27]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R28: info->i = jaguar->r[28]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R29: info->i = jaguar->r[29]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R30: info->i = jaguar->r[30]; break;
+ case CPUINFO_INT_REGISTER + JAGUAR_R31: info->i = jaguar->r[31]; break;
+ case CPUINFO_INT_SP: info->i = jaguar->b0[31]; 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(jaguargpu); break;
- case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(jaguargpu); break;
- case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(jaguar); break;
- case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(jaguar); break;
- case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(jaguargpu); break;
- case CPUINFO_FCT_BURN: info->burn = NULL; break;
- case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(jaguargpu);break;
- case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &jaguar->icount; break;
+ case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(jaguargpu); break;
+ case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(jaguargpu); break;
+ case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(jaguar); break;
+ case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(jaguar); break;
+ case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(jaguargpu); break;
+ case CPUINFO_FCT_BURN: info->burn = NULL; break;
+ case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(jaguargpu);break;
+ case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &jaguar->icount; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case CPUINFO_STR_NAME: strcpy(info->s, "Jaguar GPU"); break;
- case CPUINFO_STR_FAMILY: strcpy(info->s, "Atari Jaguar"); 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 Aaron Giles"); break;
+ case CPUINFO_STR_NAME: strcpy(info->s, "Jaguar GPU"); break;
+ case CPUINFO_STR_FAMILY: strcpy(info->s, "Atari Jaguar"); 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 Aaron Giles"); break;
- case CPUINFO_STR_FLAGS: sprintf(info->s, "%c%c%c%c%c%c%c%c%c%c%c",
+ case CPUINFO_STR_FLAGS: sprintf(info->s, "%c%c%c%c%c%c%c%c%c%c%c",
jaguar->FLAGS & 0x8000 ? 'D':'.',
jaguar->FLAGS & 0x4000 ? 'A':'.',
jaguar->FLAGS & 0x0100 ? '4':'.',
@@ -1581,42 +1581,42 @@ CPU_GET_INFO( jaguargpu )
jaguar->FLAGS & 0x0008 ? 'I':'.',
jaguar->FLAGS & 0x0004 ? 'N':'.',
jaguar->FLAGS & 0x0002 ? 'C':'.',
- jaguar->FLAGS & 0x0001 ? 'Z':'.'); break;
-
- case CPUINFO_STR_REGISTER + JAGUAR_PC: sprintf(info->s, "PC: %08X", jaguar->PC); break;
- case CPUINFO_STR_REGISTER + JAGUAR_FLAGS: sprintf(info->s, "FLAGS: %08X", jaguar->FLAGS); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R0: sprintf(info->s, "R0: %08X", jaguar->r[0]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R1: sprintf(info->s, "R1: %08X", jaguar->r[1]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R2: sprintf(info->s, "R2: %08X", jaguar->r[2]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R3: sprintf(info->s, "R3: %08X", jaguar->r[3]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R4: sprintf(info->s, "R4: %08X", jaguar->r[4]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R5: sprintf(info->s, "R5: %08X", jaguar->r[5]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R6: sprintf(info->s, "R6: %08X", jaguar->r[6]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R7: sprintf(info->s, "R7: %08X", jaguar->r[7]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R8: sprintf(info->s, "R8: %08X", jaguar->r[8]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R9: sprintf(info->s, "R9: %08X", jaguar->r[9]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R10: sprintf(info->s, "R10:%08X", jaguar->r[10]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R11: sprintf(info->s, "R11:%08X", jaguar->r[11]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R12: sprintf(info->s, "R12:%08X", jaguar->r[12]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R13: sprintf(info->s, "R13:%08X", jaguar->r[13]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R14: sprintf(info->s, "R14:%08X", jaguar->r[14]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R15: sprintf(info->s, "R15:%08X", jaguar->r[15]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R16: sprintf(info->s, "R16:%08X", jaguar->r[16]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R17: sprintf(info->s, "R17:%08X", jaguar->r[17]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R18: sprintf(info->s, "R18:%08X", jaguar->r[18]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R19: sprintf(info->s, "R19:%08X", jaguar->r[19]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R20: sprintf(info->s, "R20:%08X", jaguar->r[20]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R21: sprintf(info->s, "R21:%08X", jaguar->r[21]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R22: sprintf(info->s, "R22:%08X", jaguar->r[22]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R23: sprintf(info->s, "R23:%08X", jaguar->r[23]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R24: sprintf(info->s, "R24:%08X", jaguar->r[24]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R25: sprintf(info->s, "R25:%08X", jaguar->r[25]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R26: sprintf(info->s, "R26:%08X", jaguar->r[26]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R27: sprintf(info->s, "R27:%08X", jaguar->r[27]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R28: sprintf(info->s, "R28:%08X", jaguar->r[28]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R29: sprintf(info->s, "R29:%08X", jaguar->r[29]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R30: sprintf(info->s, "R30:%08X", jaguar->r[30]); break;
- case CPUINFO_STR_REGISTER + JAGUAR_R31: sprintf(info->s, "R31:%08X", jaguar->r[31]); break;
+ jaguar->FLAGS & 0x0001 ? 'Z':'.'); break;
+
+ case CPUINFO_STR_REGISTER + JAGUAR_PC: sprintf(info->s, "PC: %08X", jaguar->PC); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_FLAGS: sprintf(info->s, "FLAGS: %08X", jaguar->FLAGS); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R0: sprintf(info->s, "R0: %08X", jaguar->r[0]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R1: sprintf(info->s, "R1: %08X", jaguar->r[1]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R2: sprintf(info->s, "R2: %08X", jaguar->r[2]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R3: sprintf(info->s, "R3: %08X", jaguar->r[3]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R4: sprintf(info->s, "R4: %08X", jaguar->r[4]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R5: sprintf(info->s, "R5: %08X", jaguar->r[5]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R6: sprintf(info->s, "R6: %08X", jaguar->r[6]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R7: sprintf(info->s, "R7: %08X", jaguar->r[7]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R8: sprintf(info->s, "R8: %08X", jaguar->r[8]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R9: sprintf(info->s, "R9: %08X", jaguar->r[9]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R10: sprintf(info->s, "R10:%08X", jaguar->r[10]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R11: sprintf(info->s, "R11:%08X", jaguar->r[11]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R12: sprintf(info->s, "R12:%08X", jaguar->r[12]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R13: sprintf(info->s, "R13:%08X", jaguar->r[13]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R14: sprintf(info->s, "R14:%08X", jaguar->r[14]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R15: sprintf(info->s, "R15:%08X", jaguar->r[15]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R16: sprintf(info->s, "R16:%08X", jaguar->r[16]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R17: sprintf(info->s, "R17:%08X", jaguar->r[17]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R18: sprintf(info->s, "R18:%08X", jaguar->r[18]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R19: sprintf(info->s, "R19:%08X", jaguar->r[19]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R20: sprintf(info->s, "R20:%08X", jaguar->r[20]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R21: sprintf(info->s, "R21:%08X", jaguar->r[21]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R22: sprintf(info->s, "R22:%08X", jaguar->r[22]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R23: sprintf(info->s, "R23:%08X", jaguar->r[23]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R24: sprintf(info->s, "R24:%08X", jaguar->r[24]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R25: sprintf(info->s, "R25:%08X", jaguar->r[25]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R26: sprintf(info->s, "R26:%08X", jaguar->r[26]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R27: sprintf(info->s, "R27:%08X", jaguar->r[27]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R28: sprintf(info->s, "R28:%08X", jaguar->r[28]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R29: sprintf(info->s, "R29:%08X", jaguar->r[29]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R30: sprintf(info->s, "R30:%08X", jaguar->r[30]); break;
+ case CPUINFO_STR_REGISTER + JAGUAR_R31: sprintf(info->s, "R31:%08X", jaguar->r[31]); break;
}
}
@@ -1631,11 +1631,11 @@ static CPU_SET_INFO( jaguardsp )
switch (state)
{
/* --- the following bits of info are set as 64-bit signed integers --- */
- case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ5: set_irq_line(jaguar, JAGUAR_IRQ5, info->i); break;
+ case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ5: set_irq_line(jaguar, JAGUAR_IRQ5, info->i); break;
/* --- the following bits of info are set as pointers to data or functions --- */
- default: CPU_SET_INFO_CALL(jaguargpu); break;
+ default: CPU_SET_INFO_CALL(jaguargpu); break;
}
}
@@ -1645,19 +1645,19 @@ CPU_GET_INFO( jaguardsp )
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_INT_INPUT_LINES: info->i = 6; break;
- case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ5: info->i = (jaguar->ctrl[G_CTRL] & 0x10000) ? ASSERT_LINE : CLEAR_LINE; break;
+ case CPUINFO_INT_INPUT_LINES: info->i = 6; break;
+ case CPUINFO_INT_INPUT_STATE + JAGUAR_IRQ5: info->i = (jaguar->ctrl[G_CTRL] & 0x10000) ? ASSERT_LINE : CLEAR_LINE; 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(jaguardsp); break;
- case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(jaguardsp); break;
- case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(jaguardsp); break;
- case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(jaguardsp);break;
+ case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(jaguardsp); break;
+ case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(jaguardsp); break;
+ case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(jaguardsp); break;
+ case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(jaguardsp);break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case CPUINFO_STR_NAME: strcpy(info->s, "Jaguar DSP"); break;
+ case CPUINFO_STR_NAME: strcpy(info->s, "Jaguar DSP"); break;
- default: CPU_GET_INFO_CALL(jaguargpu); break;
+ default: CPU_GET_INFO_CALL(jaguargpu); break;
}
}