Index: jdmarker.c =================================================================== --- jdmarker.c (revision 829) +++ jdmarker.c (working copy) @@ -910,7 +910,7 @@ } if (cinfo->marker->discarded_bytes != 0) { - WARNMS2(cinfo, JWRN_EXTRANEOUS_DATA, cinfo->marker->discarded_bytes, c); + TRACEMS2(cinfo, 1, JWRN_EXTRANEOUS_DATA, cinfo->marker->discarded_bytes, c); cinfo->marker->discarded_bytes = 0; } @@ -944,7 +944,144 @@ return TRUE; } +#ifdef MOTION_JPEG_SUPPORTED +/* The default Huffman tables used by motion JPEG frames. When a motion JPEG + * frame does not have DHT tables, we should use the huffman tables suggested by + * the JPEG standard. Each of these tables represents a member of the JHUFF_TBLS + * struct so we can just copy it to the according JHUFF_TBLS member. + */ +/* DC table 0 */ +LOCAL(const unsigned char) mjpg_dc0_bits[] = { + 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +LOCAL(const unsigned char) mjpg_dc0_huffval[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B +}; + +/* DC table 1 */ +LOCAL(const unsigned char) mjpg_dc1_bits[] = { + 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +LOCAL(const unsigned char) mjpg_dc1_huffval[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B +}; + +/* AC table 0 */ +LOCAL(const unsigned char) mjpg_ac0_bits[] = { + 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04, 0x03, + 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7D +}; + +LOCAL(const unsigned char) mjpg_ac0_huffval[] = { + 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, + 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, + 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xA1, 0x08, + 0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, 0xD1, 0xF0, + 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16, + 0x17, 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2A, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, + 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, + 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, + 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, + 0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, + 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, + 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, + 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, + 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, + 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, + 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE1, 0xE2, + 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, + 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, + 0xF9, 0xFA +}; + +/* AC table 1 */ +LOCAL(const unsigned char) mjpg_ac1_bits[] = { + 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, + 0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77 +}; + +LOCAL(const unsigned char) mjpg_ac1_huffval[] = { + 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, + 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, + 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, + 0xA1, 0xB1, 0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0, + 0x15, 0x62, 0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34, + 0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, + 0x27, 0x28, 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, + 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, + 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, + 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, + 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, + 0x79, 0x7A, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, + 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, + 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, + 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, + 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, + 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, + 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, + 0xEA, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, + 0xF9, 0xFA +}; + +/* Loads the default Huffman tables used by motion JPEG frames. This function + * just copies the huffman tables suggested in the JPEG standard when we have + * not load them. + */ +LOCAL(void) +mjpg_load_huff_tables (j_decompress_ptr cinfo) +{ + JHUFF_TBL *htblptr; + + if (! cinfo->dc_huff_tbl_ptrs[0]) { + htblptr = jpeg_alloc_huff_table((j_common_ptr) cinfo); + MEMZERO(htblptr, SIZEOF(JHUFF_TBL)); + MEMCOPY(&htblptr->bits[1], mjpg_dc0_bits, SIZEOF(mjpg_dc0_bits)); + MEMCOPY(&htblptr->huffval[0], mjpg_dc0_huffval, SIZEOF(mjpg_dc0_huffval)); + cinfo->dc_huff_tbl_ptrs[0] = htblptr; + } + + if (! cinfo->dc_huff_tbl_ptrs[1]) { + htblptr = jpeg_alloc_huff_table((j_common_ptr) cinfo); + MEMZERO(htblptr, SIZEOF(JHUFF_TBL)); + MEMCOPY(&htblptr->bits[1], mjpg_dc1_bits, SIZEOF(mjpg_dc1_bits)); + MEMCOPY(&htblptr->huffval[0], mjpg_dc1_huffval, SIZEOF(mjpg_dc1_huffval)); + cinfo->dc_huff_tbl_ptrs[1] = htblptr; + } + + if (! cinfo->ac_huff_tbl_ptrs[0]) { + htblptr = jpeg_alloc_huff_table((j_common_ptr) cinfo); + MEMZERO(htblptr, SIZEOF(JHUFF_TBL)); + MEMCOPY(&htblptr->bits[1], mjpg_ac0_bits, SIZEOF(mjpg_ac0_bits)); + MEMCOPY(&htblptr->huffval[0], mjpg_ac0_huffval, SIZEOF(mjpg_ac0_huffval)); + cinfo->ac_huff_tbl_ptrs[0] = htblptr; + } + + if (! cinfo->ac_huff_tbl_ptrs[1]) { + htblptr = jpeg_alloc_huff_table((j_common_ptr) cinfo); + MEMZERO(htblptr, SIZEOF(JHUFF_TBL)); + MEMCOPY(&htblptr->bits[1], mjpg_ac1_bits, SIZEOF(mjpg_ac1_bits)); + MEMCOPY(&htblptr->huffval[0], mjpg_ac1_huffval, SIZEOF(mjpg_ac1_huffval)); + cinfo->ac_huff_tbl_ptrs[1] = htblptr; + } +} + +#else + +#define mjpg_load_huff_tables(cinfo) + +#endif /* MOTION_JPEG_SUPPORTED */ + + /* * Read markers until SOS or EOI. * @@ -1013,6 +1150,7 @@ break; case M_SOS: + mjpg_load_huff_tables(cinfo); if (! get_sos(cinfo)) return JPEG_SUSPENDED; cinfo->unread_marker = 0; /* processed the marker */ Index: jmorecfg.h =================================================================== --- jmorecfg.h (revision 829) +++ jmorecfg.h (working copy) @@ -153,14 +153,18 @@ /* INT16 must hold at least the values -32768..32767. */ #ifndef XMD_H /* X11/xmd.h correctly defines INT16 */ +#ifndef _BASETSD_H_ /* basetsd.h correctly defines INT32 */ typedef short INT16; #endif +#endif /* INT32 must hold at least signed 32-bit values. */ #ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ +#ifndef _BASETSD_H_ /* basetsd.h correctly defines INT32 */ typedef long INT32; #endif +#endif /* Datatype used for image dimensions. The JPEG standard only supports * images up to 64K*64K due to 16-bit fields in SOF markers. Therefore @@ -210,11 +214,13 @@ * explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol. */ +#ifndef FAR #ifdef NEED_FAR_POINTERS #define FAR far #else #define FAR #endif +#endif /* Index: jpeglib.h =================================================================== --- jpeglib.h (revision 829) +++ jpeglib.h (working copy) @@ -15,6 +15,10 @@ #ifndef JPEGLIB_H #define JPEGLIB_H +/* Begin chromium edits */ +#include "jpeglibmangler.h" +/* End chromium edits */ + /* * First we include the configuration files that record how this * installation of the JPEG library is set up. jconfig.h can be Index: jpeglibmangler.h =================================================================== --- jpeglibmangler.h (revision 0) +++ jpeglibmangler.h (revision 0) @@ -0,0 +1,113 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_LIBJPEG_TURBO_JPEGLIBMANGLER_H_ +#define THIRD_PARTY_LIBJPEG_TURBO_JPEGLIBMANGLER_H_ + +// Mangle all externally visible function names so we can build our own libjpeg +// without system libraries trying to use it. + +#define jpeg_make_c_derived_tbl chromium_jpeg_make_c_derived_tbl +#define jpeg_gen_optimal_table chromium_jpeg_gen_optimal_table +#define jpeg_make_d_derived_tbl chromium_jpeg_make_d_derived_tbl +#define jpeg_fill_bit_buffer chromium_jpeg_fill_bit_buffer +#define jpeg_huff_decode chromium_jpeg_huff_decode +#define jpeg_fdct_islow chromium_jpeg_fdct_islow +#define jpeg_fdct_ifast chromium_jpeg_fdct_ifast +#define jpeg_fdct_float chromium_jpeg_fdct_float +#define jpeg_idct_islow chromium_jpeg_idct_islow +#define jpeg_idct_ifast chromium_jpeg_idct_ifast +#define jpeg_idct_float chromium_jpeg_idct_float +#define jpeg_idct_4x4 chromium_jpeg_idct_4x4 +#define jpeg_idct_2x2 chromium_jpeg_idct_2x2 +#define jpeg_idct_1x1 chromium_jpeg_idct_1x1 +#define jinit_compress_master chromium_jinit_compress_master +#define jinit_c_master_control chromium_jinit_c_master_control +#define jinit_c_main_controller chromium_jinit_c_main_controller +#define jinit_c_prep_controller chromium_jinit_c_prep_controller +#define jinit_c_coef_controller chromium_jinit_c_coef_controller +#define jinit_color_converter chromium_jinit_color_converter +#define jinit_downsampler chromium_jinit_downsampler +#define jinit_forward_dct chromium_jinit_forward_dct +#define jinit_huff_encoder chromium_jinit_huff_encoder +#define jinit_phuff_encoder chromium_jinit_phuff_encoder +#define jinit_marker_writer chromium_jinit_marker_writer +#define jinit_master_decompress chromium_jinit_master_decompress +#define jinit_d_main_controller chromium_jinit_d_main_controller +#define jinit_d_coef_controller chromium_jinit_d_coef_controller +#define jinit_d_post_controller chromium_jinit_d_post_controller +#define jinit_input_controller chromium_jinit_input_controller +#define jinit_marker_reader chromium_jinit_marker_reader +#define jinit_huff_decoder chromium_jinit_huff_decoder +#define jinit_phuff_decoder chromium_jinit_phuff_decoder +#define jinit_inverse_dct chromium_jinit_inverse_dct +#define jinit_upsampler chromium_jinit_upsampler +#define jinit_color_deconverter chromium_jinit_color_deconverter +#define jinit_1pass_quantizer chromium_jinit_1pass_quantizer +#define jinit_2pass_quantizer chromium_jinit_2pass_quantizer +#define jinit_merged_upsampler chromium_jinit_merged_upsampler +#define jinit_memory_mgr chromium_jinit_memory_mgr +#define jdiv_round_up chromium_jdiv_round_up +#define jround_up chromium_jround_up +#define jcopy_sample_rows chromium_jcopy_sample_rows +#define jcopy_block_row chromium_jcopy_block_row +#define jzero_far chromium_jzero_far +#define jpeg_std_error chromium_jpeg_std_error +#define jpeg_CreateCompress chromium_jpeg_CreateCompress +#define jpeg_CreateDecompress chromium_jpeg_CreateDecompress +#define jpeg_destroy_compress chromium_jpeg_destroy_compress +#define jpeg_destroy_decompress chromium_jpeg_destroy_decompress +#define jpeg_stdio_dest chromium_jpeg_stdio_dest +#define jpeg_stdio_src chromium_jpeg_stdio_src +#define jpeg_set_defaults chromium_jpeg_set_defaults +#define jpeg_set_colorspace chromium_jpeg_set_colorspace +#define jpeg_default_colorspace chromium_jpeg_default_colorspace +#define jpeg_set_quality chromium_jpeg_set_quality +#define jpeg_set_linear_quality chromium_jpeg_set_linear_quality +#define jpeg_add_quant_table chromium_jpeg_add_quant_table +#define jpeg_quality_scaling chromium_jpeg_quality_scaling +#define jpeg_simple_progression chromium_jpeg_simple_progression +#define jpeg_suppress_tables chromium_jpeg_suppress_tables +#define jpeg_alloc_quant_table chromium_jpeg_alloc_quant_table +#define jpeg_alloc_huff_table chromium_jpeg_alloc_huff_table +#define jpeg_start_compress chromium_jpeg_start_compress +#define jpeg_write_scanlines chromium_jpeg_write_scanlines +#define jpeg_finish_compress chromium_jpeg_finish_compress +#define jpeg_write_raw_data chromium_jpeg_write_raw_data +#define jpeg_write_marker chromium_jpeg_write_marker +#define jpeg_write_m_header chromium_jpeg_write_m_header +#define jpeg_write_m_byte chromium_jpeg_write_m_byte +#define jpeg_write_tables chromium_jpeg_write_tables +#define jpeg_read_header chromium_jpeg_read_header +#define jpeg_start_decompress chromium_jpeg_start_decompress +#define jpeg_read_scanlines chromium_jpeg_read_scanlines +#define jpeg_finish_decompress chromium_jpeg_finish_decompress +#define jpeg_read_raw_data chromium_jpeg_read_raw_data +#define jpeg_has_multiple_scans chromium_jpeg_has_multiple_scans +#define jpeg_start_output chromium_jpeg_start_output +#define jpeg_finish_output chromium_jpeg_finish_output +#define jpeg_input_complete chromium_jpeg_input_complete +#define jpeg_new_colormap chromium_jpeg_new_colormap +#define jpeg_consume_input chromium_jpeg_consume_input +#define jpeg_calc_output_dimensions chromium_jpeg_calc_output_dimensions +#define jpeg_save_markers chromium_jpeg_save_markers +#define jpeg_set_marker_processor chromium_jpeg_set_marker_processor +#define jpeg_read_coefficients chromium_jpeg_read_coefficients +#define jpeg_write_coefficients chromium_jpeg_write_coefficients +#define jpeg_copy_critical_parameters chromium_jpeg_copy_critical_parameters +#define jpeg_abort_compress chromium_jpeg_abort_compress +#define jpeg_abort_decompress chromium_jpeg_abort_decompress +#define jpeg_abort chromium_jpeg_abort +#define jpeg_destroy chromium_jpeg_destroy +#define jpeg_resync_to_restart chromium_jpeg_resync_to_restart +#define jpeg_get_small chromium_jpeg_get_small +#define jpeg_free_small chromium_jpeg_free_small +#define jpeg_get_large chromium_jpeg_get_large +#define jpeg_free_large chromium_jpeg_free_large +#define jpeg_mem_available chromium_jpeg_mem_available +#define jpeg_open_backing_store chromium_jpeg_open_backing_store +#define jpeg_mem_init chromium_jpeg_mem_init +#define jpeg_mem_term chromium_jpeg_mem_term + +#endif // THIRD_PARTY_LIBJPEG_TURBO_JPEGLIBMANGLER_H_ Index: simd/jcgrass2-64.asm =================================================================== --- simd/jcgrass2-64.asm (revision 829) +++ simd/jcgrass2-64.asm (working copy) @@ -30,7 +30,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_rgb_gray_convert_sse2) + global EXTN(jconst_rgb_gray_convert_sse2) PRIVATE EXTN(jconst_rgb_gray_convert_sse2): Index: simd/jiss2fst.asm =================================================================== --- simd/jiss2fst.asm (revision 829) +++ simd/jiss2fst.asm (working copy) @@ -59,7 +59,7 @@ %define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS) alignz 16 - global EXTN(jconst_idct_ifast_sse2) + global EXTN(jconst_idct_ifast_sse2) PRIVATE EXTN(jconst_idct_ifast_sse2): @@ -92,7 +92,7 @@ %define WK_NUM 2 align 16 - global EXTN(jsimd_idct_ifast_sse2) + global EXTN(jsimd_idct_ifast_sse2) PRIVATE EXTN(jsimd_idct_ifast_sse2): push ebp Index: simd/jcclrss2-64.asm =================================================================== --- simd/jcclrss2-64.asm (revision 829) +++ simd/jcclrss2-64.asm (working copy) @@ -37,7 +37,7 @@ align 16 - global EXTN(jsimd_rgb_ycc_convert_sse2) + global EXTN(jsimd_rgb_ycc_convert_sse2) PRIVATE EXTN(jsimd_rgb_ycc_convert_sse2): push rbp Index: simd/jiss2red-64.asm =================================================================== --- simd/jiss2red-64.asm (revision 829) +++ simd/jiss2red-64.asm (working copy) @@ -73,7 +73,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_idct_red_sse2) + global EXTN(jconst_idct_red_sse2) PRIVATE EXTN(jconst_idct_red_sse2): @@ -114,7 +114,7 @@ %define WK_NUM 2 align 16 - global EXTN(jsimd_idct_4x4_sse2) + global EXTN(jsimd_idct_4x4_sse2) PRIVATE EXTN(jsimd_idct_4x4_sse2): push rbp @@ -413,7 +413,7 @@ ; r13 = JDIMENSION output_col align 16 - global EXTN(jsimd_idct_2x2_sse2) + global EXTN(jsimd_idct_2x2_sse2) PRIVATE EXTN(jsimd_idct_2x2_sse2): push rbp Index: simd/ji3dnflt.asm =================================================================== --- simd/ji3dnflt.asm (revision 829) +++ simd/ji3dnflt.asm (working copy) @@ -27,7 +27,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_idct_float_3dnow) + global EXTN(jconst_idct_float_3dnow) PRIVATE EXTN(jconst_idct_float_3dnow): @@ -63,7 +63,7 @@ ; FAST_FLOAT workspace[DCTSIZE2] align 16 - global EXTN(jsimd_idct_float_3dnow) + global EXTN(jsimd_idct_float_3dnow) PRIVATE EXTN(jsimd_idct_float_3dnow): push ebp Index: simd/jsimdcpu.asm =================================================================== --- simd/jsimdcpu.asm (revision 829) +++ simd/jsimdcpu.asm (working copy) @@ -29,7 +29,7 @@ ; align 16 - global EXTN(jpeg_simd_cpu_support) + global EXTN(jpeg_simd_cpu_support) PRIVATE EXTN(jpeg_simd_cpu_support): push ebx Index: simd/jdmerss2-64.asm =================================================================== --- simd/jdmerss2-64.asm (revision 829) +++ simd/jdmerss2-64.asm (working copy) @@ -35,7 +35,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_merged_upsample_sse2) + global EXTN(jconst_merged_upsample_sse2) PRIVATE EXTN(jconst_merged_upsample_sse2): Index: simd/jdsammmx.asm =================================================================== --- simd/jdsammmx.asm (revision 829) +++ simd/jdsammmx.asm (working copy) @@ -22,7 +22,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_fancy_upsample_mmx) + global EXTN(jconst_fancy_upsample_mmx) PRIVATE EXTN(jconst_fancy_upsample_mmx): @@ -58,7 +58,7 @@ %define output_data_ptr(b) (b)+20 ; JSAMPARRAY * output_data_ptr align 16 - global EXTN(jsimd_h2v1_fancy_upsample_mmx) + global EXTN(jsimd_h2v1_fancy_upsample_mmx) PRIVATE EXTN(jsimd_h2v1_fancy_upsample_mmx): push ebp @@ -216,7 +216,7 @@ %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr align 16 - global EXTN(jsimd_h2v2_fancy_upsample_mmx) + global EXTN(jsimd_h2v2_fancy_upsample_mmx) PRIVATE EXTN(jsimd_h2v2_fancy_upsample_mmx): push ebp @@ -542,7 +542,7 @@ %define output_data_ptr(b) (b)+20 ; JSAMPARRAY * output_data_ptr align 16 - global EXTN(jsimd_h2v1_upsample_mmx) + global EXTN(jsimd_h2v1_upsample_mmx) PRIVATE EXTN(jsimd_h2v1_upsample_mmx): push ebp @@ -643,7 +643,7 @@ %define output_data_ptr(b) (b)+20 ; JSAMPARRAY * output_data_ptr align 16 - global EXTN(jsimd_h2v2_upsample_mmx) + global EXTN(jsimd_h2v2_upsample_mmx) PRIVATE EXTN(jsimd_h2v2_upsample_mmx): push ebp Index: simd/jdmrgmmx.asm =================================================================== --- simd/jdmrgmmx.asm (revision 829) +++ simd/jdmrgmmx.asm (working copy) @@ -40,7 +40,7 @@ %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr align 16 - global EXTN(jsimd_h2v1_merged_upsample_mmx) + global EXTN(jsimd_h2v1_merged_upsample_mmx) PRIVATE EXTN(jsimd_h2v1_merged_upsample_mmx): push ebp @@ -409,7 +409,7 @@ %define output_buf(b) (b)+20 ; JSAMPARRAY output_buf align 16 - global EXTN(jsimd_h2v2_merged_upsample_mmx) + global EXTN(jsimd_h2v2_merged_upsample_mmx) PRIVATE EXTN(jsimd_h2v2_merged_upsample_mmx): push ebp Index: simd/jdsamss2.asm =================================================================== --- simd/jdsamss2.asm (revision 829) +++ simd/jdsamss2.asm (working copy) @@ -22,7 +22,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_fancy_upsample_sse2) + global EXTN(jconst_fancy_upsample_sse2) PRIVATE EXTN(jconst_fancy_upsample_sse2): @@ -58,7 +58,7 @@ %define output_data_ptr(b) (b)+20 ; JSAMPARRAY * output_data_ptr align 16 - global EXTN(jsimd_h2v1_fancy_upsample_sse2) + global EXTN(jsimd_h2v1_fancy_upsample_sse2) PRIVATE EXTN(jsimd_h2v1_fancy_upsample_sse2): push ebp @@ -214,7 +214,7 @@ %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr align 16 - global EXTN(jsimd_h2v2_fancy_upsample_sse2) + global EXTN(jsimd_h2v2_fancy_upsample_sse2) PRIVATE EXTN(jsimd_h2v2_fancy_upsample_sse2): push ebp @@ -538,7 +538,7 @@ %define output_data_ptr(b) (b)+20 ; JSAMPARRAY * output_data_ptr align 16 - global EXTN(jsimd_h2v1_upsample_sse2) + global EXTN(jsimd_h2v1_upsample_sse2) PRIVATE EXTN(jsimd_h2v1_upsample_sse2): push ebp @@ -637,7 +637,7 @@ %define output_data_ptr(b) (b)+20 ; JSAMPARRAY * output_data_ptr align 16 - global EXTN(jsimd_h2v2_upsample_sse2) + global EXTN(jsimd_h2v2_upsample_sse2) PRIVATE EXTN(jsimd_h2v2_upsample_sse2): push ebp Index: simd/jiss2flt-64.asm =================================================================== --- simd/jiss2flt-64.asm (revision 829) +++ simd/jiss2flt-64.asm (working copy) @@ -38,7 +38,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_idct_float_sse2) + global EXTN(jconst_idct_float_sse2) PRIVATE EXTN(jconst_idct_float_sse2): @@ -74,7 +74,7 @@ ; FAST_FLOAT workspace[DCTSIZE2] align 16 - global EXTN(jsimd_idct_float_sse2) + global EXTN(jsimd_idct_float_sse2) PRIVATE EXTN(jsimd_idct_float_sse2): push rbp Index: simd/jfss2int-64.asm =================================================================== --- simd/jfss2int-64.asm (revision 829) +++ simd/jfss2int-64.asm (working copy) @@ -67,7 +67,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_fdct_islow_sse2) + global EXTN(jconst_fdct_islow_sse2) PRIVATE EXTN(jconst_fdct_islow_sse2): @@ -101,7 +101,7 @@ %define WK_NUM 6 align 16 - global EXTN(jsimd_fdct_islow_sse2) + global EXTN(jsimd_fdct_islow_sse2) PRIVATE EXTN(jsimd_fdct_islow_sse2): push rbp Index: simd/jcqnts2f.asm =================================================================== --- simd/jcqnts2f.asm (revision 829) +++ simd/jcqnts2f.asm (working copy) @@ -35,7 +35,7 @@ %define workspace ebp+16 ; FAST_FLOAT * workspace align 16 - global EXTN(jsimd_convsamp_float_sse2) + global EXTN(jsimd_convsamp_float_sse2) PRIVATE EXTN(jsimd_convsamp_float_sse2): push ebp @@ -115,7 +115,7 @@ %define workspace ebp+16 ; FAST_FLOAT * workspace align 16 - global EXTN(jsimd_quantize_float_sse2) + global EXTN(jsimd_quantize_float_sse2) PRIVATE EXTN(jsimd_quantize_float_sse2): push ebp Index: simd/jdmrgss2.asm =================================================================== --- simd/jdmrgss2.asm (revision 829) +++ simd/jdmrgss2.asm (working copy) @@ -40,7 +40,7 @@ %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr align 16 - global EXTN(jsimd_h2v1_merged_upsample_sse2) + global EXTN(jsimd_h2v1_merged_upsample_sse2) PRIVATE EXTN(jsimd_h2v1_merged_upsample_sse2): push ebp @@ -560,7 +560,7 @@ %define output_buf(b) (b)+20 ; JSAMPARRAY output_buf align 16 - global EXTN(jsimd_h2v2_merged_upsample_sse2) + global EXTN(jsimd_h2v2_merged_upsample_sse2) PRIVATE EXTN(jsimd_h2v2_merged_upsample_sse2): push ebp Index: simd/jfmmxint.asm =================================================================== --- simd/jfmmxint.asm (revision 829) +++ simd/jfmmxint.asm (working copy) @@ -66,7 +66,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_fdct_islow_mmx) + global EXTN(jconst_fdct_islow_mmx) PRIVATE EXTN(jconst_fdct_islow_mmx): @@ -101,7 +101,7 @@ %define WK_NUM 2 align 16 - global EXTN(jsimd_fdct_islow_mmx) + global EXTN(jsimd_fdct_islow_mmx) PRIVATE EXTN(jsimd_fdct_islow_mmx): push ebp Index: simd/jcgryss2-64.asm =================================================================== --- simd/jcgryss2-64.asm (revision 829) +++ simd/jcgryss2-64.asm (working copy) @@ -37,7 +37,7 @@ align 16 - global EXTN(jsimd_rgb_gray_convert_sse2) + global EXTN(jsimd_rgb_gray_convert_sse2) PRIVATE EXTN(jsimd_rgb_gray_convert_sse2): push rbp Index: simd/jcqnts2i.asm =================================================================== --- simd/jcqnts2i.asm (revision 829) +++ simd/jcqnts2i.asm (working copy) @@ -35,7 +35,7 @@ %define workspace ebp+16 ; DCTELEM * workspace align 16 - global EXTN(jsimd_convsamp_sse2) + global EXTN(jsimd_convsamp_sse2) PRIVATE EXTN(jsimd_convsamp_sse2): push ebp @@ -117,7 +117,7 @@ %define workspace ebp+16 ; DCTELEM * workspace align 16 - global EXTN(jsimd_quantize_sse2) + global EXTN(jsimd_quantize_sse2) PRIVATE EXTN(jsimd_quantize_sse2): push ebp Index: simd/jiss2fst-64.asm =================================================================== --- simd/jiss2fst-64.asm (revision 829) +++ simd/jiss2fst-64.asm (working copy) @@ -60,7 +60,7 @@ %define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS) alignz 16 - global EXTN(jconst_idct_ifast_sse2) + global EXTN(jconst_idct_ifast_sse2) PRIVATE EXTN(jconst_idct_ifast_sse2): @@ -93,7 +93,7 @@ %define WK_NUM 2 align 16 - global EXTN(jsimd_idct_ifast_sse2) + global EXTN(jsimd_idct_ifast_sse2) PRIVATE EXTN(jsimd_idct_ifast_sse2): push rbp Index: simd/jiss2flt.asm =================================================================== --- simd/jiss2flt.asm (revision 829) +++ simd/jiss2flt.asm (working copy) @@ -37,7 +37,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_idct_float_sse2) + global EXTN(jconst_idct_float_sse2) PRIVATE EXTN(jconst_idct_float_sse2): @@ -73,7 +73,7 @@ ; FAST_FLOAT workspace[DCTSIZE2] align 16 - global EXTN(jsimd_idct_float_sse2) + global EXTN(jsimd_idct_float_sse2) PRIVATE EXTN(jsimd_idct_float_sse2): push ebp Index: simd/jiss2int.asm =================================================================== --- simd/jiss2int.asm (revision 829) +++ simd/jiss2int.asm (working copy) @@ -66,7 +66,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_idct_islow_sse2) + global EXTN(jconst_idct_islow_sse2) PRIVATE EXTN(jconst_idct_islow_sse2): @@ -105,7 +105,7 @@ %define WK_NUM 12 align 16 - global EXTN(jsimd_idct_islow_sse2) + global EXTN(jsimd_idct_islow_sse2) PRIVATE EXTN(jsimd_idct_islow_sse2): push ebp Index: simd/jfsseflt-64.asm =================================================================== --- simd/jfsseflt-64.asm (revision 829) +++ simd/jfsseflt-64.asm (working copy) @@ -38,7 +38,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_fdct_float_sse) + global EXTN(jconst_fdct_float_sse) PRIVATE EXTN(jconst_fdct_float_sse): @@ -65,7 +65,7 @@ %define WK_NUM 2 align 16 - global EXTN(jsimd_fdct_float_sse) + global EXTN(jsimd_fdct_float_sse) PRIVATE EXTN(jsimd_fdct_float_sse): push rbp Index: simd/jccolss2-64.asm =================================================================== --- simd/jccolss2-64.asm (revision 829) +++ simd/jccolss2-64.asm (working copy) @@ -34,7 +34,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_rgb_ycc_convert_sse2) + global EXTN(jconst_rgb_ycc_convert_sse2) PRIVATE EXTN(jconst_rgb_ycc_convert_sse2): Index: simd/jcsamss2-64.asm =================================================================== --- simd/jcsamss2-64.asm (revision 829) +++ simd/jcsamss2-64.asm (working copy) @@ -41,7 +41,7 @@ ; r15 = JSAMPARRAY output_data align 16 - global EXTN(jsimd_h2v1_downsample_sse2) + global EXTN(jsimd_h2v1_downsample_sse2) PRIVATE EXTN(jsimd_h2v1_downsample_sse2): push rbp @@ -185,7 +185,7 @@ ; r15 = JSAMPARRAY output_data align 16 - global EXTN(jsimd_h2v2_downsample_sse2) + global EXTN(jsimd_h2v2_downsample_sse2) PRIVATE EXTN(jsimd_h2v2_downsample_sse2): push rbp Index: simd/jdclrss2-64.asm =================================================================== --- simd/jdclrss2-64.asm (revision 829) +++ simd/jdclrss2-64.asm (working copy) @@ -39,7 +39,7 @@ %define WK_NUM 2 align 16 - global EXTN(jsimd_ycc_rgb_convert_sse2) + global EXTN(jsimd_ycc_rgb_convert_sse2) PRIVATE EXTN(jsimd_ycc_rgb_convert_sse2): push rbp Index: simd/jdcolmmx.asm =================================================================== --- simd/jdcolmmx.asm (revision 829) +++ simd/jdcolmmx.asm (working copy) @@ -35,7 +35,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_ycc_rgb_convert_mmx) + global EXTN(jconst_ycc_rgb_convert_mmx) PRIVATE EXTN(jconst_ycc_rgb_convert_mmx): Index: simd/jcclrmmx.asm =================================================================== --- simd/jcclrmmx.asm (revision 829) +++ simd/jcclrmmx.asm (working copy) @@ -40,7 +40,7 @@ %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr align 16 - global EXTN(jsimd_rgb_ycc_convert_mmx) + global EXTN(jsimd_rgb_ycc_convert_mmx) PRIVATE EXTN(jsimd_rgb_ycc_convert_mmx): push ebp Index: simd/jfsseflt.asm =================================================================== --- simd/jfsseflt.asm (revision 829) +++ simd/jfsseflt.asm (working copy) @@ -37,7 +37,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_fdct_float_sse) + global EXTN(jconst_fdct_float_sse) PRIVATE EXTN(jconst_fdct_float_sse): @@ -65,7 +65,7 @@ %define WK_NUM 2 align 16 - global EXTN(jsimd_fdct_float_sse) + global EXTN(jsimd_fdct_float_sse) PRIVATE EXTN(jsimd_fdct_float_sse): push ebp Index: simd/jdmrgss2-64.asm =================================================================== --- simd/jdmrgss2-64.asm (revision 829) +++ simd/jdmrgss2-64.asm (working copy) @@ -39,7 +39,7 @@ %define WK_NUM 3 align 16 - global EXTN(jsimd_h2v1_merged_upsample_sse2) + global EXTN(jsimd_h2v1_merged_upsample_sse2) PRIVATE EXTN(jsimd_h2v1_merged_upsample_sse2): push rbp @@ -543,7 +543,7 @@ ; r13 = JSAMPARRAY output_buf align 16 - global EXTN(jsimd_h2v2_merged_upsample_sse2) + global EXTN(jsimd_h2v2_merged_upsample_sse2) PRIVATE EXTN(jsimd_h2v2_merged_upsample_sse2): push rbp Index: simd/jdcolss2.asm =================================================================== --- simd/jdcolss2.asm (revision 829) +++ simd/jdcolss2.asm (working copy) @@ -35,7 +35,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_ycc_rgb_convert_sse2) + global EXTN(jconst_ycc_rgb_convert_sse2) PRIVATE EXTN(jconst_ycc_rgb_convert_sse2): Index: simd/jdmermmx.asm =================================================================== --- simd/jdmermmx.asm (revision 829) +++ simd/jdmermmx.asm (working copy) @@ -35,7 +35,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_merged_upsample_mmx) + global EXTN(jconst_merged_upsample_mmx) PRIVATE EXTN(jconst_merged_upsample_mmx): Index: simd/jcclrss2.asm =================================================================== --- simd/jcclrss2.asm (revision 829) +++ simd/jcclrss2.asm (working copy) @@ -38,7 +38,7 @@ align 16 - global EXTN(jsimd_rgb_ycc_convert_sse2) + global EXTN(jsimd_rgb_ycc_convert_sse2) PRIVATE EXTN(jsimd_rgb_ycc_convert_sse2): push ebp Index: simd/jiss2red.asm =================================================================== --- simd/jiss2red.asm (revision 829) +++ simd/jiss2red.asm (working copy) @@ -72,7 +72,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_idct_red_sse2) + global EXTN(jconst_idct_red_sse2) PRIVATE EXTN(jconst_idct_red_sse2): @@ -113,7 +113,7 @@ %define WK_NUM 2 align 16 - global EXTN(jsimd_idct_4x4_sse2) + global EXTN(jsimd_idct_4x4_sse2) PRIVATE EXTN(jsimd_idct_4x4_sse2): push ebp @@ -424,7 +424,7 @@ %define output_col(b) (b)+20 ; JDIMENSION output_col align 16 - global EXTN(jsimd_idct_2x2_sse2) + global EXTN(jsimd_idct_2x2_sse2) PRIVATE EXTN(jsimd_idct_2x2_sse2): push ebp Index: simd/jdmerss2.asm =================================================================== --- simd/jdmerss2.asm (revision 829) +++ simd/jdmerss2.asm (working copy) @@ -35,7 +35,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_merged_upsample_sse2) + global EXTN(jconst_merged_upsample_sse2) PRIVATE EXTN(jconst_merged_upsample_sse2): Index: simd/jfss2fst-64.asm =================================================================== --- simd/jfss2fst-64.asm (revision 829) +++ simd/jfss2fst-64.asm (working copy) @@ -53,7 +53,7 @@ %define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS) alignz 16 - global EXTN(jconst_fdct_ifast_sse2) + global EXTN(jconst_fdct_ifast_sse2) PRIVATE EXTN(jconst_fdct_ifast_sse2): @@ -80,7 +80,7 @@ %define WK_NUM 2 align 16 - global EXTN(jsimd_fdct_ifast_sse2) + global EXTN(jsimd_fdct_ifast_sse2) PRIVATE EXTN(jsimd_fdct_ifast_sse2): push rbp Index: simd/jcqntmmx.asm =================================================================== --- simd/jcqntmmx.asm (revision 829) +++ simd/jcqntmmx.asm (working copy) @@ -35,7 +35,7 @@ %define workspace ebp+16 ; DCTELEM * workspace align 16 - global EXTN(jsimd_convsamp_mmx) + global EXTN(jsimd_convsamp_mmx) PRIVATE EXTN(jsimd_convsamp_mmx): push ebp @@ -140,7 +140,7 @@ %define workspace ebp+16 ; DCTELEM * workspace align 16 - global EXTN(jsimd_quantize_mmx) + global EXTN(jsimd_quantize_mmx) PRIVATE EXTN(jsimd_quantize_mmx): push ebp Index: simd/jimmxfst.asm =================================================================== --- simd/jimmxfst.asm (revision 829) +++ simd/jimmxfst.asm (working copy) @@ -59,7 +59,7 @@ %define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS) alignz 16 - global EXTN(jconst_idct_ifast_mmx) + global EXTN(jconst_idct_ifast_mmx) PRIVATE EXTN(jconst_idct_ifast_mmx): @@ -94,7 +94,7 @@ ; JCOEF workspace[DCTSIZE2] align 16 - global EXTN(jsimd_idct_ifast_mmx) + global EXTN(jsimd_idct_ifast_mmx) PRIVATE EXTN(jsimd_idct_ifast_mmx): push ebp Index: simd/jfss2fst.asm =================================================================== --- simd/jfss2fst.asm (revision 829) +++ simd/jfss2fst.asm (working copy) @@ -52,7 +52,7 @@ %define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS) alignz 16 - global EXTN(jconst_fdct_ifast_sse2) + global EXTN(jconst_fdct_ifast_sse2) PRIVATE EXTN(jconst_fdct_ifast_sse2): @@ -80,7 +80,7 @@ %define WK_NUM 2 align 16 - global EXTN(jsimd_fdct_ifast_sse2) + global EXTN(jsimd_fdct_ifast_sse2) PRIVATE EXTN(jsimd_fdct_ifast_sse2): push ebp Index: simd/jcgrammx.asm =================================================================== --- simd/jcgrammx.asm (revision 829) +++ simd/jcgrammx.asm (working copy) @@ -33,7 +33,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_rgb_gray_convert_mmx) + global EXTN(jconst_rgb_gray_convert_mmx) PRIVATE EXTN(jconst_rgb_gray_convert_mmx): Index: simd/jdcolss2-64.asm =================================================================== --- simd/jdcolss2-64.asm (revision 829) +++ simd/jdcolss2-64.asm (working copy) @@ -35,7 +35,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_ycc_rgb_convert_sse2) + global EXTN(jconst_ycc_rgb_convert_sse2) PRIVATE EXTN(jconst_ycc_rgb_convert_sse2): Index: simd/jf3dnflt.asm =================================================================== --- simd/jf3dnflt.asm (revision 829) +++ simd/jf3dnflt.asm (working copy) @@ -27,7 +27,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_fdct_float_3dnow) + global EXTN(jconst_fdct_float_3dnow) PRIVATE EXTN(jconst_fdct_float_3dnow): @@ -55,7 +55,7 @@ %define WK_NUM 2 align 16 - global EXTN(jsimd_fdct_float_3dnow) + global EXTN(jsimd_fdct_float_3dnow) PRIVATE EXTN(jsimd_fdct_float_3dnow): push ebp Index: simd/jdsamss2-64.asm =================================================================== --- simd/jdsamss2-64.asm (revision 829) +++ simd/jdsamss2-64.asm (working copy) @@ -23,7 +23,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_fancy_upsample_sse2) + global EXTN(jconst_fancy_upsample_sse2) PRIVATE EXTN(jconst_fancy_upsample_sse2): @@ -59,7 +59,7 @@ ; r13 = JSAMPARRAY * output_data_ptr align 16 - global EXTN(jsimd_h2v1_fancy_upsample_sse2) + global EXTN(jsimd_h2v1_fancy_upsample_sse2) PRIVATE EXTN(jsimd_h2v1_fancy_upsample_sse2): push rbp @@ -201,7 +201,7 @@ %define WK_NUM 4 align 16 - global EXTN(jsimd_h2v2_fancy_upsample_sse2) + global EXTN(jsimd_h2v2_fancy_upsample_sse2) PRIVATE EXTN(jsimd_h2v2_fancy_upsample_sse2): push rbp @@ -498,7 +498,7 @@ ; r13 = JSAMPARRAY * output_data_ptr align 16 - global EXTN(jsimd_h2v1_upsample_sse2) + global EXTN(jsimd_h2v1_upsample_sse2) PRIVATE EXTN(jsimd_h2v1_upsample_sse2): push rbp @@ -587,7 +587,7 @@ ; r13 = JSAMPARRAY * output_data_ptr align 16 - global EXTN(jsimd_h2v2_upsample_sse2) + global EXTN(jsimd_h2v2_upsample_sse2) PRIVATE EXTN(jsimd_h2v2_upsample_sse2): push rbp Index: simd/jcgrass2.asm =================================================================== --- simd/jcgrass2.asm (revision 829) +++ simd/jcgrass2.asm (working copy) @@ -30,7 +30,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_rgb_gray_convert_sse2) + global EXTN(jconst_rgb_gray_convert_sse2) PRIVATE EXTN(jconst_rgb_gray_convert_sse2): Index: simd/jcsammmx.asm =================================================================== --- simd/jcsammmx.asm (revision 829) +++ simd/jcsammmx.asm (working copy) @@ -40,7 +40,7 @@ %define output_data(b) (b)+28 ; JSAMPARRAY output_data align 16 - global EXTN(jsimd_h2v1_downsample_mmx) + global EXTN(jsimd_h2v1_downsample_mmx) PRIVATE EXTN(jsimd_h2v1_downsample_mmx): push ebp @@ -182,7 +182,7 @@ %define output_data(b) (b)+28 ; JSAMPARRAY output_data align 16 - global EXTN(jsimd_h2v2_downsample_mmx) + global EXTN(jsimd_h2v2_downsample_mmx) PRIVATE EXTN(jsimd_h2v2_downsample_mmx): push ebp Index: simd/jsimd_i386.c =================================================================== --- simd/jsimd_i386.c (revision 829) +++ simd/jsimd_i386.c (working copy) @@ -61,6 +61,7 @@ simd_support &= JSIMD_SSE2; } +#ifndef JPEG_DECODE_ONLY GLOBAL(int) jsimd_can_rgb_ycc (void) { @@ -82,6 +83,7 @@ return 0; } +#endif GLOBAL(int) jsimd_can_rgb_gray (void) @@ -127,6 +129,7 @@ return 0; } +#ifndef JPEG_DECODE_ONLY GLOBAL(void) jsimd_rgb_ycc_convert (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, @@ -179,6 +182,7 @@ mmxfct(cinfo->image_width, input_buf, output_buf, output_row, num_rows); } +#endif GLOBAL(void) jsimd_rgb_gray_convert (j_compress_ptr cinfo, @@ -286,6 +290,7 @@ input_row, output_buf, num_rows); } +#ifndef JPEG_DECODE_ONLY GLOBAL(int) jsimd_can_h2v2_downsample (void) { @@ -351,6 +356,7 @@ compptr->v_samp_factor, compptr->width_in_blocks, input_data, output_data); } +#endif GLOBAL(int) jsimd_can_h2v2_upsample (void) @@ -636,6 +642,7 @@ in_row_group_ctr, output_buf); } +#ifndef JPEG_DECODE_ONLY GLOBAL(int) jsimd_can_convsamp (void) { @@ -855,6 +862,7 @@ else if (simd_support & JSIMD_3DNOW) jsimd_quantize_float_3dnow(coef_block, divisors, workspace); } +#endif GLOBAL(int) jsimd_can_idct_2x2 (void) @@ -1045,4 +1053,3 @@ jsimd_idct_float_3dnow(compptr->dct_table, coef_block, output_buf, output_col); } - Index: simd/jcqnts2f-64.asm =================================================================== --- simd/jcqnts2f-64.asm (revision 829) +++ simd/jcqnts2f-64.asm (working copy) @@ -36,7 +36,7 @@ ; r12 = FAST_FLOAT * workspace align 16 - global EXTN(jsimd_convsamp_float_sse2) + global EXTN(jsimd_convsamp_float_sse2) PRIVATE EXTN(jsimd_convsamp_float_sse2): push rbp @@ -110,7 +110,7 @@ ; r12 = FAST_FLOAT * workspace align 16 - global EXTN(jsimd_quantize_float_sse2) + global EXTN(jsimd_quantize_float_sse2) PRIVATE EXTN(jsimd_quantize_float_sse2): push rbp Index: simd/jcqnt3dn.asm =================================================================== --- simd/jcqnt3dn.asm (revision 829) +++ simd/jcqnt3dn.asm (working copy) @@ -35,7 +35,7 @@ %define workspace ebp+16 ; FAST_FLOAT * workspace align 16 - global EXTN(jsimd_convsamp_float_3dnow) + global EXTN(jsimd_convsamp_float_3dnow) PRIVATE EXTN(jsimd_convsamp_float_3dnow): push ebp @@ -138,7 +138,7 @@ %define workspace ebp+16 ; FAST_FLOAT * workspace align 16 - global EXTN(jsimd_quantize_float_3dnow) + global EXTN(jsimd_quantize_float_3dnow) PRIVATE EXTN(jsimd_quantize_float_3dnow): push ebp Index: simd/jcsamss2.asm =================================================================== --- simd/jcsamss2.asm (revision 829) +++ simd/jcsamss2.asm (working copy) @@ -40,7 +40,7 @@ %define output_data(b) (b)+28 ; JSAMPARRAY output_data align 16 - global EXTN(jsimd_h2v1_downsample_sse2) + global EXTN(jsimd_h2v1_downsample_sse2) PRIVATE EXTN(jsimd_h2v1_downsample_sse2): push ebp @@ -195,7 +195,7 @@ %define output_data(b) (b)+28 ; JSAMPARRAY output_data align 16 - global EXTN(jsimd_h2v2_downsample_sse2) + global EXTN(jsimd_h2v2_downsample_sse2) PRIVATE EXTN(jsimd_h2v2_downsample_sse2): push ebp Index: simd/jsimd_x86_64.c =================================================================== --- simd/jsimd_x86_64.c (revision 829) +++ simd/jsimd_x86_64.c (working copy) @@ -29,6 +29,7 @@ #define IS_ALIGNED_SSE(ptr) (IS_ALIGNED(ptr, 4)) /* 16 byte alignment */ +#ifndef JPEG_DECODE_ONLY GLOBAL(int) jsimd_can_rgb_ycc (void) { @@ -45,6 +46,7 @@ return 1; } +#endif GLOBAL(int) jsimd_can_rgb_gray (void) @@ -80,6 +82,7 @@ return 1; } +#ifndef JPEG_DECODE_ONLY GLOBAL(void) jsimd_rgb_ycc_convert (j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf, @@ -118,6 +121,7 @@ sse2fct(cinfo->image_width, input_buf, output_buf, output_row, num_rows); } +#endif GLOBAL(void) jsimd_rgb_gray_convert (j_compress_ptr cinfo, @@ -197,6 +201,7 @@ sse2fct(cinfo->output_width, input_buf, input_row, output_buf, num_rows); } +#ifndef JPEG_DECODE_ONLY GLOBAL(int) jsimd_can_h2v2_downsample (void) { @@ -242,6 +247,7 @@ compptr->width_in_blocks, input_data, output_data); } +#endif GLOBAL(int) jsimd_can_h2v2_upsample (void) @@ -451,6 +457,7 @@ sse2fct(cinfo->output_width, input_buf, in_row_group_ctr, output_buf); } +#ifndef JPEG_DECODE_ONLY GLOBAL(int) jsimd_can_convsamp (void) { @@ -601,6 +608,7 @@ { jsimd_quantize_float_sse2(coef_block, divisors, workspace); } +#endif GLOBAL(int) jsimd_can_idct_2x2 (void) @@ -750,4 +758,3 @@ jsimd_idct_float_sse2(compptr->dct_table, coef_block, output_buf, output_col); } - Index: simd/jimmxint.asm =================================================================== --- simd/jimmxint.asm (revision 829) +++ simd/jimmxint.asm (working copy) @@ -66,7 +66,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_idct_islow_mmx) + global EXTN(jconst_idct_islow_mmx) PRIVATE EXTN(jconst_idct_islow_mmx): @@ -107,7 +107,7 @@ ; JCOEF workspace[DCTSIZE2] align 16 - global EXTN(jsimd_idct_islow_mmx) + global EXTN(jsimd_idct_islow_mmx) PRIVATE EXTN(jsimd_idct_islow_mmx): push ebp Index: simd/jcgrymmx.asm =================================================================== --- simd/jcgrymmx.asm (revision 829) +++ simd/jcgrymmx.asm (working copy) @@ -41,7 +41,7 @@ %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr align 16 - global EXTN(jsimd_rgb_gray_convert_mmx) + global EXTN(jsimd_rgb_gray_convert_mmx) PRIVATE EXTN(jsimd_rgb_gray_convert_mmx): push ebp Index: simd/jfss2int.asm =================================================================== --- simd/jfss2int.asm (revision 829) +++ simd/jfss2int.asm (working copy) @@ -66,7 +66,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_fdct_islow_sse2) + global EXTN(jconst_fdct_islow_sse2) PRIVATE EXTN(jconst_fdct_islow_sse2): @@ -101,7 +101,7 @@ %define WK_NUM 6 align 16 - global EXTN(jsimd_fdct_islow_sse2) + global EXTN(jsimd_fdct_islow_sse2) PRIVATE EXTN(jsimd_fdct_islow_sse2): push ebp Index: simd/jcgryss2.asm =================================================================== --- simd/jcgryss2.asm (revision 829) +++ simd/jcgryss2.asm (working copy) @@ -39,7 +39,7 @@ align 16 - global EXTN(jsimd_rgb_gray_convert_sse2) + global EXTN(jsimd_rgb_gray_convert_sse2) PRIVATE EXTN(jsimd_rgb_gray_convert_sse2): push ebp Index: simd/jccolmmx.asm =================================================================== --- simd/jccolmmx.asm (revision 829) +++ simd/jccolmmx.asm (working copy) @@ -37,7 +37,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_rgb_ycc_convert_mmx) + global EXTN(jconst_rgb_ycc_convert_mmx) PRIVATE EXTN(jconst_rgb_ycc_convert_mmx): Index: simd/jimmxred.asm =================================================================== --- simd/jimmxred.asm (revision 829) +++ simd/jimmxred.asm (working copy) @@ -72,7 +72,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_idct_red_mmx) + global EXTN(jconst_idct_red_mmx) PRIVATE EXTN(jconst_idct_red_mmx): @@ -115,7 +115,7 @@ ; JCOEF workspace[DCTSIZE2] align 16 - global EXTN(jsimd_idct_4x4_mmx) + global EXTN(jsimd_idct_4x4_mmx) PRIVATE EXTN(jsimd_idct_4x4_mmx): push ebp @@ -503,7 +503,7 @@ %define output_col(b) (b)+20 ; JDIMENSION output_col align 16 - global EXTN(jsimd_idct_2x2_mmx) + global EXTN(jsimd_idct_2x2_mmx) PRIVATE EXTN(jsimd_idct_2x2_mmx): push ebp Index: simd/jsimdext.inc =================================================================== --- simd/jsimdext.inc (revision 829) +++ simd/jsimdext.inc (working copy) @@ -73,6 +73,9 @@ ; * *BSD family Unix using elf format ; * Unix System V, including Solaris x86, UnixWare and SCO Unix +; PIC is the default on Linux +%define PIC + ; mark stack as non-executable section .note.GNU-stack noalloc noexec nowrite progbits @@ -375,4 +378,14 @@ ; %include "jsimdcfg.inc" +; Begin chromium edits +%ifdef MACHO ; ----(nasm -fmacho -DMACHO ...)-------- +%define PRIVATE :private_extern +%elifdef ELF ; ----(nasm -felf[64] -DELF ...)------------ +%define PRIVATE :hidden +%else +%define PRIVATE +%endif +; End chromium edits + ; -------------------------------------------------------------------------- Index: simd/jdclrmmx.asm =================================================================== --- simd/jdclrmmx.asm (revision 829) +++ simd/jdclrmmx.asm (working copy) @@ -40,7 +40,7 @@ %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr align 16 - global EXTN(jsimd_ycc_rgb_convert_mmx) + global EXTN(jsimd_ycc_rgb_convert_mmx) PRIVATE EXTN(jsimd_ycc_rgb_convert_mmx): push ebp Index: simd/jccolss2.asm =================================================================== --- simd/jccolss2.asm (revision 829) +++ simd/jccolss2.asm (working copy) @@ -34,7 +34,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_rgb_ycc_convert_sse2) + global EXTN(jconst_rgb_ycc_convert_sse2) PRIVATE EXTN(jconst_rgb_ycc_convert_sse2): Index: simd/jisseflt.asm =================================================================== --- simd/jisseflt.asm (revision 829) +++ simd/jisseflt.asm (working copy) @@ -37,7 +37,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_idct_float_sse) + global EXTN(jconst_idct_float_sse) PRIVATE EXTN(jconst_idct_float_sse): @@ -73,7 +73,7 @@ ; FAST_FLOAT workspace[DCTSIZE2] align 16 - global EXTN(jsimd_idct_float_sse) + global EXTN(jsimd_idct_float_sse) PRIVATE EXTN(jsimd_idct_float_sse): push ebp Index: simd/jcqnts2i-64.asm =================================================================== --- simd/jcqnts2i-64.asm (revision 829) +++ simd/jcqnts2i-64.asm (working copy) @@ -36,7 +36,7 @@ ; r12 = DCTELEM * workspace align 16 - global EXTN(jsimd_convsamp_sse2) + global EXTN(jsimd_convsamp_sse2) PRIVATE EXTN(jsimd_convsamp_sse2): push rbp @@ -112,7 +112,7 @@ ; r12 = DCTELEM * workspace align 16 - global EXTN(jsimd_quantize_sse2) + global EXTN(jsimd_quantize_sse2) PRIVATE EXTN(jsimd_quantize_sse2): push rbp Index: simd/jdclrss2.asm =================================================================== --- simd/jdclrss2.asm (revision 829) +++ simd/jdclrss2.asm (working copy) @@ -40,7 +40,7 @@ %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr align 16 - global EXTN(jsimd_ycc_rgb_convert_sse2) + global EXTN(jsimd_ycc_rgb_convert_sse2) PRIVATE EXTN(jsimd_ycc_rgb_convert_sse2): push ebp Index: simd/jcqntsse.asm =================================================================== --- simd/jcqntsse.asm (revision 829) +++ simd/jcqntsse.asm (working copy) @@ -35,7 +35,7 @@ %define workspace ebp+16 ; FAST_FLOAT * workspace align 16 - global EXTN(jsimd_convsamp_float_sse) + global EXTN(jsimd_convsamp_float_sse) PRIVATE EXTN(jsimd_convsamp_float_sse): push ebp @@ -138,7 +138,7 @@ %define workspace ebp+16 ; FAST_FLOAT * workspace align 16 - global EXTN(jsimd_quantize_float_sse) + global EXTN(jsimd_quantize_float_sse) PRIVATE EXTN(jsimd_quantize_float_sse): push ebp Index: simd/jiss2int-64.asm =================================================================== --- simd/jiss2int-64.asm (revision 829) +++ simd/jiss2int-64.asm (working copy) @@ -67,7 +67,7 @@ SECTION SEG_CONST alignz 16 - global EXTN(jconst_idct_islow_sse2) + global EXTN(jconst_idct_islow_sse2) PRIVATE EXTN(jconst_idct_islow_sse2): @@ -106,7 +106,7 @@ %define WK_NUM 12 align 16 - global EXTN(jsimd_idct_islow_sse2) + global EXTN(jsimd_idct_islow_sse2) PRIVATE EXTN(jsimd_idct_islow_sse2): push rbp Index: simd/jfmmxfst.asm =================================================================== --- simd/jfmmxfst.asm (revision 829) +++ simd/jfmmxfst.asm (working copy) @@ -52,7 +52,7 @@ %define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS) alignz 16 - global EXTN(jconst_fdct_ifast_mmx) + global EXTN(jconst_fdct_ifast_mmx) PRIVATE EXTN(jconst_fdct_ifast_mmx): @@ -80,7 +80,7 @@ %define WK_NUM 2 align 16 - global EXTN(jsimd_fdct_ifast_mmx) + global EXTN(jsimd_fdct_ifast_mmx) PRIVATE EXTN(jsimd_fdct_ifast_mmx): push ebp Index: jdarith.c =================================================================== --- jdarith.c (revision 829) +++ jdarith.c (working copy) @@ -150,8 +150,8 @@ */ sv = *st; qe = jpeg_aritab[sv & 0x7F]; /* => Qe_Value */ - nl = qe & 0xFF; qe >>= 8; /* Next_Index_LPS + Switch_MPS */ - nm = qe & 0xFF; qe >>= 8; /* Next_Index_MPS */ + nl = (unsigned char) qe & 0xFF; qe >>= 8; /* Next_Index_LPS + Switch_MPS */ + nm = (unsigned char) qe & 0xFF; qe >>= 8; /* Next_Index_MPS */ /* Decode & estimation procedures per sections D.2.4 & D.2.5 */ temp = e->a - qe; Index: jdhuff.c =================================================================== --- jdhuff.c (revision 829) +++ jdhuff.c (working copy) @@ -742,7 +742,7 @@ * this module, since we'll just re-assign them on the next call.) */ -#define BUFSIZE (DCTSIZE2 * 2) +#define BUFSIZE (DCTSIZE2 * 2u) METHODDEF(boolean) decode_mcu (j_decompress_ptr cinfo, JBLOCKROW *MCU_data)