From 67ac2f8b04f05ae00c019f5d40032c4c17217708 Mon Sep 17 00:00:00 2001 From: mightymax Date: Wed, 10 Jan 2007 00:31:12 +0000 Subject: [PATCH] prefetch now checks for rights to execute at the address. Stops execution if pc(r15) runs outside valid addressranges --- desmume/src/armcpu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/desmume/src/armcpu.c b/desmume/src/armcpu.c index 41d4d52f9..c66a16de0 100644 --- a/desmume/src/armcpu.c +++ b/desmume/src/armcpu.c @@ -195,13 +195,13 @@ u32 armcpu_prefetch(armcpu_t *armcpu) { if(armcpu->CPSR.bits.T == 0) { - armcpu->instruction = MMU_readWord(armcpu->proc_ID, armcpu->next_instruction); + armcpu->instruction = MMU_readWordACL(armcpu->proc_ID, armcpu->next_instruction,ACCESS_EXECUTION); armcpu->instruct_adr = armcpu->next_instruction; armcpu->next_instruction += 4; armcpu->R[15] = armcpu->next_instruction + 4; return MMU.MMU_WAIT32[armcpu->proc_ID][(armcpu->instruct_adr>>24)&0xF]; } - armcpu->instruction = MMU_readHWord(armcpu->proc_ID, armcpu->next_instruction); + armcpu->instruction = MMU_readHWordACL(armcpu->proc_ID, armcpu->next_instruction,ACCESS_EXECUTION); armcpu->instruct_adr = armcpu->next_instruction; armcpu->next_instruction = armcpu->next_instruction + 2; armcpu->R[15] = armcpu->next_instruction + 2;