summaryrefslogtreecommitdiff
path: root/media/libjpeg/simd/jsimdcpu.asm
diff options
context:
space:
mode:
Diffstat (limited to 'media/libjpeg/simd/jsimdcpu.asm')
-rw-r--r--media/libjpeg/simd/jsimdcpu.asm104
1 files changed, 0 insertions, 104 deletions
diff --git a/media/libjpeg/simd/jsimdcpu.asm b/media/libjpeg/simd/jsimdcpu.asm
deleted file mode 100644
index 599083b182..0000000000
--- a/media/libjpeg/simd/jsimdcpu.asm
+++ /dev/null
@@ -1,104 +0,0 @@
-;
-; jsimdcpu.asm - SIMD instruction support check
-;
-; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
-;
-; Based on the 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 32
-;
-; 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 ebx
-; push ecx ; need not be preserved
-; push edx ; need not be preserved
-; push esi ; unused
- push edi
-
- xor edi,edi ; simd support flag
-
- pushfd
- pop eax
- mov edx,eax
- xor eax, 1<<21 ; flip ID bit in EFLAGS
- push eax
- popfd
- pushfd
- pop eax
- xor eax,edx
- jz short .return ; CPUID is not supported
-
- ; Check for MMX instruction support
- xor eax,eax
- cpuid
- test eax,eax
- jz short .return
-
- xor eax,eax
- inc eax
- cpuid
- mov eax,edx ; eax = Standard feature flags
-
- test eax, 1<<23 ; bit23:MMX
- jz short .no_mmx
- or edi, byte JSIMD_MMX
-.no_mmx:
- test eax, 1<<25 ; bit25:SSE
- jz short .no_sse
- or edi, byte JSIMD_SSE
-.no_sse:
- test eax, 1<<26 ; bit26:SSE2
- jz short .no_sse2
- or edi, byte JSIMD_SSE2
-.no_sse2:
-
- ; Check for 3DNow! instruction support
- mov eax, 0x80000000
- cpuid
- cmp eax, 0x80000000
- jbe short .return
-
- mov eax, 0x80000001
- cpuid
- mov eax,edx ; 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 eax,edi
-
- pop edi
-; pop esi ; unused
-; pop edx ; need not be preserved
-; pop ecx ; need not be preserved
- pop ebx
- ret
-
-; For some reason, the OS X linker does not honor the request to align the
-; segment unless we do this.
- align 16