Ticket #2118: ivtc_update.diff

File ivtc_update.diff, 4.0 KB (added by skamithi, 13 years ago)

mplayer project updated pullup.c to support 64bit cpus. potential patch for mythtv. i don't have a 64bit PC so i'm not sure if the configure options in the patch are done properly.

  • configure

     
    31553155        echo "TARGET_ARCH_X86=yes" >> $MYTH_CONFIG_MAK
    31563156        echo "#define ARCH_X86 1" >> $TMPH
    31573157        ;;
     3158    x86_64)
     3159        echo "#define ARCH_X86_64" >> $TMPH
     3160        ;;
    31583161    powerpc)
    31593162        if test "$POWERPCMODE" = "64bits"; then
    31603163            echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
  • filters/ivtc/pullup.c

     
    88#include <string.h>
    99#include "pullup.h"
    1010#include "config.h"
     11#include "../mm_arch.h"
    1112
    1213
    13 
    1414#ifdef ARCH_X86
    1515#ifdef HAVE_MMX
    1616static int diff_y_mmx(unsigned char *a, unsigned char *b, int s)
     
    2424                ASMALIGN(4)
    2525                "1: \n\t"
    2626               
    27                 "movq (%%esi), %%mm0 \n\t"
    28                 "movq (%%esi), %%mm2 \n\t"
    29                 "addl %%eax, %%esi \n\t"
    30                 "movq (%%edi), %%mm1 \n\t"
    31                 "addl %%eax, %%edi \n\t"
     27                "movq (%%"REG_S"), %%mm0 \n\t"
     28                "movq (%%"REG_S"), %%mm2 \n\t"
     29                "addl %%"REG_a", %%"REG_S" \n\t"
     30                "movq (%%"REG_D"), %%mm1 \n\t"
     31                "addl %%"REG_a", %%"REG_D" \n\t"
    3232                "psubusb %%mm1, %%mm2 \n\t"
    3333                "psubusb %%mm0, %%mm1 \n\t"
    3434                "movq %%mm2, %%mm0 \n\t"
     
    6868                "movl $4, %%ecx \n\t"
    6969                "pxor %%mm6, %%mm6 \n\t"
    7070                "pxor %%mm7, %%mm7 \n\t"
    71                 "subl %%eax, %%edi \n\t"
     71                "subl %%"REG_a", %%"REG_D" \n\t"
    7272               
    7373                ASMALIGN(4)
    7474                "2: \n\t"
    7575
    76                 "movq (%%esi), %%mm0 \n\t"
    77                 "movq (%%edi), %%mm1 \n\t"
     76                "movq (%%"REG_D"), %%mm0 \n\t"
     77                "movq (%%"REG_D"), %%mm1 \n\t"
    7878                "punpcklbw %%mm7, %%mm0 \n\t"
    79                 "movq (%%edi,%%eax), %%mm2 \n\t"
     79                "movq (%%"REG_D",%%"REG_a"), %%mm2 \n\t"
    8080                "punpcklbw %%mm7, %%mm1 \n\t"
    8181                "punpcklbw %%mm7, %%mm2 \n\t"
    8282                "paddw %%mm0, %%mm0 \n\t"
     
    8787                "paddw %%mm0, %%mm6 \n\t"
    8888                "paddw %%mm1, %%mm6 \n\t"
    8989
    90                 "movq (%%esi), %%mm0 \n\t"
    91                 "movq (%%edi), %%mm1 \n\t"
     90                "movq (%%"REG_S"), %%mm0 \n\t"
     91                "movq (%%"REG_D"), %%mm1 \n\t"
    9292                "punpckhbw %%mm7, %%mm0 \n\t"
    93                 "movq (%%edi,%%eax), %%mm2 \n\t"
     93                "movq (%%"REG_D",%%"REG_a"), %%mm2 \n\t"
    9494                "punpckhbw %%mm7, %%mm1 \n\t"
    9595                "punpckhbw %%mm7, %%mm2 \n\t"
    9696                "paddw %%mm0, %%mm0 \n\t"
     
    101101                "paddw %%mm0, %%mm6 \n\t"
    102102                "paddw %%mm1, %%mm6 \n\t"
    103103               
    104                 "movq (%%edi,%%eax), %%mm0 \n\t"
    105                 "movq (%%esi), %%mm1 \n\t"
     104                "movq (%%"REG_D",%%"REG_a"), %%mm0 \n\t"
     105                "movq (%%"REG_S"), %%mm1 \n\t"
    106106                "punpcklbw %%mm7, %%mm0 \n\t"
    107                 "movq (%%esi,%%eax), %%mm2 \n\t"
     107                "movq (%%"REG_S",%%"REG_a"), %%mm2 \n\t"
    108108                "punpcklbw %%mm7, %%mm1 \n\t"
    109109                "punpcklbw %%mm7, %%mm2 \n\t"
    110110                "paddw %%mm0, %%mm0 \n\t"
     
    115115                "paddw %%mm0, %%mm6 \n\t"
    116116                "paddw %%mm1, %%mm6 \n\t"
    117117               
    118                 "movq (%%edi,%%eax), %%mm0 \n\t"
    119                 "movq (%%esi), %%mm1 \n\t"
     118                "movq (%%"REG_D",%%"REG_a"), %%mm0 \n\t"
     119                "movq (%%"REG_S"), %%mm1 \n\t"
    120120                "punpckhbw %%mm7, %%mm0 \n\t"
    121                 "movq (%%esi,%%eax), %%mm2 \n\t"
     121                "movq (%%"REG_S",%%"REG_a"), %%mm2 \n\t"
    122122                "punpckhbw %%mm7, %%mm1 \n\t"
    123123                "punpckhbw %%mm7, %%mm2 \n\t"
    124124                "paddw %%mm0, %%mm0 \n\t"
     
    129129                "paddw %%mm0, %%mm6 \n\t"
    130130                "paddw %%mm1, %%mm6 \n\t"
    131131
    132                 "addl %%eax, %%esi \n\t"
    133                 "addl %%eax, %%edi \n\t"
     132                "addl %%"REG_a", %%"REG_S" \n\t"
     133                "addl %%"REG_a", %%"REG_D" \n\t"
    134134                "decl %%ecx \n\t"
    135135                "jnz 2b \n\t"
    136136               
     
    163163                ASMALIGN(4)
    164164                "1: \n\t"
    165165               
    166                 "movq (%%esi), %%mm0 \n\t"
    167                 "movq (%%esi), %%mm2 \n\t"
    168                 "movq (%%esi,%%eax), %%mm1 \n\t"
    169                 "addl %%eax, %%esi \n\t"
     166                "movq (%%"REG_S"), %%mm0 \n\t"
     167                "movq (%%"REG_S"), %%mm2 \n\t"
     168                "movq (%%"REG_S",%%"REG_a"), %%mm1 \n\t"
     169                "addl %%"REG_a", %%"REG_S" \n\t"
    170170                "psubusb %%mm1, %%mm2 \n\t"
    171171                "psubusb %%mm0, %%mm1 \n\t"
    172172                "movq %%mm2, %%mm0 \n\t"
  • filters/ivtc/ivtc.pro

     
    11include ( ../filter-common.pro )
     2include ( ../filter-avcodec.pro)
    23
    34INCLUDEPATH += ../../libs/libmythtv ../..
    45