diff options
Diffstat (limited to 'src/lib_jit.c')
| -rw-r--r-- | src/lib_jit.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib_jit.c b/src/lib_jit.c index e6c5271f8..6e01e374f 100644 --- a/src/lib_jit.c +++ b/src/lib_jit.c | |||
| @@ -657,6 +657,12 @@ static uint32_t jit_cpudetect(void) | |||
| 657 | uint32_t features[4]; | 657 | uint32_t features[4]; |
| 658 | if (lj_vm_cpuid(0, vendor) && lj_vm_cpuid(1, features)) { | 658 | if (lj_vm_cpuid(0, vendor) && lj_vm_cpuid(1, features)) { |
| 659 | flags |= ((features[2] >> 0)&1) * JIT_F_SSE3; | 659 | flags |= ((features[2] >> 0)&1) * JIT_F_SSE3; |
| 660 | #if LJ_TARGET_X86 | ||
| 661 | if (flags) { | ||
| 662 | lj_vm_num2i64_ptr = lj_vm_num2i64_sse3; | ||
| 663 | lj_vm_num2u64_ptr = lj_vm_num2u64_sse3; | ||
| 664 | } | ||
| 665 | #endif | ||
| 660 | flags |= ((features[2] >> 19)&1) * JIT_F_SSE4_1; | 666 | flags |= ((features[2] >> 19)&1) * JIT_F_SSE4_1; |
| 661 | if (vendor[0] >= 7) { | 667 | if (vendor[0] >= 7) { |
| 662 | uint32_t xfeatures[4]; | 668 | uint32_t xfeatures[4]; |
