diff options
Diffstat (limited to 'src/vm_x86.dasc')
-rw-r--r-- | src/vm_x86.dasc | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/vm_x86.dasc b/src/vm_x86.dasc index f31e595b..96ac1da8 100644 --- a/src/vm_x86.dasc +++ b/src/vm_x86.dasc | |||
@@ -2667,8 +2667,8 @@ static void build_subroutines(BuildCtx *ctx) | |||
2667 | |->cont_stitch: // Trace stitching. | 2667 | |->cont_stitch: // Trace stitching. |
2668 | |.if JIT | 2668 | |.if JIT |
2669 | | // BASE = base, RC = result, RB = mbase | 2669 | | // BASE = base, RC = result, RB = mbase |
2670 | | mov RA, [RB-24] // Save previous trace number. | 2670 | | mov TRACE:RA, [RB-24] // Save previous trace. |
2671 | | mov TMP1, RA | 2671 | | mov TMP1, TRACE:RA |
2672 | | mov TMP3, DISPATCH // Need one more register. | 2672 | | mov TMP3, DISPATCH // Need one more register. |
2673 | | mov DISPATCH, MULTRES | 2673 | | mov DISPATCH, MULTRES |
2674 | | movzx RA, PC_RA | 2674 | | movzx RA, PC_RA |
@@ -2699,11 +2699,8 @@ static void build_subroutines(BuildCtx *ctx) | |||
2699 | | ja >9 // More results wanted? | 2699 | | ja >9 // More results wanted? |
2700 | | | 2700 | | |
2701 | | mov DISPATCH, TMP3 | 2701 | | mov DISPATCH, TMP3 |
2702 | | mov RB, TMP1 // Get previous trace number. | 2702 | | mov TRACE:RD, TMP1 // Get previous trace. |
2703 | | mov RA, [DISPATCH+DISPATCH_J(trace)] | 2703 | | movzx RB, word TRACE:RD->traceno |
2704 | | mov TRACE:RD, [RA+RB*4] | ||
2705 | | test TRACE:RD, TRACE:RD | ||
2706 | | jz ->cont_nop | ||
2707 | | movzx RD, word TRACE:RD->link | 2704 | | movzx RD, word TRACE:RD->link |
2708 | | cmp RD, RB | 2705 | | cmp RD, RB |
2709 | | je ->cont_nop // Blacklisted. | 2706 | | je ->cont_nop // Blacklisted. |