/src/libavc/common/x86/ih264_platform_macros.h
Line  | Count  | Source  | 
1  |  | /******************************************************************************  | 
2  |  |  *  | 
3  |  |  * Copyright (C) 2015 The Android Open Source Project  | 
4  |  |  *  | 
5  |  |  * Licensed under the Apache License, Version 2.0 (the "License");  | 
6  |  |  * you may not use this file except in compliance with the License.  | 
7  |  |  * You may obtain a copy of the License at:  | 
8  |  |  *  | 
9  |  |  * http://www.apache.org/licenses/LICENSE-2.0  | 
10  |  |  *  | 
11  |  |  * Unless required by applicable law or agreed to in writing, software  | 
12  |  |  * distributed under the License is distributed on an "AS IS" BASIS,  | 
13  |  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  | 
14  |  |  * See the License for the specific language governing permissions and  | 
15  |  |  * limitations under the License.  | 
16  |  |  *  | 
17  |  |  *****************************************************************************  | 
18  |  |  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore  | 
19  |  | */  | 
20  |  | /**  | 
21  |  | *******************************************************************************  | 
22  |  | * @file  | 
23  |  | *  ih264_platform_macros.h  | 
24  |  | *  | 
25  |  | * @brief  | 
26  |  | *  Platform specific Macro definitions used in the codec  | 
27  |  | *  | 
28  |  | * @author  | 
29  |  | *  Ittiam  | 
30  |  | *  | 
31  |  | * @remarks  | 
32  |  | *  None  | 
33  |  | *  | 
34  |  | *******************************************************************************  | 
35  |  | */  | 
36  |  |  | 
37  |  |  | 
38  |  | #ifndef _IH264_PLATFORM_MACROS_H_  | 
39  |  | #define _IH264_PLATFORM_MACROS_H_  | 
40  |  |  | 
41  |  | #include <stdint.h>  | 
42  |  | #include <immintrin.h>  | 
43  |  |  | 
44  |  | #ifndef __ANDROID__  | 
45  |  | static __inline__ __m128i  | 
46  |  | loadu_32(void const *__a)  | 
47  | 520M  | { | 
48  | 520M  |   struct __loadu_si32 { | 
49  | 520M  |     int __v;  | 
50  | 520M  |   } __attribute__((__packed__, __may_alias__));  | 
51  | 520M  |   int __u = ((struct __loadu_si32*)__a)->__v;  | 
52  | 520M  |   return __extension__ (__m128i)(__v4si){__u, 0, 0, 0}; | 
53  | 520M  | } Unexecuted instantiation: imvcd_api.c:loadu_32 Unexecuted instantiation: imvcd_api_utils.c:loadu_32 Unexecuted instantiation: imvcd_dpb_manager.c:loadu_32 Unexecuted instantiation: imvcd_error_handler.c:loadu_32 Unexecuted instantiation: imvcd_nalu_parser.c:loadu_32 Unexecuted instantiation: imvcd_slice_functions.c:loadu_32 Unexecuted instantiation: imvcd_utils.c:loadu_32 Unexecuted instantiation: ih264d_function_selector.c:loadu_32 Unexecuted instantiation: ih264d_function_selector_sse42.c:loadu_32 Unexecuted instantiation: ih264d_function_selector_ssse3.c:loadu_32 Unexecuted instantiation: ih264_chroma_intra_pred_filters.c:loadu_32 Unexecuted instantiation: ih264_luma_intra_pred_filters.c:loadu_32 Unexecuted instantiation: ih264_chroma_intra_pred_filters_ssse3.c:loadu_32 Unexecuted instantiation: ih264_deblk_chroma_ssse3.c:loadu_32 Unexecuted instantiation: ih264_deblk_luma_ssse3.c:loadu_32 Unexecuted instantiation: ih264_inter_pred_filters_ssse3.c:loadu_32 Unexecuted instantiation: ih264_iquant_itrans_recon_dc_ssse3.c:loadu_32 ih264_iquant_itrans_recon_sse42.c:loadu_32 Line  | Count  | Source  |  47  | 125M  | { |  48  | 125M  |   struct __loadu_si32 { |  49  | 125M  |     int __v;  |  50  | 125M  |   } __attribute__((__packed__, __may_alias__));  |  51  | 125M  |   int __u = ((struct __loadu_si32*)__a)->__v;  |  52  | 125M  |   return __extension__ (__m128i)(__v4si){__u, 0, 0, 0}; |  53  | 125M  | }  |  
 Unexecuted instantiation: ih264_iquant_itrans_recon_ssse3.c:loadu_32 Unexecuted instantiation: ih264_luma_intra_pred_filters_ssse3.c:loadu_32 Unexecuted instantiation: ih264_padding_ssse3.c:loadu_32 Unexecuted instantiation: ih264_weighted_pred_sse42.c:loadu_32 Unexecuted instantiation: ih264d_api.c:loadu_32 Unexecuted instantiation: ih264d_bitstrm.c:loadu_32 Unexecuted instantiation: ih264d_cabac.c:loadu_32 Unexecuted instantiation: ih264d_cabac_init_tables.c:loadu_32 Unexecuted instantiation: ih264d_compute_bs.c:loadu_32 Unexecuted instantiation: ih264d_deblocking.c:loadu_32 Unexecuted instantiation: ih264d_dpb_mgr.c:loadu_32 Unexecuted instantiation: ih264d_format_conv.c:loadu_32 Unexecuted instantiation: ih264d_function_selector_generic.c:loadu_32 Unexecuted instantiation: ih264d_inter_pred.c:loadu_32 Unexecuted instantiation: ih264d_mb_utils.c:loadu_32 Unexecuted instantiation: ih264d_mvpred.c:loadu_32 Unexecuted instantiation: ih264d_nal.c:loadu_32 Unexecuted instantiation: ih264d_parse_bslice.c:loadu_32 Unexecuted instantiation: ih264d_parse_cabac.c:loadu_32 Unexecuted instantiation: ih264d_parse_cavlc.c:loadu_32 Unexecuted instantiation: ih264d_parse_headers.c:loadu_32 Unexecuted instantiation: ih264d_parse_islice.c:loadu_32 Unexecuted instantiation: ih264d_parse_mb_header.c:loadu_32 Unexecuted instantiation: ih264d_parse_pslice.c:loadu_32 Unexecuted instantiation: ih264d_parse_slice.c:loadu_32 Unexecuted instantiation: ih264d_process_bslice.c:loadu_32 Unexecuted instantiation: ih264d_process_intra_mb.c:loadu_32 Unexecuted instantiation: ih264d_process_pslice.c:loadu_32 Unexecuted instantiation: ih264d_quant_scaling.c:loadu_32 Unexecuted instantiation: ih264d_sei.c:loadu_32 Unexecuted instantiation: ih264d_tables.c:loadu_32 Unexecuted instantiation: ih264d_thread_compute_bs.c:loadu_32 Unexecuted instantiation: ih264d_thread_parse_decode.c:loadu_32 Unexecuted instantiation: ih264d_utils.c:loadu_32 Unexecuted instantiation: ih264d_vui.c:loadu_32 Unexecuted instantiation: ih264_deblk_edge_filters.c:loadu_32 Unexecuted instantiation: ih264_inter_pred_filters.c:loadu_32 Unexecuted instantiation: ih264_iquant_itrans_recon.c:loadu_32 Unexecuted instantiation: ih264_weighted_pred.c:loadu_32 Unexecuted instantiation: isvcd_api.c:loadu_32 Unexecuted instantiation: isvcd_nal.c:loadu_32 Unexecuted instantiation: isvcd_nal_parse.c:loadu_32 Unexecuted instantiation: isvcd_parse_epslice.c:loadu_32 Unexecuted instantiation: isvcd_parse_headers.c:loadu_32 Unexecuted instantiation: isvcd_parse_slice.c:loadu_32 Unexecuted instantiation: isvcd_process_ebslice.c:loadu_32 Unexecuted instantiation: isvcd_process_epslice.c:loadu_32 Unexecuted instantiation: isvcd_thread_compute_bs.c:loadu_32 Unexecuted instantiation: isvcd_thread_parse_decode.c:loadu_32 Unexecuted instantiation: isvcd_utils.c:loadu_32 Unexecuted instantiation: isvcd_vui.c:loadu_32 Unexecuted instantiation: isvcd_ii_pred.c:loadu_32 Unexecuted instantiation: isvcd_intra_resamp.c:loadu_32 Unexecuted instantiation: isvcd_mode_mv_resamp.c:loadu_32 Unexecuted instantiation: isvcd_residual_resamp.c:loadu_32 Unexecuted instantiation: isvcd_function_selector.c:loadu_32 Unexecuted instantiation: isvcd_function_selector_sse42.c:loadu_32 Unexecuted instantiation: isvcd_intra_resamp_sse42.c:loadu_32 Unexecuted instantiation: isvcd_iquant_itrans_residual_recon_sse42.c:loadu_32 Unexecuted instantiation: isvcd_iquant_itrans_residual_sse42.c:loadu_32 Unexecuted instantiation: isvcd_iquant_itrans_sse42.c:loadu_32 Unexecuted instantiation: isvcd_pred_residual_recon_sse42.c:loadu_32 Unexecuted instantiation: isvcd_residual_resamp_sse42.c:loadu_32 Unexecuted instantiation: isvcd_cabac.c:loadu_32 Unexecuted instantiation: isvcd_cabac_init_tables.c:loadu_32 Unexecuted instantiation: isvcd_compute_bs.c:loadu_32 Unexecuted instantiation: isvcd_function_selector_generic.c:loadu_32 Unexecuted instantiation: isvcd_mb_utils.c:loadu_32 Unexecuted instantiation: isvcd_parse_cavlc.c:loadu_32 Unexecuted instantiation: isvcd_parse_ebslice.c:loadu_32 Unexecuted instantiation: isvcd_parse_eislice.c:loadu_32 Unexecuted instantiation: isvcd_iquant_itrans.c:loadu_32 Unexecuted instantiation: isvcd_iquant_itrans_residual.c:loadu_32 Unexecuted instantiation: isvcd_iquant_itrans_residual_recon.c:loadu_32 Unexecuted instantiation: isvcd_pred_residual_recon.c:loadu_32 Unexecuted instantiation: isvce_api.c:loadu_32 Unexecuted instantiation: isvce_downscaler.c:loadu_32 Unexecuted instantiation: isvce_encode.c:loadu_32 Unexecuted instantiation: isvce_fmt_conv.c:loadu_32 Unexecuted instantiation: isvce_ibl_eval.c:loadu_32 Unexecuted instantiation: isvce_process.c:loadu_32 Unexecuted instantiation: isvce_rc_mem_interface.c:loadu_32 Unexecuted instantiation: isvce_sub_pic_rc.c:loadu_32 Unexecuted instantiation: isvce_downscaler_sse42.c:loadu_32 Unexecuted instantiation: isvce_function_selector.c:loadu_32 Unexecuted instantiation: ih264_list.c:loadu_32 Unexecuted instantiation: isvc_intra_resample.c:loadu_32 Unexecuted instantiation: isvc_iquant_itrans_recon_sse42.c:loadu_32 Unexecuted instantiation: isvc_resi_trans_quant_sse42.c:loadu_32 Unexecuted instantiation: isvc_intra_resample_sse42.c:loadu_32 Unexecuted instantiation: ih264e_bitstream.c:loadu_32 Unexecuted instantiation: ih264e_fmt_conv.c:loadu_32 Unexecuted instantiation: ih264e_sei.c:loadu_32 Unexecuted instantiation: isvce_cabac.c:loadu_32 Unexecuted instantiation: isvce_cabac_encode.c:loadu_32 Unexecuted instantiation: isvce_cabac_init.c:loadu_32 Unexecuted instantiation: isvce_core_coding.c:loadu_32 Unexecuted instantiation: isvce_mc.c:loadu_32 Unexecuted instantiation: isvce_me.c:loadu_32 Unexecuted instantiation: ih264e_half_pel_ssse3.c:loadu_32 Unexecuted instantiation: isvc_iquant_itrans_recon.c:loadu_32 Unexecuted instantiation: ih264e_cabac_init.c:loadu_32 Unexecuted instantiation: ih264e_core_coding.c:loadu_32 Unexecuted instantiation: ih264e_half_pel.c:loadu_32 Unexecuted instantiation: ih264e_me.c:loadu_32 Unexecuted instantiation: ih264e_api.c:loadu_32 Unexecuted instantiation: ih264e_encode.c:loadu_32 Unexecuted instantiation: ih264e_process.c:loadu_32 Unexecuted instantiation: ih264e_function_selector.c:loadu_32 ih264_resi_trans_quant_sse42.c:loadu_32 Line  | Count  | Source  |  47  | 395M  | { |  48  | 395M  |   struct __loadu_si32 { |  49  | 395M  |     int __v;  |  50  | 395M  |   } __attribute__((__packed__, __may_alias__));  |  51  | 395M  |   int __u = ((struct __loadu_si32*)__a)->__v;  |  52  | 395M  |   return __extension__ (__m128i)(__v4si){__u, 0, 0, 0}; |  53  | 395M  | }  |  
 Unexecuted instantiation: ih264e_cabac.c:loadu_32 Unexecuted instantiation: ih264e_cabac_encode.c:loadu_32  | 
