media/libjpeg/simd/jdmerss2-64.asm

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/media/libjpeg/simd/jdmerss2-64.asm	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,126 @@
     1.4 +;
     1.5 +; jdmerss2-64.asm - merged upsampling/color conversion (64-bit SSE2)
     1.6 +;
     1.7 +; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
     1.8 +; Copyright 2009 D. R. Commander
     1.9 +;
    1.10 +; Based on
    1.11 +; x86 SIMD extension for IJG JPEG library
    1.12 +; Copyright (C) 1999-2006, MIYASAKA Masaru.
    1.13 +; For conditions of distribution and use, see copyright notice in jsimdext.inc
    1.14 +;
    1.15 +; This file should be assembled with NASM (Netwide Assembler),
    1.16 +; can *not* be assembled with Microsoft's MASM or any compatible
    1.17 +; assembler (including Borland's Turbo Assembler).
    1.18 +; NASM is available from http://nasm.sourceforge.net/ or
    1.19 +; http://sourceforge.net/project/showfiles.php?group_id=6208
    1.20 +;
    1.21 +; [TAB8]
    1.22 +
    1.23 +%include "jsimdext.inc"
    1.24 +
    1.25 +; --------------------------------------------------------------------------
    1.26 +
    1.27 +%define SCALEBITS	16
    1.28 +
    1.29 +F_0_344	equ	 22554			; FIX(0.34414)
    1.30 +F_0_714	equ	 46802			; FIX(0.71414)
    1.31 +F_1_402	equ	 91881			; FIX(1.40200)
    1.32 +F_1_772	equ	116130			; FIX(1.77200)
    1.33 +F_0_402	equ	(F_1_402 - 65536)	; FIX(1.40200) - FIX(1)
    1.34 +F_0_285	equ	( 65536 - F_0_714)	; FIX(1) - FIX(0.71414)
    1.35 +F_0_228	equ	(131072 - F_1_772)	; FIX(2) - FIX(1.77200)
    1.36 +
    1.37 +; --------------------------------------------------------------------------
    1.38 +	SECTION	SEG_CONST
    1.39 +
    1.40 +	alignz	16
    1.41 +	global	EXTN(jconst_merged_upsample_sse2)
    1.42 +
    1.43 +EXTN(jconst_merged_upsample_sse2):
    1.44 +
    1.45 +PW_F0402	times 8 dw  F_0_402
    1.46 +PW_MF0228	times 8 dw -F_0_228
    1.47 +PW_MF0344_F0285	times 4 dw -F_0_344, F_0_285
    1.48 +PW_ONE		times 8 dw  1
    1.49 +PD_ONEHALF	times 4 dd  1 << (SCALEBITS-1)
    1.50 +
    1.51 +	alignz	16
    1.52 +
    1.53 +; --------------------------------------------------------------------------
    1.54 +	SECTION	SEG_TEXT
    1.55 +	BITS	64
    1.56 +
    1.57 +%include "jdmrgss2-64.asm"
    1.58 +
    1.59 +%undef RGB_RED
    1.60 +%undef RGB_GREEN
    1.61 +%undef RGB_BLUE
    1.62 +%undef RGB_PIXELSIZE
    1.63 +%define RGB_RED EXT_RGB_RED
    1.64 +%define RGB_GREEN EXT_RGB_GREEN
    1.65 +%define RGB_BLUE EXT_RGB_BLUE
    1.66 +%define RGB_PIXELSIZE EXT_RGB_PIXELSIZE
    1.67 +%define jsimd_h2v1_merged_upsample_sse2 jsimd_h2v1_extrgb_merged_upsample_sse2
    1.68 +%define jsimd_h2v2_merged_upsample_sse2 jsimd_h2v2_extrgb_merged_upsample_sse2
    1.69 +%include "jdmrgss2-64.asm"
    1.70 +
    1.71 +%undef RGB_RED
    1.72 +%undef RGB_GREEN
    1.73 +%undef RGB_BLUE
    1.74 +%undef RGB_PIXELSIZE
    1.75 +%define RGB_RED EXT_RGBX_RED
    1.76 +%define RGB_GREEN EXT_RGBX_GREEN
    1.77 +%define RGB_BLUE EXT_RGBX_BLUE
    1.78 +%define RGB_PIXELSIZE EXT_RGBX_PIXELSIZE
    1.79 +%define jsimd_h2v1_merged_upsample_sse2 jsimd_h2v1_extrgbx_merged_upsample_sse2
    1.80 +%define jsimd_h2v2_merged_upsample_sse2 jsimd_h2v2_extrgbx_merged_upsample_sse2
    1.81 +%include "jdmrgss2-64.asm"
    1.82 +
    1.83 +%undef RGB_RED
    1.84 +%undef RGB_GREEN
    1.85 +%undef RGB_BLUE
    1.86 +%undef RGB_PIXELSIZE
    1.87 +%define RGB_RED EXT_BGR_RED
    1.88 +%define RGB_GREEN EXT_BGR_GREEN
    1.89 +%define RGB_BLUE EXT_BGR_BLUE
    1.90 +%define RGB_PIXELSIZE EXT_BGR_PIXELSIZE
    1.91 +%define jsimd_h2v1_merged_upsample_sse2 jsimd_h2v1_extbgr_merged_upsample_sse2
    1.92 +%define jsimd_h2v2_merged_upsample_sse2 jsimd_h2v2_extbgr_merged_upsample_sse2
    1.93 +%include "jdmrgss2-64.asm"
    1.94 +
    1.95 +%undef RGB_RED
    1.96 +%undef RGB_GREEN
    1.97 +%undef RGB_BLUE
    1.98 +%undef RGB_PIXELSIZE
    1.99 +%define RGB_RED EXT_BGRX_RED
   1.100 +%define RGB_GREEN EXT_BGRX_GREEN
   1.101 +%define RGB_BLUE EXT_BGRX_BLUE
   1.102 +%define RGB_PIXELSIZE EXT_BGRX_PIXELSIZE
   1.103 +%define jsimd_h2v1_merged_upsample_sse2 jsimd_h2v1_extbgrx_merged_upsample_sse2
   1.104 +%define jsimd_h2v2_merged_upsample_sse2 jsimd_h2v2_extbgrx_merged_upsample_sse2
   1.105 +%include "jdmrgss2-64.asm"
   1.106 +
   1.107 +%undef RGB_RED
   1.108 +%undef RGB_GREEN
   1.109 +%undef RGB_BLUE
   1.110 +%undef RGB_PIXELSIZE
   1.111 +%define RGB_RED EXT_XBGR_RED
   1.112 +%define RGB_GREEN EXT_XBGR_GREEN
   1.113 +%define RGB_BLUE EXT_XBGR_BLUE
   1.114 +%define RGB_PIXELSIZE EXT_XBGR_PIXELSIZE
   1.115 +%define jsimd_h2v1_merged_upsample_sse2 jsimd_h2v1_extxbgr_merged_upsample_sse2
   1.116 +%define jsimd_h2v2_merged_upsample_sse2 jsimd_h2v2_extxbgr_merged_upsample_sse2
   1.117 +%include "jdmrgss2-64.asm"
   1.118 +
   1.119 +%undef RGB_RED
   1.120 +%undef RGB_GREEN
   1.121 +%undef RGB_BLUE
   1.122 +%undef RGB_PIXELSIZE
   1.123 +%define RGB_RED EXT_XRGB_RED
   1.124 +%define RGB_GREEN EXT_XRGB_GREEN
   1.125 +%define RGB_BLUE EXT_XRGB_BLUE
   1.126 +%define RGB_PIXELSIZE EXT_XRGB_PIXELSIZE
   1.127 +%define jsimd_h2v1_merged_upsample_sse2 jsimd_h2v1_extxrgb_merged_upsample_sse2
   1.128 +%define jsimd_h2v2_merged_upsample_sse2 jsimd_h2v2_extxrgb_merged_upsample_sse2
   1.129 +%include "jdmrgss2-64.asm"

mercurial