32x drc functional on ARM, random adjustments

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@824 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2009-10-22 20:16:32 +00:00
parent 274f95a9a9
commit 553c3eaa3a
12 changed files with 86 additions and 63 deletions

View file

@ -735,7 +735,7 @@ static void PicoWrite8_32x_on(u32 a, u32 d)
static void PicoWrite16_32x_on(u32 a, u32 d)
{
if ((a & 0xfc00) == 0x5000)
elprintf(EL_UIO, "m68k 32x w16 [%06x] %04x @%06x", a, d & 0xffff, SekPc);
elprintf(EL_32X, "m68k 32x w16 [%06x] %04x @%06x", a, d & 0xffff, SekPc);
if ((a & 0xffc0) == 0x5100) { // a15100
p32x_reg_write16(a, d);

View file

@ -35,6 +35,7 @@ void ssp_drc_next_patch(void){}
void ssp_drc_end(void){}
#endif
#define COUNT_OP
#include "../../../cpu/drc/emit_arm.c"
// -----------------------------------------------------
@ -1787,7 +1788,9 @@ void *ssp_translate_block(int pc)
exit(0);
#endif
handle_caches();
#ifdef ARM
cache_flush_d_inval_i(tcache, tcache_ptr);
#endif
return block_start;
}

View file

@ -957,7 +957,7 @@ static int ym2612_write_local(u32 a, u32 d, int is_from_z80)
if (xcycles >= timer_b_next_oflow) \
ym2612.OPN.ST.status |= (ym2612.OPN.ST.mode >> 2) & 2
static u32 MEMH_FUNC ym2612_read_local_z80(void)
static u32 ym2612_read_local_z80(void)
{
int xcycles = z80_cyclesDone() << 8;
@ -1055,14 +1055,14 @@ void ym2612_unpack_state(void)
// -----------------------------------------------------------------
// z80 memhandlers
static unsigned char MEMH_FUNC z80_md_vdp_read(unsigned short a)
static unsigned char z80_md_vdp_read(unsigned short a)
{
// TODO?
elprintf(EL_ANOMALY, "z80 invalid r8 [%06x] %02x", a, 0xff);
return 0xff;
}
static unsigned char MEMH_FUNC z80_md_bank_read(unsigned short a)
static unsigned char z80_md_bank_read(unsigned short a)
{
unsigned int addr68k;
unsigned char ret;
@ -1076,13 +1076,13 @@ static unsigned char MEMH_FUNC z80_md_bank_read(unsigned short a)
return ret;
}
static void MEMH_FUNC z80_md_ym2612_write(unsigned int a, unsigned char data)
static void z80_md_ym2612_write(unsigned int a, unsigned char data)
{
if (PicoOpt & POPT_EN_FM)
emustatus |= ym2612_write_local(a, data, 1) & 1;
}
static void MEMH_FUNC z80_md_vdp_br_write(unsigned int a, unsigned char data)
static void z80_md_vdp_br_write(unsigned int a, unsigned char data)
{
// TODO: allow full VDP access
if ((a&0xfff9) == 0x7f11) // 7f11 7f13 7f15 7f17
@ -1103,7 +1103,7 @@ static void MEMH_FUNC z80_md_vdp_br_write(unsigned int a, unsigned char data)
elprintf(EL_ANOMALY, "z80 invalid w8 [%06x] %02x", a, data);
}
static void MEMH_FUNC z80_md_bank_write(unsigned int a, unsigned char data)
static void z80_md_bank_write(unsigned int a, unsigned char data)
{
unsigned int addr68k;

View file

@ -789,10 +789,10 @@ extern void lprintf(const char *fmt, ...);
#define cdprintf(x...)
#endif
#if defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 3
#define MEMH_FUNC __attribute__((aligned(4)))
#ifdef __i386__
#define REGPARM(x) __attribute__((regparm(x)))
#else
#define MEMH_FUNC
#define REGPARM(x)
#endif
#ifdef __GNUC__

View file

@ -169,7 +169,7 @@ static void write_bank(unsigned short a, unsigned char d)
}
}
static void MEMH_FUNC xwrite(unsigned int a, unsigned char d)
static void xwrite(unsigned int a, unsigned char d)
{
elprintf(EL_IO, "z80 write [%04x] %02x", a, d);
if (a >= 0xc000)