From d53c108daf122d13d28795f8ab2c763caa5089eb Mon Sep 17 00:00:00 2001 From: Frode Solheim Date: Mon, 12 Oct 2015 20:53:29 +0200 Subject: [PATCH] JIT: Some minor fixes for special_mem handling cleanup --- include/memory.h | 18 ++++++++++++++++++ memory.cpp | 19 ++++++++++--------- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/include/memory.h b/include/memory.h index b09f0f2d..33838329 100644 --- a/include/memory.h +++ b/include/memory.h @@ -378,31 +378,41 @@ STATIC_INLINE uae_u32 get_wordi(uaecptr addr) STATIC_INLINE uae_u32 get_long_jit(uaecptr addr) { addrbank *bank = &get_mem_bank(addr); +#ifdef JIT special_mem |= bank->jit_read_flag; +#endif return bank->lget(addr); } STATIC_INLINE uae_u32 get_word_jit(uaecptr addr) { addrbank *bank = &get_mem_bank(addr); +#ifdef JIT special_mem |= bank->jit_read_flag; +#endif return bank->wget(addr); } STATIC_INLINE uae_u32 get_byte_jit(uaecptr addr) { addrbank *bank = &get_mem_bank(addr); +#ifdef JIT special_mem |= bank->jit_read_flag; +#endif return bank->bget(addr); } STATIC_INLINE uae_u32 get_longi_jit(uaecptr addr) { addrbank *bank = &get_mem_bank(addr); +#ifdef JIT special_mem |= bank->jit_read_flag; +#endif return bank->lgeti(addr); } STATIC_INLINE uae_u32 get_wordi_jit(uaecptr addr) { addrbank *bank = &get_mem_bank(addr); +#ifdef JIT special_mem |= bank->jit_read_flag; +#endif return bank->wgeti(addr); } @@ -452,19 +462,25 @@ STATIC_INLINE void put_byte (uaecptr addr, uae_u32 b) STATIC_INLINE void put_long_jit(uaecptr addr, uae_u32 l) { addrbank *bank = &get_mem_bank(addr); +#ifdef JIT special_mem |= bank->jit_write_flag; +#endif bank->lput(addr, l); } STATIC_INLINE void put_word_jit(uaecptr addr, uae_u32 l) { addrbank *bank = &get_mem_bank(addr); +#ifdef JIT special_mem |= bank->jit_write_flag; +#endif bank->wput(addr, l); } STATIC_INLINE void put_byte_jit(uaecptr addr, uae_u32 l) { addrbank *bank = &get_mem_bank(addr); +#ifdef JIT special_mem |= bank->jit_write_flag; +#endif bank->bput(addr, l); } @@ -553,6 +569,8 @@ typedef struct shmpiece_reg { extern shmpiece *shm_start; extern uae_u8* natmem_offset; +extern uae_u8 *natmem_reserved; +extern uae_u32 natmem_reserved_size; #endif diff --git a/memory.cpp b/memory.cpp index ad8a9322..0faef6c4 100644 --- a/memory.cpp +++ b/memory.cpp @@ -787,9 +787,9 @@ static void REGPARAM3 kickmem_lput (uaecptr, uae_u32) REGPARAM; static void REGPARAM3 kickmem_wput (uaecptr, uae_u32) REGPARAM; static void REGPARAM3 kickmem_bput (uaecptr, uae_u32) REGPARAM; -MEMORY_BGET(kickmem, 0); -MEMORY_WGET(kickmem, 0); -MEMORY_LGET(kickmem, 0); +MEMORY_BGET(kickmem); +MEMORY_WGET(kickmem); +MEMORY_LGET(kickmem); MEMORY_CHECK(kickmem); MEMORY_XLATE(kickmem); @@ -891,9 +891,9 @@ static void REGPARAM3 extendedkickmem_lput (uaecptr, uae_u32) REGPARAM; static void REGPARAM3 extendedkickmem_wput (uaecptr, uae_u32) REGPARAM; static void REGPARAM3 extendedkickmem_bput (uaecptr, uae_u32) REGPARAM; -MEMORY_BGET(extendedkickmem, 0); -MEMORY_WGET(extendedkickmem, 0); -MEMORY_LGET(extendedkickmem, 0); +MEMORY_BGET(extendedkickmem); +MEMORY_WGET(extendedkickmem); +MEMORY_LGET(extendedkickmem); MEMORY_CHECK(extendedkickmem); MEMORY_XLATE(extendedkickmem); @@ -918,9 +918,9 @@ static void REGPARAM3 extendedkickmem2_lput (uaecptr, uae_u32) REGPARAM; static void REGPARAM3 extendedkickmem2_wput (uaecptr, uae_u32) REGPARAM; static void REGPARAM3 extendedkickmem2_bput (uaecptr, uae_u32) REGPARAM; -MEMORY_BGET(extendedkickmem2, 0); -MEMORY_WGET(extendedkickmem2, 0); -MEMORY_LGET(extendedkickmem2, 0); +MEMORY_BGET(extendedkickmem2); +MEMORY_WGET(extendedkickmem2); +MEMORY_LGET(extendedkickmem2); MEMORY_CHECK(extendedkickmem2); MEMORY_XLATE(extendedkickmem2); @@ -1705,6 +1705,7 @@ bool mapped_malloc (addrbank *ab) answer = uae_shmat (ab, id, 0, 0); uae_shmctl (id, UAE_IPC_RMID, NULL); } else { + write_log(_T("MMAN: mapped_malloc using existing baseaddr %p\n"), ab->baseaddr); answer = ab->baseaddr; } if (answer != (void *) -1) { -- 2.47.3