align 32
- global EXTN(jsimd_rgb_ycc_convert_avx2)
+ GLOBAL_FUNCTION(jsimd_rgb_ycc_convert_avx2)
EXTN(jsimd_rgb_ycc_convert_avx2):
push ebp
%define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
align 32
- global EXTN(jsimd_rgb_ycc_convert_mmx)
+ GLOBAL_FUNCTION(jsimd_rgb_ycc_convert_mmx)
EXTN(jsimd_rgb_ycc_convert_mmx):
push ebp
align 32
- global EXTN(jsimd_rgb_ycc_convert_sse2)
+ GLOBAL_FUNCTION(jsimd_rgb_ycc_convert_sse2)
EXTN(jsimd_rgb_ycc_convert_sse2):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_rgb_ycc_convert_avx2)
+ GLOBAL_DATA(jconst_rgb_ycc_convert_avx2)
EXTN(jconst_rgb_ycc_convert_avx2):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_rgb_ycc_convert_mmx)
+ GLOBAL_DATA(jconst_rgb_ycc_convert_mmx)
EXTN(jconst_rgb_ycc_convert_mmx):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_rgb_ycc_convert_sse2)
+ GLOBAL_DATA(jconst_rgb_ycc_convert_sse2)
EXTN(jconst_rgb_ycc_convert_sse2):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_rgb_gray_convert_avx2)
+ GLOBAL_DATA(jconst_rgb_gray_convert_avx2)
EXTN(jconst_rgb_gray_convert_avx2):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_rgb_gray_convert_mmx)
+ GLOBAL_DATA(jconst_rgb_gray_convert_mmx)
EXTN(jconst_rgb_gray_convert_mmx):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_rgb_gray_convert_sse2)
+ GLOBAL_DATA(jconst_rgb_gray_convert_sse2)
EXTN(jconst_rgb_gray_convert_sse2):
align 32
- global EXTN(jsimd_rgb_gray_convert_avx2)
+ GLOBAL_FUNCTION(jsimd_rgb_gray_convert_avx2)
EXTN(jsimd_rgb_gray_convert_avx2):
push ebp
%define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
align 32
- global EXTN(jsimd_rgb_gray_convert_mmx)
+ GLOBAL_FUNCTION(jsimd_rgb_gray_convert_mmx)
EXTN(jsimd_rgb_gray_convert_mmx):
push ebp
align 32
- global EXTN(jsimd_rgb_gray_convert_sse2)
+ GLOBAL_FUNCTION(jsimd_rgb_gray_convert_sse2)
EXTN(jsimd_rgb_gray_convert_sse2):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_huff_encode_one_block)
+ GLOBAL_DATA(jconst_huff_encode_one_block)
EXTN(jconst_huff_encode_one_block):
%define put_bits edi
align 32
- global EXTN(jsimd_huff_encode_one_block_sse2)
+ GLOBAL_FUNCTION(jsimd_huff_encode_one_block_sse2)
EXTN(jsimd_huff_encode_one_block_sse2):
push ebp
%define output_data(b) (b)+28 ; JSAMPARRAY output_data
align 32
- global EXTN(jsimd_h2v1_downsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v1_downsample_avx2)
EXTN(jsimd_h2v1_downsample_avx2):
push ebp
%define output_data(b) (b)+28 ; JSAMPARRAY output_data
align 32
- global EXTN(jsimd_h2v2_downsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v2_downsample_avx2)
EXTN(jsimd_h2v2_downsample_avx2):
push ebp
%define output_data(b) (b)+28 ; JSAMPARRAY output_data
align 32
- global EXTN(jsimd_h2v1_downsample_mmx)
+ GLOBAL_FUNCTION(jsimd_h2v1_downsample_mmx)
EXTN(jsimd_h2v1_downsample_mmx):
push ebp
%define output_data(b) (b)+28 ; JSAMPARRAY output_data
align 32
- global EXTN(jsimd_h2v2_downsample_mmx)
+ GLOBAL_FUNCTION(jsimd_h2v2_downsample_mmx)
EXTN(jsimd_h2v2_downsample_mmx):
push ebp
%define output_data(b) (b)+28 ; JSAMPARRAY output_data
align 32
- global EXTN(jsimd_h2v1_downsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v1_downsample_sse2)
EXTN(jsimd_h2v1_downsample_sse2):
push ebp
%define output_data(b) (b)+28 ; JSAMPARRAY output_data
align 32
- global EXTN(jsimd_h2v2_downsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v2_downsample_sse2)
EXTN(jsimd_h2v2_downsample_sse2):
push ebp
%define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
align 32
- global EXTN(jsimd_ycc_rgb_convert_avx2)
+ GLOBAL_FUNCTION(jsimd_ycc_rgb_convert_avx2)
EXTN(jsimd_ycc_rgb_convert_avx2):
push ebp
%define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
align 32
- global EXTN(jsimd_ycc_rgb_convert_mmx)
+ GLOBAL_FUNCTION(jsimd_ycc_rgb_convert_mmx)
EXTN(jsimd_ycc_rgb_convert_mmx):
push ebp
%define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
align 32
- global EXTN(jsimd_ycc_rgb_convert_sse2)
+ GLOBAL_FUNCTION(jsimd_ycc_rgb_convert_sse2)
EXTN(jsimd_ycc_rgb_convert_sse2):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_ycc_rgb_convert_avx2)
+ GLOBAL_DATA(jconst_ycc_rgb_convert_avx2)
EXTN(jconst_ycc_rgb_convert_avx2):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_ycc_rgb_convert_mmx)
+ GLOBAL_DATA(jconst_ycc_rgb_convert_mmx)
EXTN(jconst_ycc_rgb_convert_mmx):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_ycc_rgb_convert_sse2)
+ GLOBAL_DATA(jconst_ycc_rgb_convert_sse2)
EXTN(jconst_ycc_rgb_convert_sse2):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_merged_upsample_avx2)
+ GLOBAL_DATA(jconst_merged_upsample_avx2)
EXTN(jconst_merged_upsample_avx2):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_merged_upsample_mmx)
+ GLOBAL_DATA(jconst_merged_upsample_mmx)
EXTN(jconst_merged_upsample_mmx):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_merged_upsample_sse2)
+ GLOBAL_DATA(jconst_merged_upsample_sse2)
EXTN(jconst_merged_upsample_sse2):
%define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
align 32
- global EXTN(jsimd_h2v1_merged_upsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v1_merged_upsample_avx2)
EXTN(jsimd_h2v1_merged_upsample_avx2):
push ebp
%define output_buf(b) (b)+20 ; JSAMPARRAY output_buf
align 32
- global EXTN(jsimd_h2v2_merged_upsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v2_merged_upsample_avx2)
EXTN(jsimd_h2v2_merged_upsample_avx2):
push ebp
%define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
align 32
- global EXTN(jsimd_h2v1_merged_upsample_mmx)
+ GLOBAL_FUNCTION(jsimd_h2v1_merged_upsample_mmx)
EXTN(jsimd_h2v1_merged_upsample_mmx):
push ebp
%define output_buf(b) (b)+20 ; JSAMPARRAY output_buf
align 32
- global EXTN(jsimd_h2v2_merged_upsample_mmx)
+ GLOBAL_FUNCTION(jsimd_h2v2_merged_upsample_mmx)
EXTN(jsimd_h2v2_merged_upsample_mmx):
push ebp
%define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
align 32
- global EXTN(jsimd_h2v1_merged_upsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v1_merged_upsample_sse2)
EXTN(jsimd_h2v1_merged_upsample_sse2):
push ebp
%define output_buf(b) (b)+20 ; JSAMPARRAY output_buf
align 32
- global EXTN(jsimd_h2v2_merged_upsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v2_merged_upsample_sse2)
EXTN(jsimd_h2v2_merged_upsample_sse2):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_fancy_upsample_avx2)
+ GLOBAL_DATA(jconst_fancy_upsample_avx2)
EXTN(jconst_fancy_upsample_avx2):
%define output_data_ptr(b) (b)+20 ; JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v1_fancy_upsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v1_fancy_upsample_avx2)
EXTN(jsimd_h2v1_fancy_upsample_avx2):
push ebp
%define gotptr wk(0)-SIZEOF_POINTER ; void *gotptr
align 32
- global EXTN(jsimd_h2v2_fancy_upsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v2_fancy_upsample_avx2)
EXTN(jsimd_h2v2_fancy_upsample_avx2):
push ebp
%define output_data_ptr(b) (b)+20 ; JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v1_upsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v1_upsample_avx2)
EXTN(jsimd_h2v1_upsample_avx2):
push ebp
%define output_data_ptr(b) (b)+20 ; JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v2_upsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v2_upsample_avx2)
EXTN(jsimd_h2v2_upsample_avx2):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_fancy_upsample_mmx)
+ GLOBAL_DATA(jconst_fancy_upsample_mmx)
EXTN(jconst_fancy_upsample_mmx):
%define output_data_ptr(b) (b)+20 ; JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v1_fancy_upsample_mmx)
+ GLOBAL_FUNCTION(jsimd_h2v1_fancy_upsample_mmx)
EXTN(jsimd_h2v1_fancy_upsample_mmx):
push ebp
%define gotptr wk(0)-SIZEOF_POINTER ; void *gotptr
align 32
- global EXTN(jsimd_h2v2_fancy_upsample_mmx)
+ GLOBAL_FUNCTION(jsimd_h2v2_fancy_upsample_mmx)
EXTN(jsimd_h2v2_fancy_upsample_mmx):
push ebp
%define output_data_ptr(b) (b)+20 ; JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v1_upsample_mmx)
+ GLOBAL_FUNCTION(jsimd_h2v1_upsample_mmx)
EXTN(jsimd_h2v1_upsample_mmx):
push ebp
%define output_data_ptr(b) (b)+20 ; JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v2_upsample_mmx)
+ GLOBAL_FUNCTION(jsimd_h2v2_upsample_mmx)
EXTN(jsimd_h2v2_upsample_mmx):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_fancy_upsample_sse2)
+ GLOBAL_DATA(jconst_fancy_upsample_sse2)
EXTN(jconst_fancy_upsample_sse2):
%define output_data_ptr(b) (b)+20 ; JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v1_fancy_upsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v1_fancy_upsample_sse2)
EXTN(jsimd_h2v1_fancy_upsample_sse2):
push ebp
%define gotptr wk(0)-SIZEOF_POINTER ; void *gotptr
align 32
- global EXTN(jsimd_h2v2_fancy_upsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v2_fancy_upsample_sse2)
EXTN(jsimd_h2v2_fancy_upsample_sse2):
push ebp
%define output_data_ptr(b) (b)+20 ; JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v1_upsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v1_upsample_sse2)
EXTN(jsimd_h2v1_upsample_sse2):
push ebp
%define output_data_ptr(b) (b)+20 ; JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v2_upsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v2_upsample_sse2)
EXTN(jsimd_h2v2_upsample_sse2):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_fdct_float_3dnow)
+ GLOBAL_DATA(jconst_fdct_float_3dnow)
EXTN(jconst_fdct_float_3dnow):
%define WK_NUM 2
align 32
- global EXTN(jsimd_fdct_float_3dnow)
+ GLOBAL_FUNCTION(jsimd_fdct_float_3dnow)
EXTN(jsimd_fdct_float_3dnow):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_fdct_float_sse)
+ GLOBAL_DATA(jconst_fdct_float_sse)
EXTN(jconst_fdct_float_sse):
%define WK_NUM 2
align 32
- global EXTN(jsimd_fdct_float_sse)
+ GLOBAL_FUNCTION(jsimd_fdct_float_sse)
EXTN(jsimd_fdct_float_sse):
push ebp
%define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)
alignz 32
- global EXTN(jconst_fdct_ifast_mmx)
+ GLOBAL_DATA(jconst_fdct_ifast_mmx)
EXTN(jconst_fdct_ifast_mmx):
%define WK_NUM 2
align 32
- global EXTN(jsimd_fdct_ifast_mmx)
+ GLOBAL_FUNCTION(jsimd_fdct_ifast_mmx)
EXTN(jsimd_fdct_ifast_mmx):
push ebp
%define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)
alignz 32
- global EXTN(jconst_fdct_ifast_sse2)
+ GLOBAL_DATA(jconst_fdct_ifast_sse2)
EXTN(jconst_fdct_ifast_sse2):
%define WK_NUM 2
align 32
- global EXTN(jsimd_fdct_ifast_sse2)
+ GLOBAL_FUNCTION(jsimd_fdct_ifast_sse2)
EXTN(jsimd_fdct_ifast_sse2):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_fdct_islow_avx2)
+ GLOBAL_DATA(jconst_fdct_islow_avx2)
EXTN(jconst_fdct_islow_avx2):
%define data(b) (b)+8 ; DCTELEM *data
align 32
- global EXTN(jsimd_fdct_islow_avx2)
+ GLOBAL_FUNCTION(jsimd_fdct_islow_avx2)
EXTN(jsimd_fdct_islow_avx2):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_fdct_islow_mmx)
+ GLOBAL_DATA(jconst_fdct_islow_mmx)
EXTN(jconst_fdct_islow_mmx):
%define WK_NUM 2
align 32
- global EXTN(jsimd_fdct_islow_mmx)
+ GLOBAL_FUNCTION(jsimd_fdct_islow_mmx)
EXTN(jsimd_fdct_islow_mmx):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_fdct_islow_sse2)
+ GLOBAL_DATA(jconst_fdct_islow_sse2)
EXTN(jconst_fdct_islow_sse2):
%define WK_NUM 6
align 32
- global EXTN(jsimd_fdct_islow_sse2)
+ GLOBAL_FUNCTION(jsimd_fdct_islow_sse2)
EXTN(jsimd_fdct_islow_sse2):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_idct_float_3dnow)
+ GLOBAL_DATA(jconst_idct_float_3dnow)
EXTN(jconst_idct_float_3dnow):
; FAST_FLOAT workspace[DCTSIZE2]
align 32
- global EXTN(jsimd_idct_float_3dnow)
+ GLOBAL_FUNCTION(jsimd_idct_float_3dnow)
EXTN(jsimd_idct_float_3dnow):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_idct_float_sse)
+ GLOBAL_DATA(jconst_idct_float_sse)
EXTN(jconst_idct_float_sse):
; FAST_FLOAT workspace[DCTSIZE2]
align 32
- global EXTN(jsimd_idct_float_sse)
+ GLOBAL_FUNCTION(jsimd_idct_float_sse)
EXTN(jsimd_idct_float_sse):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_idct_float_sse2)
+ GLOBAL_DATA(jconst_idct_float_sse2)
EXTN(jconst_idct_float_sse2):
; FAST_FLOAT workspace[DCTSIZE2]
align 32
- global EXTN(jsimd_idct_float_sse2)
+ GLOBAL_FUNCTION(jsimd_idct_float_sse2)
EXTN(jsimd_idct_float_sse2):
push ebp
%define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)
alignz 32
- global EXTN(jconst_idct_ifast_mmx)
+ GLOBAL_DATA(jconst_idct_ifast_mmx)
EXTN(jconst_idct_ifast_mmx):
; JCOEF workspace[DCTSIZE2]
align 32
- global EXTN(jsimd_idct_ifast_mmx)
+ GLOBAL_FUNCTION(jsimd_idct_ifast_mmx)
EXTN(jsimd_idct_ifast_mmx):
push ebp
%define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)
alignz 32
- global EXTN(jconst_idct_ifast_sse2)
+ GLOBAL_DATA(jconst_idct_ifast_sse2)
EXTN(jconst_idct_ifast_sse2):
%define WK_NUM 2
align 32
- global EXTN(jsimd_idct_ifast_sse2)
+ GLOBAL_FUNCTION(jsimd_idct_ifast_sse2)
EXTN(jsimd_idct_ifast_sse2):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_idct_islow_avx2)
+ GLOBAL_DATA(jconst_idct_islow_avx2)
EXTN(jconst_idct_islow_avx2):
%define WK_NUM 4
align 32
- global EXTN(jsimd_idct_islow_avx2)
+ GLOBAL_FUNCTION(jsimd_idct_islow_avx2)
EXTN(jsimd_idct_islow_avx2):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_idct_islow_mmx)
+ GLOBAL_DATA(jconst_idct_islow_mmx)
EXTN(jconst_idct_islow_mmx):
; JCOEF workspace[DCTSIZE2]
align 32
- global EXTN(jsimd_idct_islow_mmx)
+ GLOBAL_FUNCTION(jsimd_idct_islow_mmx)
EXTN(jsimd_idct_islow_mmx):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_idct_islow_sse2)
+ GLOBAL_DATA(jconst_idct_islow_sse2)
EXTN(jconst_idct_islow_sse2):
%define WK_NUM 12
align 32
- global EXTN(jsimd_idct_islow_sse2)
+ GLOBAL_FUNCTION(jsimd_idct_islow_sse2)
EXTN(jsimd_idct_islow_sse2):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_idct_red_mmx)
+ GLOBAL_DATA(jconst_idct_red_mmx)
EXTN(jconst_idct_red_mmx):
; JCOEF workspace[DCTSIZE2]
align 32
- global EXTN(jsimd_idct_4x4_mmx)
+ GLOBAL_FUNCTION(jsimd_idct_4x4_mmx)
EXTN(jsimd_idct_4x4_mmx):
push ebp
%define output_col(b) (b)+20 ; JDIMENSION output_col
align 32
- global EXTN(jsimd_idct_2x2_mmx)
+ GLOBAL_FUNCTION(jsimd_idct_2x2_mmx)
EXTN(jsimd_idct_2x2_mmx):
push ebp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_idct_red_sse2)
+ GLOBAL_DATA(jconst_idct_red_sse2)
EXTN(jconst_idct_red_sse2):
%define WK_NUM 2
align 32
- global EXTN(jsimd_idct_4x4_sse2)
+ GLOBAL_FUNCTION(jsimd_idct_4x4_sse2)
EXTN(jsimd_idct_4x4_sse2):
push ebp
%define output_col(b) (b)+20 ; JDIMENSION output_col
align 32
- global EXTN(jsimd_idct_2x2_sse2)
+ GLOBAL_FUNCTION(jsimd_idct_2x2_sse2)
EXTN(jsimd_idct_2x2_sse2):
push ebp
%define workspace ebp+16 ; FAST_FLOAT *workspace
align 32
- global EXTN(jsimd_convsamp_float_3dnow)
+ GLOBAL_FUNCTION(jsimd_convsamp_float_3dnow)
EXTN(jsimd_convsamp_float_3dnow):
push ebp
%define workspace ebp+16 ; FAST_FLOAT *workspace
align 32
- global EXTN(jsimd_quantize_float_3dnow)
+ GLOBAL_FUNCTION(jsimd_quantize_float_3dnow)
EXTN(jsimd_quantize_float_3dnow):
push ebp
%define workspace ebp+16 ; DCTELEM *workspace
align 32
- global EXTN(jsimd_convsamp_mmx)
+ GLOBAL_FUNCTION(jsimd_convsamp_mmx)
EXTN(jsimd_convsamp_mmx):
push ebp
%define workspace ebp+16 ; DCTELEM *workspace
align 32
- global EXTN(jsimd_quantize_mmx)
+ GLOBAL_FUNCTION(jsimd_quantize_mmx)
EXTN(jsimd_quantize_mmx):
push ebp
%define workspace ebp+16 ; FAST_FLOAT *workspace
align 32
- global EXTN(jsimd_convsamp_float_sse)
+ GLOBAL_FUNCTION(jsimd_convsamp_float_sse)
EXTN(jsimd_convsamp_float_sse):
push ebp
%define workspace ebp+16 ; FAST_FLOAT *workspace
align 32
- global EXTN(jsimd_quantize_float_sse)
+ GLOBAL_FUNCTION(jsimd_quantize_float_sse)
EXTN(jsimd_quantize_float_sse):
push ebp
%define workspace ebp+16 ; FAST_FLOAT *workspace
align 32
- global EXTN(jsimd_convsamp_float_sse2)
+ GLOBAL_FUNCTION(jsimd_convsamp_float_sse2)
EXTN(jsimd_convsamp_float_sse2):
push ebp
%define workspace ebp+16 ; FAST_FLOAT *workspace
align 32
- global EXTN(jsimd_quantize_float_sse2)
+ GLOBAL_FUNCTION(jsimd_quantize_float_sse2)
EXTN(jsimd_quantize_float_sse2):
push ebp
%define workspace ebp+16 ; DCTELEM *workspace
align 32
- global EXTN(jsimd_convsamp_avx2)
+ GLOBAL_FUNCTION(jsimd_convsamp_avx2)
EXTN(jsimd_convsamp_avx2):
push ebp
%define workspace ebp+16 ; DCTELEM *workspace
align 32
- global EXTN(jsimd_quantize_avx2)
+ GLOBAL_FUNCTION(jsimd_quantize_avx2)
EXTN(jsimd_quantize_avx2):
push ebp
%define workspace ebp+16 ; DCTELEM *workspace
align 32
- global EXTN(jsimd_convsamp_sse2)
+ GLOBAL_FUNCTION(jsimd_convsamp_sse2)
EXTN(jsimd_convsamp_sse2):
push ebp
%define workspace ebp+16 ; DCTELEM *workspace
align 32
- global EXTN(jsimd_quantize_sse2)
+ GLOBAL_FUNCTION(jsimd_quantize_sse2)
EXTN(jsimd_quantize_sse2):
push ebp
;
align 32
- global EXTN(jpeg_simd_cpu_support)
+ GLOBAL_FUNCTION(jpeg_simd_cpu_support)
EXTN(jpeg_simd_cpu_support):
push ebx
;
; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
; Copyright (C) 2010, 2016, D. R. Commander.
+; Copyright (C) 2018, Matthieu Darbois.
;
; Based on the x86 SIMD extension for IJG JPEG library - version 1.02
;
%define EXTN(name) _ %+ name ; foo() -> _foo
%endif
+; --------------------------------------------------------------------------
+; Hidden symbols
+;
+%ifdef ELF ; ----(nasm -felf[64] -DELF ...)--------
+%define GLOBAL_FUNCTION(name) global EXTN(name):function hidden
+%define GLOBAL_DATA(name) global EXTN(name):data hidden
+;%elifdef MACHO ; ----(nasm -fmacho -DMACHO ...)--------
+;%define GLOBAL_FUNCTION(name) global EXTN(name):private_extern
+;%define GLOBAL_DATA(name) global EXTN(name):private_extern
+%else
+%define GLOBAL_FUNCTION(name) global EXTN(name)
+%define GLOBAL_DATA(name) global EXTN(name)
+%endif
+
; --------------------------------------------------------------------------
; Macros for position-independent code (PIC) support
;
align 32
- global EXTN(jsimd_rgb_ycc_convert_avx2)
+ GLOBAL_FUNCTION(jsimd_rgb_ycc_convert_avx2)
EXTN(jsimd_rgb_ycc_convert_avx2):
push rbp
align 32
- global EXTN(jsimd_rgb_ycc_convert_sse2)
+ GLOBAL_FUNCTION(jsimd_rgb_ycc_convert_sse2)
EXTN(jsimd_rgb_ycc_convert_sse2):
push rbp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_rgb_ycc_convert_avx2)
+ GLOBAL_DATA(jconst_rgb_ycc_convert_avx2)
EXTN(jconst_rgb_ycc_convert_avx2):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_rgb_ycc_convert_sse2)
+ GLOBAL_DATA(jconst_rgb_ycc_convert_sse2)
EXTN(jconst_rgb_ycc_convert_sse2):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_rgb_gray_convert_avx2)
+ GLOBAL_DATA(jconst_rgb_gray_convert_avx2)
EXTN(jconst_rgb_gray_convert_avx2):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_rgb_gray_convert_sse2)
+ GLOBAL_DATA(jconst_rgb_gray_convert_sse2)
EXTN(jconst_rgb_gray_convert_sse2):
align 32
- global EXTN(jsimd_rgb_gray_convert_avx2)
+ GLOBAL_FUNCTION(jsimd_rgb_gray_convert_avx2)
EXTN(jsimd_rgb_gray_convert_avx2):
push rbp
align 32
- global EXTN(jsimd_rgb_gray_convert_sse2)
+ GLOBAL_FUNCTION(jsimd_rgb_gray_convert_sse2)
EXTN(jsimd_rgb_gray_convert_sse2):
push rbp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_huff_encode_one_block)
+ GLOBAL_DATA(jconst_huff_encode_one_block)
EXTN(jconst_huff_encode_one_block):
%define buffer rax
align 32
- global EXTN(jsimd_huff_encode_one_block_sse2)
+ GLOBAL_FUNCTION(jsimd_huff_encode_one_block_sse2)
EXTN(jsimd_huff_encode_one_block_sse2):
push rbp
; r15 = JSAMPARRAY output_data
align 32
- global EXTN(jsimd_h2v1_downsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v1_downsample_avx2)
EXTN(jsimd_h2v1_downsample_avx2):
push rbp
; r15 = JSAMPARRAY output_data
align 32
- global EXTN(jsimd_h2v2_downsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v2_downsample_avx2)
EXTN(jsimd_h2v2_downsample_avx2):
push rbp
; r15 = JSAMPARRAY output_data
align 32
- global EXTN(jsimd_h2v1_downsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v1_downsample_sse2)
EXTN(jsimd_h2v1_downsample_sse2):
push rbp
; r15 = JSAMPARRAY output_data
align 32
- global EXTN(jsimd_h2v2_downsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v2_downsample_sse2)
EXTN(jsimd_h2v2_downsample_sse2):
push rbp
%define WK_NUM 2
align 32
- global EXTN(jsimd_ycc_rgb_convert_avx2)
+ GLOBAL_FUNCTION(jsimd_ycc_rgb_convert_avx2)
EXTN(jsimd_ycc_rgb_convert_avx2):
push rbp
%define WK_NUM 2
align 32
- global EXTN(jsimd_ycc_rgb_convert_sse2)
+ GLOBAL_FUNCTION(jsimd_ycc_rgb_convert_sse2)
EXTN(jsimd_ycc_rgb_convert_sse2):
push rbp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_ycc_rgb_convert_avx2)
+ GLOBAL_DATA(jconst_ycc_rgb_convert_avx2)
EXTN(jconst_ycc_rgb_convert_avx2):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_ycc_rgb_convert_sse2)
+ GLOBAL_DATA(jconst_ycc_rgb_convert_sse2)
EXTN(jconst_ycc_rgb_convert_sse2):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_merged_upsample_avx2)
+ GLOBAL_DATA(jconst_merged_upsample_avx2)
EXTN(jconst_merged_upsample_avx2):
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_merged_upsample_sse2)
+ GLOBAL_DATA(jconst_merged_upsample_sse2)
EXTN(jconst_merged_upsample_sse2):
%define WK_NUM 3
align 32
- global EXTN(jsimd_h2v1_merged_upsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v1_merged_upsample_avx2)
EXTN(jsimd_h2v1_merged_upsample_avx2):
push rbp
; r13 = JSAMPARRAY output_buf
align 32
- global EXTN(jsimd_h2v2_merged_upsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v2_merged_upsample_avx2)
EXTN(jsimd_h2v2_merged_upsample_avx2):
push rbp
%define WK_NUM 3
align 32
- global EXTN(jsimd_h2v1_merged_upsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v1_merged_upsample_sse2)
EXTN(jsimd_h2v1_merged_upsample_sse2):
push rbp
; r13 = JSAMPARRAY output_buf
align 32
- global EXTN(jsimd_h2v2_merged_upsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v2_merged_upsample_sse2)
EXTN(jsimd_h2v2_merged_upsample_sse2):
push rbp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_fancy_upsample_avx2)
+ GLOBAL_DATA(jconst_fancy_upsample_avx2)
EXTN(jconst_fancy_upsample_avx2):
; r13 = JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v1_fancy_upsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v1_fancy_upsample_avx2)
EXTN(jsimd_h2v1_fancy_upsample_avx2):
push rbp
%define WK_NUM 4
align 32
- global EXTN(jsimd_h2v2_fancy_upsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v2_fancy_upsample_avx2)
EXTN(jsimd_h2v2_fancy_upsample_avx2):
push rbp
; r13 = JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v1_upsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v1_upsample_avx2)
EXTN(jsimd_h2v1_upsample_avx2):
push rbp
; r13 = JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v2_upsample_avx2)
+ GLOBAL_FUNCTION(jsimd_h2v2_upsample_avx2)
EXTN(jsimd_h2v2_upsample_avx2):
push rbp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_fancy_upsample_sse2)
+ GLOBAL_DATA(jconst_fancy_upsample_sse2)
EXTN(jconst_fancy_upsample_sse2):
; r13 = JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v1_fancy_upsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v1_fancy_upsample_sse2)
EXTN(jsimd_h2v1_fancy_upsample_sse2):
push rbp
%define WK_NUM 4
align 32
- global EXTN(jsimd_h2v2_fancy_upsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v2_fancy_upsample_sse2)
EXTN(jsimd_h2v2_fancy_upsample_sse2):
push rbp
; r13 = JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v1_upsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v1_upsample_sse2)
EXTN(jsimd_h2v1_upsample_sse2):
push rbp
; r13 = JSAMPARRAY *output_data_ptr
align 32
- global EXTN(jsimd_h2v2_upsample_sse2)
+ GLOBAL_FUNCTION(jsimd_h2v2_upsample_sse2)
EXTN(jsimd_h2v2_upsample_sse2):
push rbp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_fdct_float_sse)
+ GLOBAL_DATA(jconst_fdct_float_sse)
EXTN(jconst_fdct_float_sse):
%define WK_NUM 2
align 32
- global EXTN(jsimd_fdct_float_sse)
+ GLOBAL_FUNCTION(jsimd_fdct_float_sse)
EXTN(jsimd_fdct_float_sse):
push rbp
%define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)
alignz 32
- global EXTN(jconst_fdct_ifast_sse2)
+ GLOBAL_DATA(jconst_fdct_ifast_sse2)
EXTN(jconst_fdct_ifast_sse2):
%define WK_NUM 2
align 32
- global EXTN(jsimd_fdct_ifast_sse2)
+ GLOBAL_FUNCTION(jsimd_fdct_ifast_sse2)
EXTN(jsimd_fdct_ifast_sse2):
push rbp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_fdct_islow_avx2)
+ GLOBAL_DATA(jconst_fdct_islow_avx2)
EXTN(jconst_fdct_islow_avx2):
; r10 = DCTELEM *data
align 32
- global EXTN(jsimd_fdct_islow_avx2)
+ GLOBAL_FUNCTION(jsimd_fdct_islow_avx2)
EXTN(jsimd_fdct_islow_avx2):
push rbp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_fdct_islow_sse2)
+ GLOBAL_DATA(jconst_fdct_islow_sse2)
EXTN(jconst_fdct_islow_sse2):
%define WK_NUM 6
align 32
- global EXTN(jsimd_fdct_islow_sse2)
+ GLOBAL_FUNCTION(jsimd_fdct_islow_sse2)
EXTN(jsimd_fdct_islow_sse2):
push rbp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_idct_float_sse2)
+ GLOBAL_DATA(jconst_idct_float_sse2)
EXTN(jconst_idct_float_sse2):
; FAST_FLOAT workspace[DCTSIZE2]
align 32
- global EXTN(jsimd_idct_float_sse2)
+ GLOBAL_FUNCTION(jsimd_idct_float_sse2)
EXTN(jsimd_idct_float_sse2):
push rbp
%define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)
alignz 32
- global EXTN(jconst_idct_ifast_sse2)
+ GLOBAL_DATA(jconst_idct_ifast_sse2)
EXTN(jconst_idct_ifast_sse2):
%define WK_NUM 2
align 32
- global EXTN(jsimd_idct_ifast_sse2)
+ GLOBAL_FUNCTION(jsimd_idct_ifast_sse2)
EXTN(jsimd_idct_ifast_sse2):
push rbp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_idct_islow_avx2)
+ GLOBAL_DATA(jconst_idct_islow_avx2)
EXTN(jconst_idct_islow_avx2):
; r13d = JDIMENSION output_col
align 32
- global EXTN(jsimd_idct_islow_avx2)
+ GLOBAL_FUNCTION(jsimd_idct_islow_avx2)
EXTN(jsimd_idct_islow_avx2):
push rbp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_idct_islow_sse2)
+ GLOBAL_DATA(jconst_idct_islow_sse2)
EXTN(jconst_idct_islow_sse2):
%define WK_NUM 12
align 32
- global EXTN(jsimd_idct_islow_sse2)
+ GLOBAL_FUNCTION(jsimd_idct_islow_sse2)
EXTN(jsimd_idct_islow_sse2):
push rbp
SECTION SEG_CONST
alignz 32
- global EXTN(jconst_idct_red_sse2)
+ GLOBAL_DATA(jconst_idct_red_sse2)
EXTN(jconst_idct_red_sse2):
%define WK_NUM 2
align 32
- global EXTN(jsimd_idct_4x4_sse2)
+ GLOBAL_FUNCTION(jsimd_idct_4x4_sse2)
EXTN(jsimd_idct_4x4_sse2):
push rbp
; r13d = JDIMENSION output_col
align 32
- global EXTN(jsimd_idct_2x2_sse2)
+ GLOBAL_FUNCTION(jsimd_idct_2x2_sse2)
EXTN(jsimd_idct_2x2_sse2):
push rbp
; r12 = FAST_FLOAT *workspace
align 32
- global EXTN(jsimd_convsamp_float_sse2)
+ GLOBAL_FUNCTION(jsimd_convsamp_float_sse2)
EXTN(jsimd_convsamp_float_sse2):
push rbp
; r12 = FAST_FLOAT *workspace
align 32
- global EXTN(jsimd_quantize_float_sse2)
+ GLOBAL_FUNCTION(jsimd_quantize_float_sse2)
EXTN(jsimd_quantize_float_sse2):
push rbp
; r12 = DCTELEM *workspace
align 32
- global EXTN(jsimd_convsamp_avx2)
+ GLOBAL_FUNCTION(jsimd_convsamp_avx2)
EXTN(jsimd_convsamp_avx2):
push rbp
; r12 = DCTELEM *workspace
align 32
- global EXTN(jsimd_quantize_avx2)
+ GLOBAL_FUNCTION(jsimd_quantize_avx2)
EXTN(jsimd_quantize_avx2):
push rbp
; r12 = DCTELEM *workspace
align 32
- global EXTN(jsimd_convsamp_sse2)
+ GLOBAL_FUNCTION(jsimd_convsamp_sse2)
EXTN(jsimd_convsamp_sse2):
push rbp
; r12 = DCTELEM *workspace
align 32
- global EXTN(jsimd_quantize_sse2)
+ GLOBAL_FUNCTION(jsimd_quantize_sse2)
EXTN(jsimd_quantize_sse2):
push rbp
;
align 32
- global EXTN(jpeg_simd_cpu_support)
+ GLOBAL_FUNCTION(jpeg_simd_cpu_support)
EXTN(jpeg_simd_cpu_support):
push rbx