All pastes #1383217 Raw Edit

Stuff

public diff v1 · immutable
#1383217 ·published 2009-04-05 23:59 UTC
rendered paste body
Index: pcsx2/x86/ix86-32/iR5900-32.cpp===================================================================--- pcsx2/x86/ix86-32/iR5900-32.cpp	(revision 912)+++ pcsx2/x86/ix86-32/iR5900-32.cpp	(working copy)@@ -1690,7 +1690,7 @@  	u32 sz=(s_nEndBlock-startpc)>>2; -	u32 inpage_ptr=startpc;+	u32 inpage_ptr=HWADDR(startpc); 	u32 inpage_sz=sz*4;  	while(inpage_sz)@@ -1705,20 +1705,32 @@ 				mmap_MarkCountedRamPage(PSM(inpage_ptr),inpage_ptr&~0xFFF); 			else 			{-				MOV32ItoR(ECX, startpc); 				MOV32ItoR(EDX, sz); -				u32 lpc=inpage_ptr;-				u32 stg=pgsz;-				while(stg>0)-				{+				if (pgsz < 8) { // fine tuning needed+					u32 lpc=inpage_ptr;+					u32 stg=pgsz;+					while(stg>0)+					{+						// was dyna_block_discard_recmem.  See note in recResetEE for details.+						MOV32ItoR(ECX, startpc);+						CMP32ItoM((uptr)PSM(lpc),*(u32*)PSM(lpc));+						JNE32(((u32)&dyna_block_discard)- ( (u32)x86Ptr[0] + 6 ));++						stg-=4;+						lpc+=4;+					}+				} else { 					// was dyna_block_discard_recmem.  See note in recResetEE for details.-					CMP32ItoM((uptr)PSM(lpc),*(u32*)PSM(lpc));-					JNE32(((u32)&dyna_block_discard)- ( (u32)x86Ptr[0] + 6 ));+					MOV32ItoR(ESI, (u32)PSM(inpage_ptr));+					MOV32ItoR(EDI, (u32)&recRAMCopy[inpage_ptr / 4]);+					MOV32ItoR(ECX, pgsz / 4);+					*x86Ptr[_EmitterId_]++ = 0xF3;+					*x86Ptr[_EmitterId_]++ = 0xA7;+					MOV32ItoR(ECX, startpc);+					JNE32(((u32)&dyna_block_discard) - ( (u32)x86Ptr[0] + 6 ));+				} -					stg-=4;-					lpc+=4;-				} 				DbgCon::WriteLn("Manual block @ %08X : %08X %d %d %d %d", params 					startpc,inpage_ptr,pgsz,0x1000-inpage_offs,inpage_sz,sz*4); 			}