Mercurial > libavcodec.hg
comparison i386/h264dsp_mmx.c @ 5947:37a03989871b libavcodec
use ff_ prefix for extern vars
author | aurel |
---|---|
date | Tue, 27 Nov 2007 22:36:15 +0000 |
parents | 55251379b5b1 |
children | 03febc8f506f |
comparison
equal
deleted
inserted
replaced
5946:55251379b5b1 | 5947:37a03989871b |
---|---|
362 "psubusb %%mm6 , %%mm1 \n\t"\ | 362 "psubusb %%mm6 , %%mm1 \n\t"\ |
363 "psubusb %%mm3 , %%mm2 \n\t"\ | 363 "psubusb %%mm3 , %%mm2 \n\t"\ |
364 "paddusb %%mm3 , %%mm1 \n\t"\ | 364 "paddusb %%mm3 , %%mm1 \n\t"\ |
365 "paddusb %%mm6 , %%mm2 \n\t" | 365 "paddusb %%mm6 , %%mm2 \n\t" |
366 | 366 |
367 // in: mm0=p1 mm1=p0 mm2=q0 mm3=q1 mm7=(tc&mask) %8=mm_bone | 367 // in: mm0=p1 mm1=p0 mm2=q0 mm3=q1 mm7=(tc&mask) %8=ff_bone |
368 // out: (q1addr) = av_clip( (q2+((p0+q0+1)>>1))>>1, q1-tc0, q1+tc0 ) | 368 // out: (q1addr) = av_clip( (q2+((p0+q0+1)>>1))>>1, q1-tc0, q1+tc0 ) |
369 // clobbers: q2, tmp, tc0 | 369 // clobbers: q2, tmp, tc0 |
370 #define H264_DEBLOCK_Q1(p1, q2, q2addr, q1addr, tc0, tmp)\ | 370 #define H264_DEBLOCK_Q1(p1, q2, q2addr, q1addr, tc0, tmp)\ |
371 "movq %%mm1, "#tmp" \n\t"\ | 371 "movq %%mm1, "#tmp" \n\t"\ |
372 "pavgb %%mm2, "#tmp" \n\t"\ | 372 "pavgb %%mm2, "#tmp" \n\t"\ |
428 "movq %%mm2, (%2) \n\t" | 428 "movq %%mm2, (%2) \n\t" |
429 | 429 |
430 : "=m"(*tmp0) | 430 : "=m"(*tmp0) |
431 : "r"(pix-3*stride), "r"(pix), "r"((long)stride), | 431 : "r"(pix-3*stride), "r"(pix), "r"((long)stride), |
432 "m"(*tmp0/*unused*/), "m"(*(uint32_t*)tc0), "m"(alpha1), "m"(beta1), | 432 "m"(*tmp0/*unused*/), "m"(*(uint32_t*)tc0), "m"(alpha1), "m"(beta1), |
433 "m"(mm_bone) | 433 "m"(ff_bone) |
434 ); | 434 ); |
435 } | 435 } |
436 | 436 |
437 static void h264_v_loop_filter_luma_mmx2(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) | 437 static void h264_v_loop_filter_luma_mmx2(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) |
438 { | 438 { |
475 "movq %%mm1, (%0,%2) \n\t" | 475 "movq %%mm1, (%0,%2) \n\t" |
476 "movq %%mm2, (%1) \n\t" | 476 "movq %%mm2, (%1) \n\t" |
477 | 477 |
478 :: "r"(pix-2*stride), "r"(pix), "r"((long)stride), | 478 :: "r"(pix-2*stride), "r"(pix), "r"((long)stride), |
479 "r"(*(uint32_t*)tc0), | 479 "r"(*(uint32_t*)tc0), |
480 "m"(alpha1), "m"(beta1), "m"(mm_bone), "m"(ff_pb_3F) | 480 "m"(alpha1), "m"(beta1), "m"(ff_bone), "m"(ff_pb_3F) |
481 ); | 481 ); |
482 } | 482 } |
483 | 483 |
484 static void h264_v_loop_filter_chroma_mmx2(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) | 484 static void h264_v_loop_filter_chroma_mmx2(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) |
485 { | 485 { |
525 "paddb %%mm5, %%mm1 \n\t" | 525 "paddb %%mm5, %%mm1 \n\t" |
526 "paddb %%mm6, %%mm2 \n\t" | 526 "paddb %%mm6, %%mm2 \n\t" |
527 "movq %%mm1, (%0,%2) \n\t" | 527 "movq %%mm1, (%0,%2) \n\t" |
528 "movq %%mm2, (%1) \n\t" | 528 "movq %%mm2, (%1) \n\t" |
529 :: "r"(pix-2*stride), "r"(pix), "r"((long)stride), | 529 :: "r"(pix-2*stride), "r"(pix), "r"((long)stride), |
530 "m"(alpha1), "m"(beta1), "m"(mm_bone) | 530 "m"(alpha1), "m"(beta1), "m"(ff_bone) |
531 ); | 531 ); |
532 } | 532 } |
533 | 533 |
534 static void h264_v_loop_filter_chroma_intra_mmx2(uint8_t *pix, int stride, int alpha, int beta) | 534 static void h264_v_loop_filter_chroma_intra_mmx2(uint8_t *pix, int stride, int alpha, int beta) |
535 { | 535 { |