Search
lxdream.org :: lxdream :: r1003:7b2688cbbca3
lxdream 0.9.1
released Jun 29
Download Now
changeset1003:7b2688cbbca3
parent1002:8ad76ddbdc58
child1004:eae001858134
authornkeynes
dateFri Mar 27 06:13:34 2009 +0000 (15 years ago)
Revert change to xltcache and fix breakpoint precision correctly
src/sh4/sh4trans.c
src/sh4/sh4x86.in
src/xlat/xltcache.c
1.1 --- a/src/sh4/sh4trans.c Wed Mar 25 12:00:29 2009 +0000
1.2 +++ b/src/sh4/sh4trans.c Fri Mar 27 06:13:34 2009 +0000
1.3 @@ -109,13 +109,6 @@
1.4 sh4_translate_begin_block(pc);
1.5
1.6 do {
1.7 - /* check for breakpoints at this pc */
1.8 - for( i=0; i<sh4_breakpoint_count; i++ ) {
1.9 - if( sh4_breakpoints[i].address == pc ) {
1.10 - sh4_translate_emit_breakpoint(pc);
1.11 - break;
1.12 - }
1.13 - }
1.14 if( eob - xlat_output < MAX_INSTRUCTION_SIZE ) {
1.15 uint8_t *oldstart = xlat_current_block->code;
1.16 xlat_current_block = xlat_extend_block( xlat_output - oldstart + MAX_INSTRUCTION_SIZE );
2.1 --- a/src/sh4/sh4x86.in Wed Mar 25 12:00:29 2009 +0000
2.2 +++ b/src/sh4/sh4x86.in Fri Mar 27 06:13:34 2009 +0000
2.3 @@ -600,6 +600,14 @@
2.4 if( !sh4_x86.in_delay_slot ) {
2.5 sh4_translate_add_recovery( (pc - sh4_x86.block_start_pc)>>1 );
2.6 }
2.7 +
2.8 + /* check for breakpoints at this pc */
2.9 + for( int i=0; i<sh4_breakpoint_count; i++ ) {
2.10 + if( sh4_breakpoints[i].address == pc ) {
2.11 + sh4_translate_emit_breakpoint(pc);
2.12 + break;
2.13 + }
2.14 + }
2.15 %%
2.16 /* ALU operations */
2.17 ADD Rm, Rn {:
3.1 --- a/src/xlat/xltcache.c Wed Mar 25 12:00:29 2009 +0000
3.2 +++ b/src/xlat/xltcache.c Fri Mar 27 06:13:34 2009 +0000
3.3 @@ -211,7 +211,7 @@
3.4 xlat_recovery_record_t records = (xlat_recovery_record_t)(&block->code[block->recover_table_offset]);
3.5 uint32_t posn;
3.6 for( posn = 1; posn < count; posn++ ) {
3.7 - if( records[posn].xlat_offset > pc_offset ) {
3.8 + if( records[posn].xlat_offset >= pc_offset ) {
3.9 return &records[posn-1];
3.10 }
3.11 }
.