diff options
| author | Mike Pall <mike> | 2015-05-04 06:36:16 +0200 |
|---|---|---|
| committer | Mike Pall <mike> | 2015-05-04 06:36:16 +0200 |
| commit | 9622d6b8b291644278a7d830556ebf6d670d24ca (patch) | |
| tree | 55a321cb67b5bb5c439572adb2939693d23b2c61 /src | |
| parent | 11106aa83374c95f88679452e997229ecedefdcc (diff) | |
| download | luajit-9622d6b8b291644278a7d830556ebf6d670d24ca.tar.gz luajit-9622d6b8b291644278a7d830556ebf6d670d24ca.tar.bz2 luajit-9622d6b8b291644278a7d830556ebf6d670d24ca.zip | |
x86/x64: Fix argument check for bit shifts.
Diffstat (limited to 'src')
| -rw-r--r-- | src/vm_x86.dasc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/vm_x86.dasc b/src/vm_x86.dasc index 4544a3be..6cdb8cbd 100644 --- a/src/vm_x86.dasc +++ b/src/vm_x86.dasc | |||
| @@ -2564,8 +2564,8 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 2564 | | | 2564 | | |
| 2565 | |.define TOBIT_BIAS, 0x59c00000 // 2^52 + 2^51 (float, not double!). | 2565 | |.define TOBIT_BIAS, 0x59c00000 // 2^52 + 2^51 (float, not double!). |
| 2566 | | | 2566 | | |
| 2567 | |.macro .ffunc_bit, name, kind | 2567 | |.macro .ffunc_bit, name, kind, fdef |
| 2568 | | .ffunc_1 name | 2568 | | fdef name |
| 2569 | |.if kind == 2 | 2569 | |.if kind == 2 |
| 2570 | |.if SSE | 2570 | |.if SSE |
| 2571 | | sseconst_tobit xmm1, RBa | 2571 | | sseconst_tobit xmm1, RBa |
| @@ -2608,6 +2608,10 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 2608 | |2: | 2608 | |2: |
| 2609 | |.endmacro | 2609 | |.endmacro |
| 2610 | | | 2610 | | |
| 2611 | |.macro .ffunc_bit, name, kind | ||
| 2612 | | .ffunc_bit name, kind, .ffunc_1 | ||
| 2613 | |.endmacro | ||
| 2614 | | | ||
| 2611 | |.ffunc_bit bit_tobit, 0 | 2615 | |.ffunc_bit bit_tobit, 0 |
| 2612 | |.if DUALNUM or SSE | 2616 | |.if DUALNUM or SSE |
| 2613 | |.if not SSE | 2617 | |.if not SSE |
| @@ -2681,7 +2685,7 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 2681 | | | 2685 | | |
| 2682 | |.macro .ffunc_bit_sh, name, ins | 2686 | |.macro .ffunc_bit_sh, name, ins |
| 2683 | |.if DUALNUM | 2687 | |.if DUALNUM |
| 2684 | | .ffunc_bit name, 1 | 2688 | | .ffunc_bit name, 1, .ffunc_2 |
| 2685 | | // Note: no inline conversion from number for 2nd argument! | 2689 | | // Note: no inline conversion from number for 2nd argument! |
| 2686 | | cmp dword [BASE+12], LJ_TISNUM; jne ->fff_fallback | 2690 | | cmp dword [BASE+12], LJ_TISNUM; jne ->fff_fallback |
| 2687 | | mov RA, dword [BASE+8] | 2691 | | mov RA, dword [BASE+8] |
