diff options
Diffstat (limited to 'src/dynarec')
| -rwxr-xr-x | src/dynarec/dynarec_native.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/dynarec/dynarec_native.c b/src/dynarec/dynarec_native.c index 3ed6e003..a9611b23 100755 --- a/src/dynarec/dynarec_native.c +++ b/src/dynarec/dynarec_native.c @@ -301,6 +301,13 @@ static void fillPredecessors(dynarec_native_t* dyn) dyn->insts[dyn->insts[i].x64.jmp_insts].pred_sz++; } } + // remove "has_next" from orphean branch + for(int i=0; i<dyn->size-1; ++i) { + if(!dyn->insts[i].x64.has_next) { + if(dyn->insts[i+1].x64.has_next && !dyn->insts[i+1].pred_sz) + dyn->insts[i+1].x64.has_next = 0; + } + } // second the "has_next" for(int i=0; i<dyn->size-1; ++i) { if(dyn->insts[i].x64.has_next) { |