54  |  | #else  | 
55  |  | static __inline__ __m128i loadu_32(void const *__a) { return _mm_loadu_si32(__a); }; | 
56  |  | #endif  | 
57  |  |  | 
58  | 11.0G  | #define CLIP_U8(x) CLIP3(0, UINT8_MAX, (x))  | 
59  | 566k  | #define CLIP_S8(x) CLIP3(INT8_MIN, INT8_MAX, (x))  | 
60  |  |  | 
61  |  | #define CLIP_U10(x) CLIP3(0, 1023, (x))  | 
62  |  | #define CLIP_S10(x) CLIP3(-512, 511, (x))  | 
63  |  |  | 
64  |  | #define CLIP_U11(x) CLIP3(0, 2047, (x))  | 
65  | 103k  | #define CLIP_S11(x) CLIP3(-1024, 1023, (x))  | 
66  |  |  | 
67  |  | #define CLIP_U12(x) CLIP3(0, 4095, (x))  | 
68  |  | #define CLIP_S12(x) CLIP3(-2048, 2047, (x))  | 
69  |  |  | 
70  |  | #define CLIP_U16(x) CLIP3(0, UINT16_MAX, (x))  | 
71  |  | #define CLIP_S16(x) CLIP3(INT16_MIN, INT16_MAX, (x))  | 
72  |  |  | 
73  |  | #define CLIP_U32(x) CLIP3(0, UINT32_MAX, (x))  | 
74  |  | #define CLIP_S32(x) CLIP3(INT32_MIN, INT32_MAX, (x))  | 
75  |  |  | 
76  |  | #define MEM_ALIGN16 __attribute__ ((aligned (16)))  | 
77  |  |  | 
78  |  | #define SHL(x,y) (((y) < 32) ? ((x) << (y)) : 0)  | 
79  |  | #define SHR(x,y) (((y) < 32) ? ((x) >> (y)) : 0)  | 
80  |  |  | 
81  |  | #define SHR_NEG(val,shift)  ((shift>0)?(val>>shift):(val<<(-shift)))  | 
82  |  | #define SHL_NEG(val,shift)  ((shift<0)?(val>>(-shift)):(val<<shift))  | 
83  |  |  | 
84  |  |  | 
85  |  | #define ITT_BIG_ENDIAN(x)   __builtin_bswap32(x);  | 
86  |  |  | 
87  | 10.3G  | #define NOP(nop_cnt) {UWORD32 nop_i; for (nop_i = 0; nop_i < nop_cnt; nop_i++) asm("nop");} | 
88  |  |  | 
89  |  | #define PLD(a)  | 
90  |  |  | 
91  |  | /* In normal cases, 0 will not be passed as an argument to CLZ and CTZ.  | 
92  |  | As CLZ and CTZ outputs are used as a shift value in few places, these return  | 
93  |  | 31 for u4_word == 0 case, just to handle error cases gracefully without any  | 
94  |  | undefined behaviour */  | 
95  |  |  | 
96  |  | static __inline UWORD32 CLZ(UWORD32 u4_word)  | 
97  | 1.01G  | { | 
98  | 1.01G  |     if(u4_word)  | 
99  | 945M  |     return(__builtin_clz(u4_word));  | 
100  | 66.6M  |     else  | 
101  | 66.6M  |         return 31;  | 
102  | 1.01G  | } Unexecuted instantiation: imvcd_api.c:CLZ Unexecuted instantiation: imvcd_api_utils.c:CLZ Unexecuted instantiation: imvcd_dpb_manager.c:CLZ Unexecuted instantiation: imvcd_error_handler.c:CLZ Unexecuted instantiation: imvcd_nalu_parser.c:CLZ Unexecuted instantiation: imvcd_slice_functions.c:CLZ Unexecuted instantiation: imvcd_utils.c:CLZ Unexecuted instantiation: ih264d_function_selector.c:CLZ Unexecuted instantiation: ih264d_function_selector_sse42.c:CLZ Unexecuted instantiation: ih264d_function_selector_ssse3.c:CLZ Unexecuted instantiation: ih264_chroma_intra_pred_filters.c:CLZ Unexecuted instantiation: ih264_luma_intra_pred_filters.c:CLZ Unexecuted instantiation: ih264_chroma_intra_pred_filters_ssse3.c:CLZ Unexecuted instantiation: ih264_deblk_chroma_ssse3.c:CLZ Unexecuted instantiation: ih264_deblk_luma_ssse3.c:CLZ Unexecuted instantiation: ih264_inter_pred_filters_ssse3.c:CLZ Unexecuted instantiation: ih264_iquant_itrans_recon_dc_ssse3.c:CLZ Unexecuted instantiation: ih264_iquant_itrans_recon_sse42.c:CLZ Unexecuted instantiation: ih264_iquant_itrans_recon_ssse3.c:CLZ Unexecuted instantiation: ih264_luma_intra_pred_filters_ssse3.c:CLZ Unexecuted instantiation: ih264_padding_ssse3.c:CLZ Unexecuted instantiation: ih264_weighted_pred_sse42.c:CLZ Unexecuted instantiation: ih264d_api.c:CLZ Unexecuted instantiation: ih264d_bitstrm.c:CLZ Line  | Count  | Source  |  97  | 18.9M  | { |  98  | 18.9M  |     if(u4_word)  |  99  | 18.9M  |     return(__builtin_clz(u4_word));  |  100  | 0  |     else  |  101  | 0  |         return 31;  |  102  | 18.9M  | }  |  
 Unexecuted instantiation: ih264d_cabac_init_tables.c:CLZ Unexecuted instantiation: ih264d_compute_bs.c:CLZ Unexecuted instantiation: ih264d_deblocking.c:CLZ Unexecuted instantiation: ih264d_dpb_mgr.c:CLZ Unexecuted instantiation: ih264d_format_conv.c:CLZ Unexecuted instantiation: ih264d_function_selector_generic.c:CLZ Unexecuted instantiation: ih264d_inter_pred.c:CLZ Unexecuted instantiation: ih264d_mb_utils.c:CLZ Unexecuted instantiation: ih264d_mvpred.c:CLZ Unexecuted instantiation: ih264d_nal.c:CLZ ih264d_parse_bslice.c:CLZ Line  | Count  | Source  |  97  | 433k  | { |  98  | 433k  |     if(u4_word)  |  99  | 426k  |     return(__builtin_clz(u4_word));  |  100  | 7.26k  |     else  |  101  | 7.26k  |         return 31;  |  102  | 433k  | }  |  
 Line  | Count  | Source  |  97  | 34.7M  | { |  98  | 34.7M  |     if(u4_word)  |  99  | 34.7M  |     return(__builtin_clz(u4_word));  |  100  | 0  |     else  |  101  | 0  |         return 31;  |  102  | 34.7M  | }  |  
 Line  | Count  | Source  |  97  | 11.9M  | { |  98  | 11.9M  |     if(u4_word)  |  99  | 11.6M  |     return(__builtin_clz(u4_word));  |  100  | 375k  |     else  |  101  | 375k  |         return 31;  |  102  | 11.9M  | }  |  
 Unexecuted instantiation: ih264d_parse_headers.c:CLZ ih264d_parse_islice.c:CLZ Line  | Count  | Source  |  97  | 648k  | { |  98  | 648k  |     if(u4_word)  |  99  | 646k  |     return(__builtin_clz(u4_word));  |  100  | 1.89k  |     else  |  101  | 1.89k  |         return 31;  |  102  | 648k  | }  |  
 ih264d_parse_mb_header.c:CLZ Line  | Count  | Source  |  97  | 21.3M  | { |  98  | 21.3M  |     if(u4_word)  |  99  | 21.3M  |     return(__builtin_clz(u4_word));  |  100  | 0  |     else  |  101  | 0  |         return 31;  |  102  | 21.3M  | }  |  
 ih264d_parse_pslice.c:CLZ Line  | Count  | Source  |  97  | 769k  | { |  98  | 769k  |     if(u4_word)  |  99  | 743k  |     return(__builtin_clz(u4_word));  |  100  | 25.5k  |     else  |  101  | 25.5k  |         return 31;  |  102  | 769k  | }  |  
 Unexecuted instantiation: ih264d_parse_slice.c:CLZ Unexecuted instantiation: ih264d_process_bslice.c:CLZ ih264d_process_intra_mb.c:CLZ Line  | Count  | Source  |  97  | 4.92M  | { |  98  | 4.92M  |     if(u4_word)  |  99  | 4.92M  |     return(__builtin_clz(u4_word));  |  100  | 0  |     else  |  101  | 0  |         return 31;  |  102  | 4.92M  | }  |  
 Unexecuted instantiation: ih264d_process_pslice.c:CLZ Unexecuted instantiation: ih264d_quant_scaling.c:CLZ Unexecuted instantiation: ih264d_sei.c:CLZ Unexecuted instantiation: ih264d_tables.c:CLZ Unexecuted instantiation: ih264d_thread_compute_bs.c:CLZ Unexecuted instantiation: ih264d_thread_parse_decode.c:CLZ Line  | Count  | Source  |  97  | 845k  | { |  98  | 845k  |     if(u4_word)  |  99  | 845k  |     return(__builtin_clz(u4_word));  |  100  | 0  |     else  |  101  | 0  |         return 31;  |  102  | 845k  | }  |  
 Unexecuted instantiation: ih264d_vui.c:CLZ Unexecuted instantiation: ih264_deblk_edge_filters.c:CLZ Unexecuted instantiation: ih264_inter_pred_filters.c:CLZ Unexecuted instantiation: ih264_iquant_itrans_recon.c:CLZ Unexecuted instantiation: ih264_weighted_pred.c:CLZ Unexecuted instantiation: isvcd_api.c:CLZ Unexecuted instantiation: isvcd_nal.c:CLZ Unexecuted instantiation: isvcd_nal_parse.c:CLZ isvcd_parse_epslice.c:CLZ Line  | Count  | Source  |  97  | 678k  | { |  98  | 678k  |     if(u4_word)  |  99  | 667k  |     return(__builtin_clz(u4_word));  |  100  | 11.0k  |     else  |  101  | 11.0k  |         return 31;  |  102  | 678k  | }  |  
 Unexecuted instantiation: isvcd_parse_headers.c:CLZ Unexecuted instantiation: isvcd_parse_slice.c:CLZ Unexecuted instantiation: isvcd_process_ebslice.c:CLZ Unexecuted instantiation: isvcd_process_epslice.c:CLZ Unexecuted instantiation: isvcd_thread_compute_bs.c:CLZ Unexecuted instantiation: isvcd_thread_parse_decode.c:CLZ Unexecuted instantiation: isvcd_utils.c:CLZ Unexecuted instantiation: isvcd_vui.c:CLZ Unexecuted instantiation: isvcd_ii_pred.c:CLZ Unexecuted instantiation: isvcd_intra_resamp.c:CLZ Unexecuted instantiation: isvcd_mode_mv_resamp.c:CLZ Unexecuted instantiation: isvcd_residual_resamp.c:CLZ Unexecuted instantiation: isvcd_function_selector.c:CLZ Unexecuted instantiation: isvcd_function_selector_sse42.c:CLZ Unexecuted instantiation: isvcd_intra_resamp_sse42.c:CLZ Unexecuted instantiation: isvcd_iquant_itrans_residual_recon_sse42.c:CLZ Unexecuted instantiation: isvcd_iquant_itrans_residual_sse42.c:CLZ Unexecuted instantiation: isvcd_iquant_itrans_sse42.c:CLZ Unexecuted instantiation: isvcd_pred_residual_recon_sse42.c:CLZ Unexecuted instantiation: isvcd_residual_resamp_sse42.c:CLZ Unexecuted instantiation: isvcd_cabac.c:CLZ Unexecuted instantiation: isvcd_cabac_init_tables.c:CLZ Unexecuted instantiation: isvcd_compute_bs.c:CLZ Unexecuted instantiation: isvcd_function_selector_generic.c:CLZ Unexecuted instantiation: isvcd_mb_utils.c:CLZ Line  | Count  | Source  |  97  | 14.7k  | { |  98  | 14.7k  |     if(u4_word)  |  99  | 14.3k  |     return(__builtin_clz(u4_word));  |  100  | 357  |     else  |  101  | 357  |         return 31;  |  102  | 14.7k  | }  |  
 isvcd_parse_ebslice.c:CLZ Line  | Count  | Source  |  97  | 86.8k  | { |  98  | 86.8k  |     if(u4_word)  |  99  | 84.6k  |     return(__builtin_clz(u4_word));  |  100  | 2.15k  |     else  |  101  | 2.15k  |         return 31;  |  102  | 86.8k  | }  |  
 isvcd_parse_eislice.c:CLZ Line  | Count  | Source  |  97  | 333k  | { |  98  | 333k  |     if(u4_word)  |  99  | 331k  |     return(__builtin_clz(u4_word));  |  100  | 1.88k  |     else  |  101  | 1.88k  |         return 31;  |  102  | 333k  | }  |  
 Unexecuted instantiation: isvcd_iquant_itrans.c:CLZ Unexecuted instantiation: isvcd_iquant_itrans_residual.c:CLZ Unexecuted instantiation: isvcd_iquant_itrans_residual_recon.c:CLZ Unexecuted instantiation: isvcd_pred_residual_recon.c:CLZ Line  | Count  | Source  |  97  | 5.23k  | { |  98  | 5.23k  |     if(u4_word)  |  99  | 5.23k  |     return(__builtin_clz(u4_word));  |  100  | 0  |     else  |  101  | 0  |         return 31;  |  102  | 5.23k  | }  |  
 Unexecuted instantiation: isvce_downscaler.c:CLZ Unexecuted instantiation: isvce_encode.c:CLZ Unexecuted instantiation: isvce_fmt_conv.c:CLZ Unexecuted instantiation: isvce_ibl_eval.c:CLZ Unexecuted instantiation: isvce_process.c:CLZ Unexecuted instantiation: isvce_rc_mem_interface.c:CLZ Line  | Count  | Source  |  97  | 20.2M  | { |  98  | 20.2M  |     if(u4_word)  |  99  | 20.2M  |     return(__builtin_clz(u4_word));  |  100  | 18.4E  |     else  |  101  | 18.4E  |         return 31;  |  102  | 20.2M  | }  |  
 Unexecuted instantiation: isvce_downscaler_sse42.c:CLZ Unexecuted instantiation: isvce_function_selector.c:CLZ Line  | Count  | Source  |  97  | 55.4k  | { |  98  | 55.4k  |     if(u4_word)  |  99  | 55.4k  |     return(__builtin_clz(u4_word));  |  100  | 0  |     else  |  101  | 0  |         return 31;  |  102  | 55.4k  | }  |  
 Unexecuted instantiation: isvc_intra_resample.c:CLZ Unexecuted instantiation: isvc_iquant_itrans_recon_sse42.c:CLZ Unexecuted instantiation: isvc_resi_trans_quant_sse42.c:CLZ Unexecuted instantiation: isvc_intra_resample_sse42.c:CLZ Line  | Count  | Source  |  97  | 25.4M  | { |  98  | 25.4M  |     if(u4_word)  |  99  | 25.4M  |     return(__builtin_clz(u4_word));  |  100  | 0  |     else  |  101  | 0  |         return 31;  |  102  | 25.4M  | }  |  
 Unexecuted instantiation: ih264e_fmt_conv.c:CLZ Unexecuted instantiation: ih264e_sei.c:CLZ Line  | Count  | Source  |  97  | 310M  | { |  98  | 310M  |     if(u4_word)  |  99  | 310M  |     return(__builtin_clz(u4_word));  |  100  | 0  |     else  |  101  | 0  |         return 31;  |  102  | 310M  | }  |  
 Line  | Count  | Source  |  97  | 51.2M  | { |  98  | 51.2M  |     if(u4_word)  |  99  | 44.2M  |     return(__builtin_clz(u4_word));  |  100  | 7.03M  |     else  |  101  | 7.03M  |         return 31;  |  102  | 51.2M  | }  |  
 Unexecuted instantiation: isvce_cabac_init.c:CLZ Line  | Count  | Source  |  97  | 179M  | { |  98  | 179M  |     if(u4_word)  |  99  | 141M  |     return(__builtin_clz(u4_word));  |  100  | 37.8M  |     else  |  101  | 37.8M  |         return 31;  |  102  | 179M  | }  |  
 Unexecuted instantiation: isvce_mc.c:CLZ Line  | Count  | Source  |  97  | 5.25k  | { |  98  | 5.25k  |     if(u4_word)  |  99  | 5.25k  |     return(__builtin_clz(u4_word));  |  100  | 0  |     else  |  101  | 0  |         return 31;  |  102  | 5.25k  | }  |  
 Unexecuted instantiation: ih264e_half_pel_ssse3.c:CLZ Unexecuted instantiation: isvc_iquant_itrans_recon.c:CLZ Unexecuted instantiation: ih264e_cabac_init.c:CLZ Line  | Count  | Source  |  97  | 73.0M  | { |  98  | 73.0M  |     if(u4_word)  |  99  | 53.6M  |     return(__builtin_clz(u4_word));  |  100  | 19.3M  |     else  |  101  | 19.3M  |         return 31;  |  102  | 73.0M  | }  |  
 Unexecuted instantiation: ih264e_half_pel.c:CLZ Line  | Count  | Source  |  97  | 3.92k  | { |  98  | 3.92k  |     if(u4_word)  |  99  | 3.92k  |     return(__builtin_clz(u4_word));  |  100  | 0  |     else  |  101  | 0  |         return 31;  |  102  | 3.92k  | }  |  
 Line  | Count  | Source  |  97  | 4.01k  | { |  98  | 4.01k  |     if(u4_word)  |  99  | 4.01k  |     return(__builtin_clz(u4_word));  |  100  | 0  |     else  |  101  | 0  |         return 31;  |  102  | 4.01k  | }  |  
 Unexecuted instantiation: ih264e_encode.c:CLZ Unexecuted instantiation: ih264e_process.c:CLZ Unexecuted instantiation: ih264e_function_selector.c:CLZ Unexecuted instantiation: ih264_resi_trans_quant_sse42.c:CLZ Line  | Count  | Source  |  97  | 226M  | { |  98  | 226M  |     if(u4_word)  |  99  | 226M  |     return(__builtin_clz(u4_word));  |  100  | 0  |     else  |  101  | 0  |         return 31;  |  102  | 226M  | }  |  
 ih264e_cabac_encode.c:CLZ Line  | Count  | Source  |  97  | 29.0M  | { |  98  | 29.0M  |     if(u4_word)  |  99  | 27.0M  |     return(__builtin_clz(u4_word));  |  100  | 1.96M  |     else  |  101  | 1.96M  |         return 31;  |  102  | 29.0M  | }  |  
  | 
