diff options
Diffstat (limited to 'src/buildvm_x86.dasc')
-rw-r--r-- | src/buildvm_x86.dasc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc index 98998d83..b64617f9 100644 --- a/src/buildvm_x86.dasc +++ b/src/buildvm_x86.dasc | |||
@@ -1390,9 +1390,17 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
1390 | | | 1390 | | |
1391 | |6: | 1391 | |6: |
1392 | | cmp RB, LJ_TUDATA; je <1 | 1392 | | cmp RB, LJ_TUDATA; je <1 |
1393 | | cmp RB, LJ_TISNUM; ja >7 | 1393 | |.if X64 |
1394 | | mov RB, LJ_TNUMX | 1394 | | cmp RB, LJ_TNUMX; ja >8 |
1395 | | cmp RB, LJ_TISNUM; jbe >7 | ||
1396 | | mov RB, LJ_TLIGHTUD | ||
1397 | | jmp >8 | ||
1395 | |7: | 1398 | |7: |
1399 | |.else | ||
1400 | | cmp RB, LJ_TISNUM; ja >8 | ||
1401 | |.endif | ||
1402 | | mov RB, LJ_TNUMX | ||
1403 | |8: | ||
1396 | | not RB | 1404 | | not RB |
1397 | | mov TAB:RB, [DISPATCH+RB*4+DISPATCH_GL(gcroot[GCROOT_BASEMT])] | 1405 | | mov TAB:RB, [DISPATCH+RB*4+DISPATCH_GL(gcroot[GCROOT_BASEMT])] |
1398 | | jmp <2 | 1406 | | jmp <2 |