notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
32x: drc: finish MAC, gen drc entry/exit (for statically alloced regs)
[picodrive.git]
/
cpu
/
sh2
/
sh2.h
diff --git
a/cpu/sh2/sh2.h
b/cpu/sh2/sh2.h
index
264bb4e
..
9d6f0d2
100644
(file)
--- a/
cpu/sh2/sh2.h
+++ b/
cpu/sh2/sh2.h
@@
-1,6
+1,13
@@
#ifndef __SH2_H__
\r
#define __SH2_H__
\r
\r
#ifndef __SH2_H__
\r
#define __SH2_H__
\r
\r
+// registers - matches structure order
\r
+typedef enum {
\r
+ SHR_R0 = 0, SHR_SP = 15,
\r
+ SHR_PC, SHR_PPC, SHR_PR, SHR_SR,
\r
+ SHR_GBR, SHR_VBR, SHR_MACH, SHR_MACL,
\r
+} sh2_reg_e;
\r
+
\r
typedef struct
\r
{
\r
unsigned int r[16]; // 00
\r
typedef struct
\r
{
\r
unsigned int r[16]; // 00
\r
@@
-11,20
+18,20
@@
typedef struct
unsigned int gbr, vbr; // 50
\r
unsigned int mach, macl; // 58
\r
\r
unsigned int gbr, vbr; // 50
\r
unsigned int mach, macl; // 58
\r
\r
- // interpreter stuff
\r
- int icount; // 60 cycles left in current timeslice
\r
- unsigned int ea;
\r
- unsigned int delay;
\r
- unsigned int test_irq;
\r
-
\r
// common
\r
// common
\r
- const void *read8_map; //
7
0
\r
+ const void *read8_map; //
6
0
\r
const void *read16_map;
\r
const void **write8_tab;
\r
const void **write16_tab;
\r
\r
// drc stuff
\r
const void *read16_map;
\r
const void **write8_tab;
\r
const void **write16_tab;
\r
\r
// drc stuff
\r
- //void **pc_hashtab; // 80
\r
+ int drc_tmp; // 70
\r
+
\r
+ // interpreter stuff
\r
+ int icount; // cycles left in current timeslice
\r
+ unsigned int ea;
\r
+ unsigned int delay;
\r
+ unsigned int test_irq;
\r
\r
int pending_level; // MAX(pending_irl, pending_int_irq)
\r
int pending_irl;
\r
\r
int pending_level; // MAX(pending_irl, pending_int_irq)
\r
int pending_irl;
\r
@@
-37,7
+44,7
@@
typedef struct
unsigned int cycles_done;
\r
} SH2;
\r
\r
unsigned int cycles_done;
\r
} SH2;
\r
\r
-extern SH2 *sh2; // active sh2
\r
+extern SH2 *sh2; // active sh2
. XXX: consider removing
\r
\r
int sh2_init(SH2 *sh2, int is_slave);
\r
void sh2_finish(SH2 *sh2);
\r
\r
int sh2_init(SH2 *sh2, int is_slave);
\r
void sh2_finish(SH2 *sh2);
\r