103  |  |  | 
104  |  | static __inline UWORD32 CTZ(UWORD32 u4_word)  | 
105  | 0  | { | 
106  | 0  |     if(0 == u4_word)  | 
107  | 0  |         return 31;  | 
108  | 0  |     else  | 
109  | 0  |     { | 
110  | 0  |         unsigned int index;  | 
111  | 0  |         index = __builtin_ctz(u4_word);  | 
112  | 0  |         return (UWORD32)index;  | 
113  | 0  |     }  | 
114  | 0  | } Unexecuted instantiation: imvcd_api.c:CTZ Unexecuted instantiation: imvcd_api_utils.c:CTZ Unexecuted instantiation: imvcd_dpb_manager.c:CTZ Unexecuted instantiation: imvcd_error_handler.c:CTZ Unexecuted instantiation: imvcd_nalu_parser.c:CTZ Unexecuted instantiation: imvcd_slice_functions.c:CTZ Unexecuted instantiation: imvcd_utils.c:CTZ Unexecuted instantiation: ih264d_function_selector.c:CTZ Unexecuted instantiation: ih264d_function_selector_sse42.c:CTZ Unexecuted instantiation: ih264d_function_selector_ssse3.c:CTZ Unexecuted instantiation: ih264_chroma_intra_pred_filters.c:CTZ Unexecuted instantiation: ih264_luma_intra_pred_filters.c:CTZ Unexecuted instantiation: ih264_chroma_intra_pred_filters_ssse3.c:CTZ Unexecuted instantiation: ih264_deblk_chroma_ssse3.c:CTZ Unexecuted instantiation: ih264_deblk_luma_ssse3.c:CTZ Unexecuted instantiation: ih264_inter_pred_filters_ssse3.c:CTZ Unexecuted instantiation: ih264_iquant_itrans_recon_dc_ssse3.c:CTZ Unexecuted instantiation: ih264_iquant_itrans_recon_sse42.c:CTZ Unexecuted instantiation: ih264_iquant_itrans_recon_ssse3.c:CTZ Unexecuted instantiation: ih264_luma_intra_pred_filters_ssse3.c:CTZ Unexecuted instantiation: ih264_padding_ssse3.c:CTZ Unexecuted instantiation: ih264_weighted_pred_sse42.c:CTZ Unexecuted instantiation: ih264d_api.c:CTZ Unexecuted instantiation: ih264d_bitstrm.c:CTZ Unexecuted instantiation: ih264d_cabac.c:CTZ Unexecuted instantiation: ih264d_cabac_init_tables.c:CTZ Unexecuted instantiation: ih264d_compute_bs.c:CTZ Unexecuted instantiation: ih264d_deblocking.c:CTZ Unexecuted instantiation: ih264d_dpb_mgr.c:CTZ Unexecuted instantiation: ih264d_format_conv.c:CTZ Unexecuted instantiation: ih264d_function_selector_generic.c:CTZ Unexecuted instantiation: ih264d_inter_pred.c:CTZ Unexecuted instantiation: ih264d_mb_utils.c:CTZ Unexecuted instantiation: ih264d_mvpred.c:CTZ Unexecuted instantiation: ih264d_nal.c:CTZ Unexecuted instantiation: ih264d_parse_bslice.c:CTZ Unexecuted instantiation: ih264d_parse_cabac.c:CTZ Unexecuted instantiation: ih264d_parse_cavlc.c:CTZ Unexecuted instantiation: ih264d_parse_headers.c:CTZ Unexecuted instantiation: ih264d_parse_islice.c:CTZ Unexecuted instantiation: ih264d_parse_mb_header.c:CTZ Unexecuted instantiation: ih264d_parse_pslice.c:CTZ Unexecuted instantiation: ih264d_parse_slice.c:CTZ Unexecuted instantiation: ih264d_process_bslice.c:CTZ Unexecuted instantiation: ih264d_process_intra_mb.c:CTZ Unexecuted instantiation: ih264d_process_pslice.c:CTZ Unexecuted instantiation: ih264d_quant_scaling.c:CTZ Unexecuted instantiation: ih264d_sei.c:CTZ Unexecuted instantiation: ih264d_tables.c:CTZ Unexecuted instantiation: ih264d_thread_compute_bs.c:CTZ Unexecuted instantiation: ih264d_thread_parse_decode.c:CTZ Unexecuted instantiation: ih264d_utils.c:CTZ Unexecuted instantiation: ih264d_vui.c:CTZ Unexecuted instantiation: ih264_deblk_edge_filters.c:CTZ Unexecuted instantiation: ih264_inter_pred_filters.c:CTZ Unexecuted instantiation: ih264_iquant_itrans_recon.c:CTZ Unexecuted instantiation: ih264_weighted_pred.c:CTZ Unexecuted instantiation: isvcd_api.c:CTZ Unexecuted instantiation: isvcd_nal.c:CTZ Unexecuted instantiation: isvcd_nal_parse.c:CTZ Unexecuted instantiation: isvcd_parse_epslice.c:CTZ Unexecuted instantiation: isvcd_parse_headers.c:CTZ Unexecuted instantiation: isvcd_parse_slice.c:CTZ Unexecuted instantiation: isvcd_process_ebslice.c:CTZ Unexecuted instantiation: isvcd_process_epslice.c:CTZ Unexecuted instantiation: isvcd_thread_compute_bs.c:CTZ Unexecuted instantiation: isvcd_thread_parse_decode.c:CTZ Unexecuted instantiation: isvcd_utils.c:CTZ Unexecuted instantiation: isvcd_vui.c:CTZ Unexecuted instantiation: isvcd_ii_pred.c:CTZ Unexecuted instantiation: isvcd_intra_resamp.c:CTZ Unexecuted instantiation: isvcd_mode_mv_resamp.c:CTZ Unexecuted instantiation: isvcd_residual_resamp.c:CTZ Unexecuted instantiation: isvcd_function_selector.c:CTZ Unexecuted instantiation: isvcd_function_selector_sse42.c:CTZ Unexecuted instantiation: isvcd_intra_resamp_sse42.c:CTZ Unexecuted instantiation: isvcd_iquant_itrans_residual_recon_sse42.c:CTZ Unexecuted instantiation: isvcd_iquant_itrans_residual_sse42.c:CTZ Unexecuted instantiation: isvcd_iquant_itrans_sse42.c:CTZ Unexecuted instantiation: isvcd_pred_residual_recon_sse42.c:CTZ Unexecuted instantiation: isvcd_residual_resamp_sse42.c:CTZ Unexecuted instantiation: isvcd_cabac.c:CTZ Unexecuted instantiation: isvcd_cabac_init_tables.c:CTZ Unexecuted instantiation: isvcd_compute_bs.c:CTZ Unexecuted instantiation: isvcd_function_selector_generic.c:CTZ Unexecuted instantiation: isvcd_mb_utils.c:CTZ Unexecuted instantiation: isvcd_parse_cavlc.c:CTZ Unexecuted instantiation: isvcd_parse_ebslice.c:CTZ Unexecuted instantiation: isvcd_parse_eislice.c:CTZ Unexecuted instantiation: isvcd_iquant_itrans.c:CTZ Unexecuted instantiation: isvcd_iquant_itrans_residual.c:CTZ Unexecuted instantiation: isvcd_iquant_itrans_residual_recon.c:CTZ Unexecuted instantiation: isvcd_pred_residual_recon.c:CTZ Unexecuted instantiation: isvce_api.c:CTZ Unexecuted instantiation: isvce_downscaler.c:CTZ Unexecuted instantiation: isvce_encode.c:CTZ Unexecuted instantiation: isvce_fmt_conv.c:CTZ Unexecuted instantiation: isvce_ibl_eval.c:CTZ Unexecuted instantiation: isvce_process.c:CTZ Unexecuted instantiation: isvce_rc_mem_interface.c:CTZ Unexecuted instantiation: isvce_sub_pic_rc.c:CTZ Unexecuted instantiation: isvce_downscaler_sse42.c:CTZ Unexecuted instantiation: isvce_function_selector.c:CTZ Unexecuted instantiation: ih264_list.c:CTZ Unexecuted instantiation: isvc_intra_resample.c:CTZ Unexecuted instantiation: isvc_iquant_itrans_recon_sse42.c:CTZ Unexecuted instantiation: isvc_resi_trans_quant_sse42.c:CTZ Unexecuted instantiation: isvc_intra_resample_sse42.c:CTZ Unexecuted instantiation: ih264e_bitstream.c:CTZ Unexecuted instantiation: ih264e_fmt_conv.c:CTZ Unexecuted instantiation: ih264e_sei.c:CTZ Unexecuted instantiation: isvce_cabac.c:CTZ Unexecuted instantiation: isvce_cabac_encode.c:CTZ Unexecuted instantiation: isvce_cabac_init.c:CTZ Unexecuted instantiation: isvce_core_coding.c:CTZ Unexecuted instantiation: isvce_mc.c:CTZ Unexecuted instantiation: isvce_me.c:CTZ Unexecuted instantiation: ih264e_half_pel_ssse3.c:CTZ Unexecuted instantiation: isvc_iquant_itrans_recon.c:CTZ Unexecuted instantiation: ih264e_cabac_init.c:CTZ Unexecuted instantiation: ih264e_core_coding.c:CTZ Unexecuted instantiation: ih264e_half_pel.c:CTZ Unexecuted instantiation: ih264e_me.c:CTZ Unexecuted instantiation: ih264e_api.c:CTZ Unexecuted instantiation: ih264e_encode.c:CTZ Unexecuted instantiation: ih264e_process.c:CTZ Unexecuted instantiation: ih264e_function_selector.c:CTZ Unexecuted instantiation: ih264_resi_trans_quant_sse42.c:CTZ Unexecuted instantiation: ih264e_cabac.c:CTZ Unexecuted instantiation: ih264e_cabac_encode.c:CTZ  | 
115  |  |  | 
116  | 55.8M  | #define DATA_SYNC()  __sync_synchronize()  | 
117  |  |  | 
118  |  |  | 
119  |  |  | 
120  |  | //#define INLINE __inline  | 
121  |  | #define INLINE inline  | 
122  |  |  | 
123  |  | #define PREFETCH_ENABLE 1  | 
124  |  |  | 
125  |  | #if PREFETCH_ENABLE  | 
126  |  | #define PREFETCH(ptr, type) _mm_prefetch(ptr, type);  | 
127  |  | #else  | 
128  |  | #define PREFETCH(ptr, type)  | 
129  |  | #endif  | 
130  |  |  | 
131  |  | #define MEM_ALIGN8 __attribute__ ((aligned (8)))  | 
132  |  | #define MEM_ALIGN16 __attribute__ ((aligned (16)))  | 
133  |  | #define MEM_ALIGN32 __attribute__ ((aligned (32)))  | 
134  |  |  | 
135  |  | #endif /* _IH264_PLATFORM_MACROS_H_ */  |