Search
lxdream.org :: lxdream/src/sh4/sh4x86.in :: diff
lxdream 0.9.1
released Jun 29
Download Now
filename src/sh4/sh4x86.in
changeset 974:16b079ed11bb
prev956:4c1ed9e03985
next975:007bf7eb944f
author nkeynes
date Mon Jan 26 03:09:53 2009 +0000 (11 years ago)
permissions -rw-r--r--
last change Fix double-counting of instructions in delay slots in sh4_finalize_instruction
Fix spc value when taking an exception in mmu_update_icache in a delay slot
Fix under-counting of instructions in newpc delay slots in translated blocks
file annotate diff log raw
1.1 --- a/src/sh4/sh4x86.in Wed Jan 14 00:09:44 2009 +0000
1.2 +++ b/src/sh4/sh4x86.in Mon Jan 26 03:09:53 2009 +0000
1.3 @@ -1544,7 +1544,7 @@
1.4 return 2;
1.5 } else {
1.6 sh4_translate_instruction( pc + 2 );
1.7 - exit_block_newpcset(pc+2);
1.8 + exit_block_newpcset(pc+4);
1.9 return 4;
1.10 }
1.11 }
1.12 @@ -1591,7 +1591,7 @@
1.13 return 2;
1.14 } else {
1.15 sh4_translate_instruction( pc + 2 );
1.16 - exit_block_newpcset(pc+2);
1.17 + exit_block_newpcset(pc+4);
1.18 return 4;
1.19 }
1.20 }
1.21 @@ -1655,7 +1655,7 @@
1.22 return 2;
1.23 } else {
1.24 sh4_translate_instruction(pc+2);
1.25 - exit_block_newpcset(pc+2);
1.26 + exit_block_newpcset(pc+4);
1.27 return 4;
1.28 }
1.29 }
1.30 @@ -1678,7 +1678,7 @@
1.31 return 2;
1.32 } else {
1.33 sh4_translate_instruction(pc+2);
1.34 - exit_block_newpcset(pc+2);
1.35 + exit_block_newpcset(pc+4);
1.36 return 4;
1.37 }
1.38 }
1.39 @@ -1702,7 +1702,7 @@
1.40 return 2;
1.41 } else {
1.42 sh4_translate_instruction(pc+2);
1.43 - exit_block_newpcset(pc+2);
1.44 + exit_block_newpcset(pc+4);
1.45 return 4;
1.46 }
1.47 }
1.48 @@ -1721,7 +1721,7 @@
1.49 return 2;
1.50 } else {
1.51 sh4_translate_instruction(pc+2);
1.52 - exit_block_newpcset(pc+2);
1.53 + exit_block_newpcset(pc+4);
1.54 return 4;
1.55 }
1.56 }
1.57 @@ -1736,7 +1736,7 @@
1.58 load_imm32( R_EAX, imm );
1.59 call_func1( sh4_raise_trap, R_EAX );
1.60 sh4_x86.tstate = TSTATE_NONE;
1.61 - exit_block_pcset(pc);
1.62 + exit_block_pcset(pc+2);
1.63 sh4_x86.branch_taken = TRUE;
1.64 return 2;
1.65 }
.