Commit ad01ba6c authored by Daniel Kang's avatar Daniel Kang Committed by Diego Biurrun

x86: h264: Remove 3dnow QPEL code

The only CPUs that have 3dnow and don't have mmxext are 12 years old.
Moreover, AMD has dropped 3dnow extensions from newer CPUs.
Signed-off-by: 's avatarDiego Biurrun <diego@biurrun.de>
parent 28c8e288
...@@ -55,6 +55,7 @@ static void DEF(put_pixels8_x2)(uint8_t *block, const uint8_t *pixels, int line_ ...@@ -55,6 +55,7 @@ static void DEF(put_pixels8_x2)(uint8_t *block, const uint8_t *pixels, int line_
:"%"REG_a, "memory"); :"%"REG_a, "memory");
} }
#ifndef SKIP_FOR_3DNOW
static void DEF(put_pixels4_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h) static void DEF(put_pixels4_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h)
{ {
__asm__ volatile( __asm__ volatile(
...@@ -332,6 +333,7 @@ static void DEF(avg_pixels8_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int ...@@ -332,6 +333,7 @@ static void DEF(avg_pixels8_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int
:"r"(src1Stride), "r"(dstStride) :"r"(src1Stride), "r"(dstStride)
:"memory");*/ :"memory");*/
} }
#endif /* SKIP_FOR_3DNOW */
static void DEF(put_pixels16_x2)(uint8_t *block, const uint8_t *pixels, int line_size, int h) static void DEF(put_pixels16_x2)(uint8_t *block, const uint8_t *pixels, int line_size, int h)
{ {
...@@ -373,6 +375,7 @@ static void DEF(put_pixels16_x2)(uint8_t *block, const uint8_t *pixels, int line ...@@ -373,6 +375,7 @@ static void DEF(put_pixels16_x2)(uint8_t *block, const uint8_t *pixels, int line
:"%"REG_a, "memory"); :"%"REG_a, "memory");
} }
#ifndef SKIP_FOR_3DNOW
static void DEF(put_pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h) static void DEF(put_pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int dstStride, int src1Stride, int h)
{ {
__asm__ volatile( __asm__ volatile(
...@@ -547,6 +550,7 @@ static void DEF(put_no_rnd_pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t *sr ...@@ -547,6 +550,7 @@ static void DEF(put_no_rnd_pixels16_l2)(uint8_t *dst, uint8_t *src1, uint8_t *sr
:"r"(src1Stride), "r"(dstStride) :"r"(src1Stride), "r"(dstStride)
:"memory");*/ :"memory");*/
} }
#endif /* SKIP_FOR_3DNOW */
/* GL: this function does incorrect rounding if overflow */ /* GL: this function does incorrect rounding if overflow */
static void DEF(put_no_rnd_pixels8_x2)(uint8_t *block, const uint8_t *pixels, int line_size, int h) static void DEF(put_no_rnd_pixels8_x2)(uint8_t *block, const uint8_t *pixels, int line_size, int h)
...@@ -872,6 +876,7 @@ static void DEF(avg_pixels8_xy2)(uint8_t *block, const uint8_t *pixels, int line ...@@ -872,6 +876,7 @@ static void DEF(avg_pixels8_xy2)(uint8_t *block, const uint8_t *pixels, int line
:"%"REG_a, "memory"); :"%"REG_a, "memory");
} }
#ifndef SKIP_FOR_3DNOW
static void DEF(avg_pixels4)(uint8_t *block, const uint8_t *pixels, int line_size, int h) static void DEF(avg_pixels4)(uint8_t *block, const uint8_t *pixels, int line_size, int h)
{ {
do { do {
...@@ -896,6 +901,7 @@ static void DEF(avg_pixels4)(uint8_t *block, const uint8_t *pixels, int line_siz ...@@ -896,6 +901,7 @@ static void DEF(avg_pixels4)(uint8_t *block, const uint8_t *pixels, int line_siz
h -= 4; h -= 4;
} while(h > 0); } while(h > 0);
} }
#endif /* SKIP_FOR_3DNOW */
//FIXME the following could be optimized too ... //FIXME the following could be optimized too ...
static void DEF(put_no_rnd_pixels16_x2)(uint8_t *block, const uint8_t *pixels, int line_size, int h){ static void DEF(put_no_rnd_pixels16_x2)(uint8_t *block, const uint8_t *pixels, int line_size, int h){
...@@ -968,6 +974,7 @@ static void DEF(OPNAME ## 2tap_qpel8_l3)(uint8_t *dst, uint8_t *src, int stride, ...@@ -968,6 +974,7 @@ static void DEF(OPNAME ## 2tap_qpel8_l3)(uint8_t *dst, uint8_t *src, int stride,
);\ );\
} }
#ifndef SKIP_FOR_3DNOW
#define STORE_OP(a,b) PAVGB" "#a","#b" \n\t" #define STORE_OP(a,b) PAVGB" "#a","#b" \n\t"
QPEL_2TAP_L3(avg_) QPEL_2TAP_L3(avg_)
#undef STORE_OP #undef STORE_OP
...@@ -975,3 +982,4 @@ QPEL_2TAP_L3(avg_) ...@@ -975,3 +982,4 @@ QPEL_2TAP_L3(avg_)
QPEL_2TAP_L3(put_) QPEL_2TAP_L3(put_)
#undef STORE_OP #undef STORE_OP
#undef QPEL_2TAP_L3 #undef QPEL_2TAP_L3
#endif /* SKIP_FOR_3DNOW */
This diff is collapsed.
...@@ -1163,9 +1163,6 @@ QPEL(put_, 16,XMM, 16)\ ...@@ -1163,9 +1163,6 @@ QPEL(put_, 16,XMM, 16)\
QPEL(avg_, 8, XMM, 16)\ QPEL(avg_, 8, XMM, 16)\
QPEL(avg_, 16,XMM, 16)\ QPEL(avg_, 16,XMM, 16)\
#define PAVGB "pavgusb"
QPEL_H264(put_, PUT_OP, 3dnow)
QPEL_H264(avg_, AVG_3DNOW_OP, 3dnow)
#undef PAVGB #undef PAVGB
#define PAVGB "pavgb" #define PAVGB "pavgb"
QPEL_H264(put_, PUT_OP, mmxext) QPEL_H264(put_, PUT_OP, mmxext)
...@@ -1184,7 +1181,6 @@ QPEL_H264_HV_XMM(avg_,AVG_MMXEXT_OP, ssse3) ...@@ -1184,7 +1181,6 @@ QPEL_H264_HV_XMM(avg_,AVG_MMXEXT_OP, ssse3)
#endif #endif
#undef PAVGB #undef PAVGB
H264_MC_4816(3dnow)
H264_MC_4816(mmxext) H264_MC_4816(mmxext)
H264_MC_816(H264_MC_V, sse2) H264_MC_816(H264_MC_V, sse2)
H264_MC_816(H264_MC_HV, sse2) H264_MC_816(H264_MC_HV, sse2)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment