filename | src/sh4/sh4x86.in |
changeset | 974:16b079ed11bb |
prev | 956:4c1ed9e03985 |
next | 975:007bf7eb944f |
author | nkeynes |
date | Mon Jan 26 03:09:53 2009 +0000 (15 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 +00001.2 +++ b/src/sh4/sh4x86.in Mon Jan 26 03:09:53 2009 +00001.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 }
.