X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fnew_dynarec%2Fpcsxmem.c;h=f98ae22daea19c76b7a7e3494d62f06d9de56932;hp=046402109a985e862d32250eec79fd56f912b5d4;hb=9f7042907bbf7e1810ee8e002bc43319fbb3d0b4;hpb=0486fdc9bd313ce2f01dafa4d3c151f40e2c729b diff --git a/libpcsxcore/new_dynarec/pcsxmem.c b/libpcsxcore/new_dynarec/pcsxmem.c index 04640210..f98ae22d 100644 --- a/libpcsxcore/new_dynarec/pcsxmem.c +++ b/libpcsxcore/new_dynarec/pcsxmem.c @@ -14,6 +14,11 @@ #include "emu_if.h" #include "pcsxmem.h" +#ifdef __thumb__ +#error the dynarec is incompatible with Thumb functions, +#error please add -marm to compile flags +#endif + //#define memprintf printf #define memprintf(...) @@ -28,8 +33,10 @@ static u32 mem_unmwtab[(1+2+4) * 0x1000 / 4]; static void map_item(u32 *out, const void *h, u32 flag) { u32 hv = (u32)h; - if (hv & 1) - fprintf(stderr, "%p has LSB set\n", h); + if (hv & 1) { + fprintf(stderr, "FATAL: %p has LSB set\n", h); + abort(); + } *out = (hv >> 1) | (flag << 31); } @@ -293,9 +300,15 @@ void new_dyna_pcsx_mem_init(void) { int i; +#ifdef CUSTOM_MEMMAPS + // WIZ lack-of-RAM hack + extern void *memtab_mmap(void *addr, size_t size); + mem_readtab = memtab_mmap((void *)0x08000000, 0x200000 * 4); +#else // have to map these further to keep tcache close to .text mem_readtab = mmap((void *)0x08000000, 0x200000 * 4, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); +#endif if (mem_readtab == MAP_FAILED) { fprintf(stderr, "failed to map mem tables\n"); exit(1);