x86/x64: Fix argument check for bit shifts.

This commit is contained in:
Mike Pall 2015-05-04 06:36:16 +02:00
parent 11106aa833
commit 9622d6b8b2

View File

@ -2564,8 +2564,8 @@ static void build_subroutines(BuildCtx *ctx)
| |
|.define TOBIT_BIAS, 0x59c00000 // 2^52 + 2^51 (float, not double!). |.define TOBIT_BIAS, 0x59c00000 // 2^52 + 2^51 (float, not double!).
| |
|.macro .ffunc_bit, name, kind |.macro .ffunc_bit, name, kind, fdef
| .ffunc_1 name | fdef name
|.if kind == 2 |.if kind == 2
|.if SSE |.if SSE
| sseconst_tobit xmm1, RBa | sseconst_tobit xmm1, RBa
@ -2608,6 +2608,10 @@ static void build_subroutines(BuildCtx *ctx)
|2: |2:
|.endmacro |.endmacro
| |
|.macro .ffunc_bit, name, kind
| .ffunc_bit name, kind, .ffunc_1
|.endmacro
|
|.ffunc_bit bit_tobit, 0 |.ffunc_bit bit_tobit, 0
|.if DUALNUM or SSE |.if DUALNUM or SSE
|.if not SSE |.if not SSE
@ -2681,7 +2685,7 @@ static void build_subroutines(BuildCtx *ctx)
| |
|.macro .ffunc_bit_sh, name, ins |.macro .ffunc_bit_sh, name, ins
|.if DUALNUM |.if DUALNUM
| .ffunc_bit name, 1 | .ffunc_bit name, 1, .ffunc_2
| // Note: no inline conversion from number for 2nd argument! | // Note: no inline conversion from number for 2nd argument!
| cmp dword [BASE+12], LJ_TISNUM; jne ->fff_fallback | cmp dword [BASE+12], LJ_TISNUM; jne ->fff_fallback
| mov RA, dword [BASE+8] | mov RA, dword [BASE+8]