diff options
Diffstat (limited to 'common/jpeg/simd/jsimdcpu-64.asm')
-rw-r--r-- | common/jpeg/simd/jsimdcpu-64.asm | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/common/jpeg/simd/jsimdcpu-64.asm b/common/jpeg/simd/jsimdcpu-64.asm deleted file mode 100644 index 6eaf629c..00000000 --- a/common/jpeg/simd/jsimdcpu-64.asm +++ /dev/null @@ -1,95 +0,0 @@ -; -; jsimdcpu.asm - SIMD instruction support check -; -; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB -; Copyright 2009 D. R. Commander -; -; Based on -; x86 SIMD extension for IJG JPEG library -; Copyright (C) 1999-2006, MIYASAKA Masaru. -; For conditions of distribution and use, see copyright notice in jsimdext.inc -; -; This file should be assembled with NASM (Netwide Assembler), -; can *not* be assembled with Microsoft's MASM or any compatible -; assembler (including Borland's Turbo Assembler). -; NASM is available from http://nasm.sourceforge.net/ or -; http://sourceforge.net/project/showfiles.php?group_id=6208 -; -; [TAB8] - -%include "jsimdext.inc" - -; -------------------------------------------------------------------------- - SECTION SEG_TEXT - BITS 64 -; -; Check if the CPU supports SIMD instructions -; -; GLOBAL(unsigned int) -; jpeg_simd_cpu_support (void) -; - - align 16 - global EXTN(jpeg_simd_cpu_support) - -EXTN(jpeg_simd_cpu_support): - push rbx - - xor rdi,rdi ; simd support flag - - pushfq - pop rax - mov rdx,rax - xor rax, 1<<21 ; flip ID bit in EFLAGS - push rax - popfq - pushfq - pop rax - xor rax,rdx - jz short .return ; CPUID is not supported - - ; Check for MMX instruction support - xor rax,rax - cpuid - test rax,rax - jz short .return - - xor rax,rax - inc rax - cpuid - mov rax,rdx ; rax = Standard feature flags - - test rax, 1<<23 ; bit23:MMX - jz short .no_mmx - or rdi, byte JSIMD_MMX -.no_mmx: - test rax, 1<<25 ; bit25:SSE - jz short .no_sse - or rdi, byte JSIMD_SSE -.no_sse: - test rax, 1<<26 ; bit26:SSE2 - jz short .no_sse2 - or rdi, byte JSIMD_SSE2 -.no_sse2: - - ; Check for 3DNow! instruction support - mov eax, 0x80000000 - cpuid - cmp eax, 0x80000000 - jbe short .return - - mov rax, 0x80000001 - cpuid - mov rax,rdx ; eax = Extended feature flags - - test eax, 1<<31 ; bit31:3DNow!(vendor independent) - jz short .no_3dnow - or edi, byte JSIMD_3DNOW -.no_3dnow: - -.return: - mov rax,rdi - - pop rbx - ret - |