mirror of
https://github.com/cemu-project/Cemu.git
synced 2024-11-24 18:16:55 +01:00
[ih264] per-function target attribute on clang and GCC (#328)
This commit is contained in:
parent
8a0fe21589
commit
4519a59d74
4
dependencies/ih264d/CMakeLists.txt
vendored
4
dependencies/ih264d/CMakeLists.txt
vendored
@ -6,10 +6,6 @@ set(LIBAVCDEC_X86_INCLUDES "common/x86" "decoder/x86")
|
||||
|
||||
include_directories("common/" "decoder/" ${LIBAVCDEC_X86_INCLUDES})
|
||||
|
||||
if((CMAKE_C_COMPILER_ID MATCHES "GNU") OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))
|
||||
add_compile_options(-mssse3 -mavx2)
|
||||
endif()
|
||||
|
||||
add_library (ih264d
|
||||
"common/ih264_buf_mgr.c"
|
||||
"common/ih264_buf_mgr.h"
|
||||
|
@ -56,6 +56,11 @@
|
||||
#include "ih264_platform_macros.h"
|
||||
#include "ih264_intra_pred_filters.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSSE3
|
||||
#endif
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Chroma Intra prediction 8x8 filters */
|
||||
@ -93,6 +98,8 @@
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_chroma_8x8_mode_horz_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -169,6 +176,8 @@ void ih264_intra_pred_chroma_8x8_mode_horz_ssse3(UWORD8 *pu1_src,
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_chroma_8x8_mode_vert_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -237,6 +246,8 @@ void ih264_intra_pred_chroma_8x8_mode_vert_ssse3(UWORD8 *pu1_src,
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_chroma_8x8_mode_plane_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
|
@ -53,6 +53,12 @@
|
||||
#include "ih264_deblk_edge_filters.h"
|
||||
#include "ih264_macros.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSSE3
|
||||
#endif
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Function Definitions */
|
||||
/*****************************************************************************/
|
||||
@ -91,6 +97,8 @@
|
||||
/* 12 02 2015 Naveen Kumar P Initial version */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_deblk_chroma_vert_bs4_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 alpha_cb,
|
||||
@ -274,6 +282,8 @@ void ih264_deblk_chroma_vert_bs4_ssse3(UWORD8 *pu1_src,
|
||||
/* 12 02 2015 Naveen Kumar P Initial version */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_deblk_chroma_horz_bs4_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 alpha_cb,
|
||||
@ -424,6 +434,8 @@ void ih264_deblk_chroma_horz_bs4_ssse3(UWORD8 *pu1_src,
|
||||
/* 12 02 2015 Naveen Kumar P Initial version */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_deblk_chroma_vert_bslt4_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 alpha_cb,
|
||||
@ -645,6 +657,8 @@ void ih264_deblk_chroma_vert_bslt4_ssse3(UWORD8 *pu1_src,
|
||||
/* 12 02 2015 Naveen Kumar P Initial version */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_deblk_chroma_horz_bslt4_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 alpha_cb,
|
||||
@ -829,6 +843,8 @@ void ih264_deblk_chroma_horz_bslt4_ssse3(UWORD8 *pu1_src,
|
||||
/* 12 02 2015 Naveen Kumar P Initial version */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_deblk_chroma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 alpha_cb,
|
||||
@ -963,6 +979,8 @@ void ih264_deblk_chroma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src,
|
||||
/* 12 02 2015 Naveen Kumar P Initial version */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_deblk_chroma_vert_bslt4_mbaff_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 alpha_cb,
|
||||
|
@ -53,6 +53,12 @@
|
||||
#include "ih264_deblk_edge_filters.h"
|
||||
#include "ih264_macros.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSSE3
|
||||
#endif
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Function Definitions */
|
||||
/*****************************************************************************/
|
||||
@ -87,6 +93,7 @@
|
||||
/* 12 02 2015 Naveen Kumar P Initial version */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_deblk_luma_vert_bs4_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 alpha,
|
||||
@ -508,6 +515,7 @@ void ih264_deblk_luma_vert_bs4_ssse3(UWORD8 *pu1_src,
|
||||
/* 12 02 2015 Naveen Kumar P Initial version */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_deblk_luma_horz_bs4_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 alpha,
|
||||
@ -847,6 +855,7 @@ void ih264_deblk_luma_horz_bs4_ssse3(UWORD8 *pu1_src,
|
||||
/* 12 02 2015 Naveen Kumar P Initial version */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_deblk_luma_vert_bslt4_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 alpha,
|
||||
@ -1142,6 +1151,7 @@ void ih264_deblk_luma_vert_bslt4_ssse3(UWORD8 *pu1_src,
|
||||
/* 12 02 2015 Naveen Kumar P Initial version */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_deblk_luma_horz_bslt4_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 alpha,
|
||||
@ -1439,6 +1449,7 @@ void ih264_deblk_luma_horz_bslt4_ssse3(UWORD8 *pu1_src,
|
||||
/* 12 02 2015 Naveen Kumar P Initial version */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_deblk_luma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 alpha,
|
||||
@ -1758,6 +1769,7 @@ void ih264_deblk_luma_vert_bs4_mbaff_ssse3(UWORD8 *pu1_src,
|
||||
/* 12 02 2015 Naveen Kumar P Initial version */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_deblk_luma_vert_bslt4_mbaff_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 alpha,
|
||||
|
@ -52,6 +52,12 @@
|
||||
#include <immintrin.h>
|
||||
#include <smmintrin.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSE42
|
||||
#endif
|
||||
|
||||
/*
|
||||
********************************************************************************
|
||||
*
|
||||
@ -87,6 +93,7 @@
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_ihadamard_scaling_4x4_sse42(WORD16* pi2_src,
|
||||
WORD16* pi2_out,
|
||||
const UWORD16 *pu2_iscal_mat,
|
||||
@ -202,6 +209,7 @@ void ih264_ihadamard_scaling_4x4_sse42(WORD16* pi2_src,
|
||||
_mm_storeu_si128((__m128i *) (&pi2_out[8]), src_r2_r3);
|
||||
}
|
||||
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_ihadamard_scaling_2x2_uv_sse42(WORD16* pi2_src,
|
||||
WORD16* pi2_out,
|
||||
const UWORD16 *pu2_iscal_mat,
|
||||
|
@ -50,6 +50,12 @@
|
||||
#include "ih264_trans_quant_itrans_iquant.h"
|
||||
#include <immintrin.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSSE3
|
||||
#endif
|
||||
|
||||
/*
|
||||
********************************************************************************
|
||||
*
|
||||
@ -85,6 +91,7 @@
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_ihadamard_scaling_4x4_ssse3(WORD16* pi2_src,
|
||||
WORD16* pi2_out,
|
||||
const UWORD16 *pu2_iscal_mat,
|
||||
|
@ -54,6 +54,12 @@
|
||||
#include "ih264_platform_macros.h"
|
||||
#include "ih264_inter_pred_filters.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSSE3
|
||||
#endif
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Constant Data variables */
|
||||
/*****************************************************************************/
|
||||
@ -87,6 +93,7 @@
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_inter_pred_luma_copy_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -213,6 +220,7 @@ void ih264_inter_pred_luma_copy_ssse3(UWORD8 *pu1_src,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_inter_pred_luma_horz_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -478,6 +486,7 @@ void ih264_inter_pred_luma_horz_ssse3(UWORD8 *pu1_src,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_inter_pred_luma_vert_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -764,6 +773,7 @@ void ih264_inter_pred_luma_vert_ssse3(UWORD8 *pu1_src,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_inter_pred_luma_horz_hpel_vert_hpel_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -1488,6 +1498,7 @@ void ih264_inter_pred_luma_horz_hpel_vert_hpel_ssse3(UWORD8 *pu1_src,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_inter_pred_luma_horz_qpel_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -1782,6 +1793,7 @@ void ih264_inter_pred_luma_horz_qpel_ssse3(UWORD8 *pu1_src,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_inter_pred_luma_vert_qpel_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -2107,6 +2119,7 @@ void ih264_inter_pred_luma_vert_qpel_ssse3(UWORD8 *pu1_src,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_inter_pred_luma_horz_qpel_vert_qpel_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -2675,6 +2688,7 @@ void ih264_inter_pred_luma_horz_qpel_vert_qpel_ssse3(UWORD8 *pu1_src,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_inter_pred_luma_horz_qpel_vert_hpel_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -3285,6 +3299,7 @@ void ih264_inter_pred_luma_horz_qpel_vert_hpel_ssse3(UWORD8 *pu1_src,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_inter_pred_luma_horz_hpel_vert_qpel_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -3991,6 +4006,7 @@ void ih264_inter_pred_luma_horz_hpel_vert_qpel_ssse3(UWORD8 *pu1_src,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_inter_pred_chroma_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
|
@ -50,6 +50,12 @@
|
||||
#include "ih264_trans_quant_itrans_iquant.h"
|
||||
#include <immintrin.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSSE3
|
||||
#endif
|
||||
|
||||
/*
|
||||
********************************************************************************
|
||||
*
|
||||
@ -98,6 +104,7 @@
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_iquant_itrans_recon_4x4_dc_ssse3(WORD16 *pi2_src,
|
||||
UWORD8 *pu1_pred,
|
||||
UWORD8 *pu1_out,
|
||||
@ -224,6 +231,7 @@ void ih264_iquant_itrans_recon_4x4_dc_ssse3(WORD16 *pi2_src,
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_iquant_itrans_recon_8x8_dc_ssse3 (WORD16 *pi2_src,
|
||||
UWORD8 *pu1_pred,
|
||||
UWORD8 *pu1_out,
|
||||
@ -385,6 +393,7 @@ void ih264_iquant_itrans_recon_8x8_dc_ssse3 (WORD16 *pi2_src,
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_iquant_itrans_recon_chroma_4x4_dc_ssse3(WORD16 *pi2_src,
|
||||
UWORD8 *pu1_pred,
|
||||
UWORD8 *pu1_out,
|
||||
|
@ -50,6 +50,12 @@
|
||||
#include "ih264_trans_quant_itrans_iquant.h"
|
||||
#include <immintrin.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSE42
|
||||
#endif
|
||||
|
||||
/*
|
||||
********************************************************************************
|
||||
*
|
||||
@ -97,6 +103,7 @@
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_iquant_itrans_recon_4x4_sse42(WORD16 *pi2_src,
|
||||
UWORD8 *pu1_pred,
|
||||
UWORD8 *pu1_out,
|
||||
@ -348,6 +355,7 @@ void ih264_iquant_itrans_recon_4x4_sse42(WORD16 *pi2_src,
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_iquant_itrans_recon_chroma_4x4_sse42(WORD16 *pi2_src,
|
||||
UWORD8 *pu1_pred,
|
||||
UWORD8 *pu1_out,
|
||||
|
@ -50,6 +50,12 @@
|
||||
#include "ih264_trans_quant_itrans_iquant.h"
|
||||
#include <immintrin.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSSE3
|
||||
#endif
|
||||
|
||||
/*
|
||||
********************************************************************************
|
||||
*
|
||||
@ -97,6 +103,7 @@
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_iquant_itrans_recon_4x4_ssse3(WORD16 *pi2_src,
|
||||
UWORD8 *pu1_pred,
|
||||
UWORD8 *pu1_out,
|
||||
@ -366,6 +373,7 @@ void ih264_iquant_itrans_recon_4x4_ssse3(WORD16 *pi2_src,
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_iquant_itrans_recon_8x8_ssse3(WORD16 *pi2_src,
|
||||
UWORD8 *pu1_pred,
|
||||
UWORD8 *pu1_out,
|
||||
|
@ -75,6 +75,12 @@
|
||||
#include "ih264_platform_macros.h"
|
||||
#include "ih264_intra_pred_filters.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSSE3
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/******************* LUMA INTRAPREDICTION *******************/
|
||||
@ -114,6 +120,7 @@
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_4x4_mode_vert_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -173,6 +180,7 @@ void ih264_intra_pred_luma_4x4_mode_vert_ssse3(UWORD8 *pu1_src,
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_4x4_mode_horz_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -238,6 +246,7 @@ void ih264_intra_pred_luma_4x4_mode_horz_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_4x4_mode_dc_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -316,6 +325,7 @@ void ih264_intra_pred_luma_4x4_mode_dc_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_4x4_mode_diag_dl_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -400,6 +410,7 @@ void ih264_intra_pred_luma_4x4_mode_diag_dl_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_4x4_mode_diag_dr_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -487,6 +498,7 @@ void ih264_intra_pred_luma_4x4_mode_diag_dr_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_4x4_mode_vert_r_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -579,6 +591,7 @@ void ih264_intra_pred_luma_4x4_mode_vert_r_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_4x4_mode_horz_d_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -675,6 +688,7 @@ void ih264_intra_pred_luma_4x4_mode_horz_d_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_4x4_mode_vert_l_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -764,6 +778,7 @@ void ih264_intra_pred_luma_4x4_mode_vert_l_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_4x4_mode_horz_u_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -864,6 +879,7 @@ void ih264_intra_pred_luma_4x4_mode_horz_u_ssse3(UWORD8 *pu1_src,
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_8x8_mode_vert_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -921,6 +937,7 @@ void ih264_intra_pred_luma_8x8_mode_vert_ssse3(UWORD8 *pu1_src,
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_8x8_mode_horz_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -985,6 +1002,7 @@ void ih264_intra_pred_luma_8x8_mode_horz_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_8x8_mode_dc_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -1078,6 +1096,7 @@ void ih264_intra_pred_luma_8x8_mode_dc_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_8x8_mode_diag_dl_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -1176,6 +1195,7 @@ void ih264_intra_pred_luma_8x8_mode_diag_dl_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_8x8_mode_diag_dr_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -1278,6 +1298,7 @@ void ih264_intra_pred_luma_8x8_mode_diag_dr_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_8x8_mode_vert_r_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -1398,6 +1419,7 @@ void ih264_intra_pred_luma_8x8_mode_vert_r_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_8x8_mode_horz_d_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -1502,6 +1524,7 @@ void ih264_intra_pred_luma_8x8_mode_horz_d_ssse3(UWORD8 *pu1_src,
|
||||
*
|
||||
*******************************************************************************/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_8x8_mode_vert_l_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -1598,6 +1621,7 @@ void ih264_intra_pred_luma_8x8_mode_vert_l_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_8x8_mode_horz_u_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -1699,6 +1723,7 @@ void ih264_intra_pred_luma_8x8_mode_horz_u_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_16x16_mode_vert_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -1778,6 +1803,7 @@ void ih264_intra_pred_luma_16x16_mode_vert_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_16x16_mode_horz_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -1875,6 +1901,7 @@ void ih264_intra_pred_luma_16x16_mode_horz_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_16x16_mode_dc_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -1998,6 +2025,7 @@ void ih264_intra_pred_luma_16x16_mode_dc_ssse3(UWORD8 *pu1_src,
|
||||
* None
|
||||
*
|
||||
*******************************************************************************/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_intra_pred_luma_16x16_mode_plane_ssse3(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
|
@ -50,6 +50,12 @@
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSSE3
|
||||
#endif
|
||||
|
||||
/**
|
||||
*******************************************************************************
|
||||
*
|
||||
@ -78,6 +84,7 @@
|
||||
|
||||
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_memcpy_mul_8_ssse3(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_bytes)
|
||||
{
|
||||
int col;
|
||||
@ -117,6 +124,7 @@ void ih264_memcpy_mul_8_ssse3(UWORD8 *pu1_dst, UWORD8 *pu1_src, UWORD32 num_byte
|
||||
*/
|
||||
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_memset_mul_8_ssse3(UWORD8 *pu1_dst, UWORD8 value, UWORD32 num_bytes)
|
||||
{
|
||||
int col;
|
||||
|
@ -49,6 +49,12 @@
|
||||
|
||||
#include <immintrin.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSSE3
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
*******************************************************************************
|
||||
@ -89,6 +95,7 @@
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_pad_left_luma_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 ht,
|
||||
@ -156,6 +163,7 @@ void ih264_pad_left_luma_ssse3(UWORD8 *pu1_src,
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_pad_left_chroma_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 ht,
|
||||
@ -222,6 +230,7 @@ void ih264_pad_left_chroma_ssse3(UWORD8 *pu1_src,
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_pad_right_luma_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 ht,
|
||||
@ -289,6 +298,7 @@ void ih264_pad_right_luma_ssse3(UWORD8 *pu1_src,
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264_pad_right_chroma_ssse3(UWORD8 *pu1_src,
|
||||
WORD32 src_strd,
|
||||
WORD32 ht,
|
||||
|
@ -51,6 +51,12 @@
|
||||
#include "ih264_structs.h"
|
||||
#include "ih264_trans_quant_itrans_iquant.h"
|
||||
#include <immintrin.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSE42
|
||||
#endif
|
||||
/**
|
||||
*******************************************************************************
|
||||
*
|
||||
@ -103,6 +109,7 @@
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_resi_trans_quant_4x4_sse42(UWORD8 *pu1_src, UWORD8 *pu1_pred,
|
||||
WORD16 *pi2_out, WORD32 src_strd, WORD32 pred_strd,
|
||||
const UWORD16 *pu2_scale_matrix, const UWORD16 *pu2_threshold_matrix,
|
||||
@ -376,6 +383,7 @@ void ih264_resi_trans_quant_4x4_sse42(UWORD8 *pu1_src, UWORD8 *pu1_pred,
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_resi_trans_quant_chroma_4x4_sse42(UWORD8 *pu1_src,UWORD8 *pu1_pred,WORD16 *pi2_out,
|
||||
WORD32 src_strd,WORD32 pred_strd,
|
||||
const UWORD16 *pu2_scale_matrix,
|
||||
@ -663,6 +671,7 @@ void ih264_resi_trans_quant_chroma_4x4_sse42(UWORD8 *pu1_src,UWORD8 *pu1_pred,WO
|
||||
*
|
||||
*/
|
||||
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_hadamard_quant_4x4_sse42(WORD16 *pi2_src, WORD16 *pi2_dst,
|
||||
const UWORD16 *pu2_scale_matrix,
|
||||
const UWORD16 *pu2_threshold_matrix, UWORD32 u4_qbits,
|
||||
@ -892,6 +901,7 @@ void ih264_hadamard_quant_4x4_sse42(WORD16 *pi2_src, WORD16 *pi2_dst,
|
||||
*
|
||||
*/
|
||||
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_hadamard_quant_2x2_uv_sse42(WORD16 *pi2_src, WORD16 *pi2_dst,
|
||||
const UWORD16 *pu2_scale_matrix,
|
||||
const UWORD16 *pu2_threshold_matrix, UWORD32 u4_qbits,
|
||||
|
@ -50,6 +50,12 @@
|
||||
#include "ih264_platform_macros.h"
|
||||
#include "ih264_weighted_pred.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSE42
|
||||
#endif
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Function definitions . */
|
||||
/*****************************************************************************/
|
||||
@ -82,6 +88,7 @@
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_default_weighted_pred_luma_sse42(UWORD8 *pu1_src1,
|
||||
UWORD8 *pu1_src2,
|
||||
UWORD8 *pu1_dst,
|
||||
@ -245,6 +252,7 @@ void ih264_default_weighted_pred_luma_sse42(UWORD8 *pu1_src1,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_default_weighted_pred_chroma_sse42(UWORD8 *pu1_src1,
|
||||
UWORD8 *pu1_src2,
|
||||
UWORD8 *pu1_dst,
|
||||
@ -375,6 +383,7 @@ void ih264_default_weighted_pred_chroma_sse42(UWORD8 *pu1_src1,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_weighted_pred_luma_sse42(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -605,6 +614,7 @@ void ih264_weighted_pred_luma_sse42(UWORD8 *pu1_src,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_weighted_pred_chroma_sse42(UWORD8 *pu1_src,
|
||||
UWORD8 *pu1_dst,
|
||||
WORD32 src_strd,
|
||||
@ -814,6 +824,7 @@ void ih264_weighted_pred_chroma_sse42(UWORD8 *pu1_src,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_weighted_bi_pred_luma_sse42(UWORD8 *pu1_src1,
|
||||
UWORD8 *pu1_src2,
|
||||
UWORD8 *pu1_dst,
|
||||
@ -1101,6 +1112,7 @@ void ih264_weighted_bi_pred_luma_sse42(UWORD8 *pu1_src1,
|
||||
/* Senthoor */
|
||||
/* */
|
||||
/*****************************************************************************/
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264_weighted_bi_pred_chroma_sse42(UWORD8 *pu1_src1,
|
||||
UWORD8 *pu1_src2,
|
||||
UWORD8 *pu1_dst,
|
||||
|
@ -60,6 +60,12 @@
|
||||
|
||||
#include "ih264d_structs.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSE42 __attribute__((target("sse4.2")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSE42
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
*******************************************************************************
|
||||
@ -79,6 +85,7 @@
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSE42
|
||||
void ih264d_init_function_ptr_sse42(dec_struct_t *ps_codec)
|
||||
{
|
||||
ps_codec->pf_default_weighted_pred_luma = ih264_default_weighted_pred_luma_sse42;
|
||||
|
@ -60,6 +60,12 @@
|
||||
|
||||
#include "ih264d_structs.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ATTRIBUTE_SSSE3 __attribute__((target("ssse3")))
|
||||
#else
|
||||
#define ATTRIBUTE_SSSE3
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
*******************************************************************************
|
||||
@ -79,6 +85,7 @@
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
ATTRIBUTE_SSSE3
|
||||
void ih264d_init_function_ptr_ssse3(dec_struct_t *ps_codec)
|
||||
{
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user