notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #85 from orbea/git
[picodrive.git]
/
cpu
/
sh2
/
sh2.c
diff --git
a/cpu/sh2/sh2.c
b/cpu/sh2/sh2.c
index
7b83cf2
..
403c4c7
100644
(file)
--- a/
cpu/sh2/sh2.c
+++ b/
cpu/sh2/sh2.c
@@
-17,10
+17,15
@@
int sh2_init(SH2 *sh2, int is_slave, SH2 *other_sh2)
{
int ret = 0;
int sh2_init(SH2 *sh2, int is_slave, SH2 *other_sh2)
{
int ret = 0;
+ unsigned int mult_m68k_to_sh2 = sh2->mult_m68k_to_sh2;
+ unsigned int mult_sh2_to_m68k = sh2->mult_sh2_to_m68k;
- memset(sh2, 0,
offsetof(SH2, mult_m68k_to_
sh2));
+ memset(sh2, 0,
sizeof(*
sh2));
sh2->is_slave = is_slave;
sh2->other_sh2 = other_sh2;
sh2->is_slave = is_slave;
sh2->other_sh2 = other_sh2;
+ sh2->mult_m68k_to_sh2 = mult_m68k_to_sh2;
+ sh2->mult_sh2_to_m68k = mult_sh2_to_m68k;
+
pdb_register_cpu(sh2, PDBCT_SH2, is_slave ? "ssh2" : "msh2");
#ifdef DRC_SH2
ret = sh2_drc_init(sh2);
pdb_register_cpu(sh2, PDBCT_SH2, is_slave ? "ssh2" : "msh2");
#ifdef DRC_SH2
ret = sh2_drc_init(sh2);
@@
-232,7
+237,7
@@
static void dump_regs(SH2 *sh2)
printf("%csh2 SR: %03x PR: %08x\n", csh2, sh2->sr, sh2->pr);
}
printf("%csh2 SR: %03x PR: %08x\n", csh2, sh2->sr, sh2->pr);
}
-void do_sh2_cmp(SH2 *current)
+void
REGPARM(1)
do_sh2_cmp(SH2 *current)
{
static int current_slave;
static u32 current_val;
{
static int current_slave;
static u32 current_val;
@@
-246,6
+251,13
@@
void do_sh2_cmp(SH2 *current)
int cycles;
int i, ret;
int cycles;
int i, ret;
+#if 0
+ sr = current->sr;
+ current->sr &= 0x3f3;
+ do_sh2_trace(current, (signed int)sr >> 12);
+ current->sr = sr;
+ return;
+#endif
sh2ref[1].is_slave = 1;
while (1) {
sh2ref[1].is_slave = 1;
while (1) {