# HG changeset patch # User ramiro # Date 1248759947 0 # Node ID 139af822b6ce49bd315fca649ddc5b8cf09b11a5 # Parent 0192dbbb31215fa3e505b175c46943f45a577f54 MMX2 scaler: Remove {} block leftover from factorization in initMMX2Scaler(). Merge variable declarations to previous {} block and indent. diff -r 0192dbbb3121 -r 139af822b6ce libswscale/swscale.c --- a/libswscale/swscale.c Tue Jul 28 05:42:46 2009 +0000 +++ b/libswscale/swscale.c Tue Jul 28 05:45:47 2009 +0000 @@ -1893,6 +1893,8 @@ x86_reg imm8OfPShufW1 = (d+1<4) ? imm8OfPShufW1B : imm8OfPShufW1A; x86_reg imm8OfPShufW2 = (d+1<4) ? imm8OfPShufW2B : imm8OfPShufW2A; x86_reg fragmentLength = (d+1<4) ? fragmentLengthB : fragmentLengthA; + int maxShift= 3-(d+inc); + int shift=0; filter[i ] = (( xpos & 0xFFFF) ^ 0xFFFF)>>9; filter[i+1] = (((xpos+xInc ) & 0xFFFF) ^ 0xFFFF)>>9; @@ -1900,30 +1902,25 @@ filter[i+3] = (((xpos+xInc*3) & 0xFFFF) ^ 0xFFFF)>>9; filterPos[i/2]= xx; + memcpy(funnyCode + fragmentPos, fragment, fragmentLength); + + funnyCode[fragmentPos + imm8OfPShufW1]= + (a+inc) | ((b+inc)<<2) | ((c+inc)<<4) | ((d+inc)<<6); + funnyCode[fragmentPos + imm8OfPShufW2]= + a | (b<<2) | (c<<4) | (d<<6); + + if (i+4-inc>=dstW) shift=maxShift; //avoid overread + else if ((filterPos[i/2]&3) <= maxShift) shift=filterPos[i/2]&3; //Align + + if (shift && i>=shift) { - int maxShift= 3-(d+inc); - int shift=0; - - memcpy(funnyCode + fragmentPos, fragment, fragmentLength); - - funnyCode[fragmentPos + imm8OfPShufW1]= - (a+inc) | ((b+inc)<<2) | ((c+inc)<<4) | ((d+inc)<<6); - funnyCode[fragmentPos + imm8OfPShufW2]= - a | (b<<2) | (c<<4) | (d<<6); - - if (i+4-inc>=dstW) shift=maxShift; //avoid overread - else if ((filterPos[i/2]&3) <= maxShift) shift=filterPos[i/2]&3; //Align - - if (shift && i>=shift) - { - funnyCode[fragmentPos + imm8OfPShufW1]+= 0x55*shift; - funnyCode[fragmentPos + imm8OfPShufW2]+= 0x55*shift; - filterPos[i/2]-=shift; - } - - fragmentPos+= fragmentLength; + funnyCode[fragmentPos + imm8OfPShufW1]+= 0x55*shift; + funnyCode[fragmentPos + imm8OfPShufW2]+= 0x55*shift; + filterPos[i/2]-=shift; } + fragmentPos+= fragmentLength; + funnyCode[fragmentPos]= RET; } xpos+=xInc;