X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=cpu%2Fsh2%2Fsh2.h;h=42de6305ccbdacb591ae54e5a9f92844ffcbe339;hb=ee5f7e99360c3d5fc5efec31464a02967bad7bb8;hp=4603e84baa534ce15857866c9f70bb95359e011d;hpb=a8fd6e376175c06e2423d0914359c761829d6e93;p=picodrive.git diff --git a/cpu/sh2/sh2.h b/cpu/sh2/sh2.h index 4603e84..42de630 100644 --- a/cpu/sh2/sh2.h +++ b/cpu/sh2/sh2.h @@ -39,6 +39,15 @@ typedef struct SH2_ void *p_rom; unsigned int pdb_io_csum[2]; +#define SH2_STATE_RUN (1 << 0) // to prevent recursion +#define SH2_STATE_SLEEP (1 << 1) +#define SH2_STATE_CPOLL (1 << 2) // polling comm regs +#define SH2_STATE_VPOLL (1 << 3) // polling VDP + unsigned int state; + unsigned int poll_addr; + int poll_cycles; + int poll_cnt; + // interpreter stuff int icount; // cycles left in current timeslice unsigned int ea; @@ -66,8 +75,6 @@ typedef struct SH2_ #define C_SH2_TO_M68K(xsh2, c) \ ((int)((c + 3) * (xsh2).mult_sh2_to_m68k) >> CYCLE_MULT_SHIFT) -extern SH2 *sh2; // active sh2. XXX: consider removing - int sh2_init(SH2 *sh2, int is_slave); void sh2_finish(SH2 *sh2); void sh2_reset(SH2 *sh2); @@ -91,4 +98,10 @@ int REGPARM(3) p32x_sh2_write8 (unsigned int a, unsigned int d, SH2 *sh2); int REGPARM(3) p32x_sh2_write16(unsigned int a, unsigned int d, SH2 *sh2); int REGPARM(3) p32x_sh2_write32(unsigned int a, unsigned int d, SH2 *sh2); +// debug +#ifdef DRC_CMP +void do_sh2_trace(SH2 *current, int cycles); +void do_sh2_cmp(SH2 *current); +#endif + #endif /* __SH2_H__ */