00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
#undef LH_DATA_IN_TYPE
00015 
#undef LH_DATA_OUT_TYPE
00016 
#undef LH_LUT_DATA_TYPE
00017 
#undef LH_DATA_IN_COUNT
00018 
#undef LH_DATA_OUT_COUNT
00019 
#undef LH_DATA_SHR
00020 
#undef LH_DATA_SHR_CORR
00021 
#undef LH_LUT_DATA_SHR
00022 
#undef LH_BIT_BREIT_INTERNAL
00023 
#if LH_DATA_IN_SIZE_16
00024 
#define LH_DATA_IN_TYPE LH_UINT16
00025 
#else
00026 #define LH_DATA_IN_TYPE LH_UINT8
00027 
#endif
00028 
#if LH_DATA_OUT_SIZE_16
00029 
#define LH_DATA_OUT_TYPE LH_UINT16
00030 
#else
00031 #define LH_DATA_OUT_TYPE LH_UINT8
00032 
#endif
00033 
#if LH_LUT_DATA_SIZE_16
00034 
#define LH_BIT_BREIT_INTERNAL   16
00035 
#define LH_LUT_DATA_TYPE LH_UINT16
00036 
#else
00037 
#if LH_DATA_IN_SIZE_16
00038 
#define LH_BIT_BREIT_INTERNAL   16
00039 
#else
00040 #define LH_BIT_BREIT_INTERNAL   10
00041 
#endif
00042 #define LH_LUT_DATA_TYPE LH_UINT8
00043 
#endif
00044 
00045 
#if LH_DATA_IN_COUNT_4
00046 
#define LH_DATA_IN_COUNT                4
00047 
#else
00048 #define LH_DATA_IN_COUNT                3
00049 
#endif
00050 
00051 
#if LH_DATA_OUT_COUNT_4
00052 
#define LH_DATA_OUT_COUNT               4
00053 
#else
00054 #define LH_DATA_OUT_COUNT               3
00055 
#endif
00056 
00057 #define LH_BIT_MASKE_ADR (((1<<LH_BIT_BREIT_ADR)-1)<< (LH_BIT_BREIT_INTERNAL-LH_BIT_BREIT_ADR))
00058 #define LH_BIT_BREIT_SELEKTOR (LH_BIT_BREIT_INTERNAL-LH_BIT_BREIT_ADR)
00059 #define LH_BIT_MASKE_SELEKTOR ((1<<LH_BIT_BREIT_SELEKTOR)-1)
00060 
00061 #define LH_ADR_BEREICH_SEL              (1<<LH_BIT_BREIT_SELEKTOR)
00062 
00063 
#if LH_LUT_DATA_SIZE_16
00064 
#define LH_DATA_SHR               (16+LH_BIT_BREIT_SELEKTOR-LH_ADR_BREIT_AUS_LUT)  
00065 
#define LH_DATA_SHR_CORR 8              
00066 
#define LH_LUT_DATA_SHR  16             
00067 
#else
00068 #define LH_DATA_SHR               (8+LH_BIT_BREIT_SELEKTOR-LH_ADR_BREIT_AUS_LUT)   
00069 #define LH_LUT_DATA_SHR  8              
00070 
#endif
00071 
00072 
#if LH_DATA_IN_COUNT_4
00073 
{
00074 
static LH_UINT16 MMXTab [] = 
00075 {
00076     0x0000, 0x0000, 0x0000, 0x0000,
00077     0x0001, 0x0001, 0x0001, 0x0001,
00078     0x0002, 0x0002, 0x0002, 0x0002,
00079     0x0003, 0x0003, 0x0003, 0x0003,
00080     0x0004, 0x0004, 0x0004, 0x0004,
00081     0x0005, 0x0005, 0x0005, 0x0005,
00082     0x0006, 0x0006, 0x0006, 0x0006,
00083     0x0007, 0x0007, 0x0007, 0x0007,
00084     0x0008, 0x0008, 0x0008, 0x0008,
00085     0x0009, 0x0009, 0x0009, 0x0009,
00086     0x000A, 0x000A, 0x000A, 0x000a,
00087     0x000B, 0x000B, 0x000B, 0x000b,
00088     0x000C, 0x000C, 0x000C, 0x000c,
00089     0x000D, 0x000D, 0x000D, 0x000d,
00090     0x000E, 0x000E, 0x000E, 0x000e,
00091     0x000F, 0x000F, 0x000F, 0x000f,
00092     0x0010, 0x0010, 0x0010, 0x0010,
00093     0x0011, 0x0011, 0x0011, 0x0011,
00094     0x0012, 0x0012, 0x0012, 0x0012,
00095     0x0013, 0x0013, 0x0013, 0x0013,
00096     0x0014, 0x0014, 0x0014, 0x0014,
00097     0x0015, 0x0015, 0x0015, 0x0015,
00098     0x0016, 0x0016, 0x0016, 0x0016,
00099     0x0017, 0x0017, 0x0017, 0x0017,
00100     0x0018, 0x0018, 0x0018, 0x0018,
00101     0x0019, 0x0019, 0x0019, 0x0019,
00102     0x001A, 0x001A, 0x001A, 0x001a,
00103     0x001B, 0x001B, 0x001B, 0x001b,
00104     0x001C, 0x001C, 0x001C, 0x001c,
00105     0x001D, 0x001D, 0x001D, 0x001d,
00106     0x001E, 0x001E, 0x001E, 0x001e,
00107     0x001F, 0x001F, 0x001F, 0x001f,
00108     0x0020, 0x0020, 0x0020, 0x0020,
00109     0x0021, 0x0021, 0x0021, 0x0021,
00110     0x0022, 0x0022, 0x0022, 0x0022,
00111     0x0023, 0x0023, 0x0023, 0x0023,
00112     0x0024, 0x0024, 0x0024, 0x0024,
00113     0x0025, 0x0025, 0x0025, 0x0025,
00114     0x0026, 0x0026, 0x0026, 0x0026,
00115     0x0027, 0x0027, 0x0027, 0x0027,
00116     0x0028, 0x0028, 0x0028, 0x0028,
00117     0x0029, 0x0029, 0x0029, 0x0029,
00118     0x002A, 0x002A, 0x002A, 0x002a,
00119     0x002B, 0x002B, 0x002B, 0x002b,
00120     0x002C, 0x002C, 0x002C, 0x002c,
00121     0x002D, 0x002D, 0x002D, 0x002d,
00122     0x002E, 0x002E, 0x002E, 0x002e,
00123     0x002F, 0x002F, 0x002F, 0x002f,
00124     0x0030, 0x0030, 0x0030, 0x0030,
00125     0x0031, 0x0031, 0x0031, 0x0031,
00126     0x0032, 0x0032, 0x0032, 0x0032,
00127     0x0033, 0x0033, 0x0033, 0x0033,
00128     0x0034, 0x0034, 0x0034, 0x0034,
00129     0x0035, 0x0035, 0x0035, 0x0035,
00130     0x0036, 0x0036, 0x0036, 0x0036,
00131     0x0037, 0x0037, 0x0037, 0x0037,
00132     0x0038, 0x0038, 0x0038, 0x0038,
00133     0x0039, 0x0039, 0x0039, 0x0039,
00134     0x003A, 0x003A, 0x003A, 0x003a,
00135     0x003B, 0x003B, 0x003B, 0x003b,
00136     0x003C, 0x003C, 0x003C, 0x003c,
00137     0x003D, 0x003D, 0x003D, 0x003d,
00138     0x003E, 0x003E, 0x003E, 0x003e,
00139     0x003F, 0x003F, 0x003F, 0x003f,
00140     0x0040, 0x0040, 0x0040, 0x0040,
00141     0x0041, 0x0041, 0x0041, 0x0041,
00142     0x0042, 0x0042, 0x0042, 0x0042,
00143     0x0043, 0x0043, 0x0043, 0x0043,
00144     0x0044, 0x0044, 0x0044, 0x0044,
00145     0x0045, 0x0045, 0x0045, 0x0045,
00146     0x0046, 0x0046, 0x0046, 0x0046,
00147     0x0047, 0x0047, 0x0047, 0x0047,
00148     0x0048, 0x0048, 0x0048, 0x0048,
00149     0x0049, 0x0049, 0x0049, 0x0049,
00150     0x004A, 0x004A, 0x004A, 0x004a,
00151     0x004B, 0x004B, 0x004B, 0x004b,
00152     0x004C, 0x004C, 0x004C, 0x004c,
00153     0x004D, 0x004D, 0x004D, 0x004d,
00154     0x004E, 0x004E, 0x004E, 0x004e,
00155     0x004F, 0x004F, 0x004F, 0x004f,
00156     0x0050, 0x0050, 0x0050, 0x0050,
00157     0x0051, 0x0051, 0x0051, 0x0051,
00158     0x0052, 0x0052, 0x0052, 0x0052,
00159     0x0053, 0x0053, 0x0053, 0x0053,
00160     0x0054, 0x0054, 0x0054, 0x0054,
00161     0x0055, 0x0055, 0x0055, 0x0055,
00162     0x0056, 0x0056, 0x0056, 0x0056,
00163     0x0057, 0x0057, 0x0057, 0x0057,
00164     0x0058, 0x0058, 0x0058, 0x0058,
00165     0x0059, 0x0059, 0x0059, 0x0059,
00166     0x005A, 0x005A, 0x005A, 0x005a,
00167     0x005B, 0x005B, 0x005B, 0x005b,
00168     0x005C, 0x005C, 0x005C, 0x005c,
00169     0x005D, 0x005D, 0x005D, 0x005d,
00170     0x005E, 0x005E, 0x005E, 0x005e,
00171     0x005F, 0x005F, 0x005F, 0x005f,
00172     0x0060, 0x0060, 0x0060, 0x0060,
00173     0x0061, 0x0061, 0x0061, 0x0061,
00174     0x0062, 0x0062, 0x0062, 0x0062,
00175     0x0063, 0x0063, 0x0063, 0x0063,
00176     0x0064, 0x0064, 0x0064, 0x0064,
00177     0x0065, 0x0065, 0x0065, 0x0065,
00178     0x0066, 0x0066, 0x0066, 0x0066,
00179     0x0067, 0x0067, 0x0067, 0x0067,
00180     0x0068, 0x0068, 0x0068, 0x0068,
00181     0x0069, 0x0069, 0x0069, 0x0069,
00182     0x006A, 0x006A, 0x006A, 0x006a,
00183     0x006B, 0x006B, 0x006B, 0x006b,
00184     0x006C, 0x006C, 0x006C, 0x006c,
00185     0x006D, 0x006D, 0x006D, 0x006d,
00186     0x006E, 0x006E, 0x006E, 0x006e,
00187     0x006F, 0x006F, 0x006F, 0x006f,
00188     0x0070, 0x0070, 0x0070, 0x0070,
00189     0x0071, 0x0071, 0x0071, 0x0071,
00190     0x0072, 0x0072, 0x0072, 0x0072,
00191     0x0073, 0x0073, 0x0073, 0x0073,
00192     0x0074, 0x0074, 0x0074, 0x0074,
00193     0x0075, 0x0075, 0x0075, 0x0075,
00194     0x0076, 0x0076, 0x0076, 0x0076,
00195     0x0077, 0x0077, 0x0077, 0x0077,
00196     0x0078, 0x0078, 0x0078, 0x0078,
00197     0x0079, 0x0079, 0x0079, 0x0079,
00198     0x007A, 0x007A, 0x007A, 0x007a,
00199     0x007B, 0x007B, 0x007B, 0x007b,
00200     0x007C, 0x007C, 0x007C, 0x007c,
00201     0x007D, 0x007D, 0x007D, 0x007d,
00202     0x007E, 0x007E, 0x007E, 0x007e,
00203     0x007F, 0x007F, 0x007F, 0x007f,
00204     0x0080, 0x0080, 0x0080, 0x0080
00205 };
00206         
LH_UINT32 ein_regY;
00207         
LH_UINT32 ein_regM;
00208         
LH_UINT32 ein_regC;
00209         
LH_UINT32 ein_regK;
00210         
LH_DATA_IN_TYPE ein_cache[4];
00211         
LH_LUT_DATA_TYPE * paNewVal0;
00212         
LH_UINT32 ako0;
00213         
LH_UINT32 ako1;
00214         
LH_UINT32 ako2;
00215         
LH_UINT32 ako3;
00216 
00217         
LH_UINT8        Mode;
00218         
LH_UINT32       PixelCount, LineCount, i, j;
00219         
long inputOffset,outputOffset;
00220         
LH_DATA_IN_TYPE * input0 = (
LH_DATA_IN_TYPE *)calcParam->inputData[0];
00221         
LH_DATA_IN_TYPE * input1 = (
LH_DATA_IN_TYPE *)calcParam->inputData[1];
00222         
LH_DATA_IN_TYPE * input2 = (
LH_DATA_IN_TYPE *)calcParam->inputData[2];
00223         
LH_DATA_IN_TYPE * input3 = (
LH_DATA_IN_TYPE *)calcParam->inputData[3];
00224         
LH_DATA_IN_TYPE * input4 = (
LH_DATA_IN_TYPE *)calcParam->inputData[4];
00225 
00226         
LH_DATA_OUT_TYPE * output0 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[0];
00227         
LH_DATA_OUT_TYPE * output1 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[1];
00228         
LH_DATA_OUT_TYPE * output2 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[2];
00229         
LH_DATA_OUT_TYPE * output3 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[3];
00230         
LH_DATA_OUT_TYPE * output4 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[4];
00231 
00232         
LH_UINT16 * My_InputLut = (
LH_UINT16 *)lutParam->inputLut;
00233         
LH_LUT_DATA_TYPE * My_OutputLut = (
LH_LUT_DATA_TYPE *)lutParam->outputLut;
00234         
LH_LUT_DATA_TYPE * My_ColorLut = (
LH_LUT_DATA_TYPE *)lutParam->colorLut;
00235 
00236         
LH_DATA_OUT_TYPE Mask = (
LH_DATA_OUT_TYPE)-1;
00237         
LH_UINT16 ak[4];
00238         
LH_UINT8    bFPUState [108];
00239 
#define Test_mode
00240 
#ifdef Test_mode
00241 
        LH_UINT16 TestRam[4];
00242 
#endif
00243 
00244 
#ifdef DEBUG_OUTPUT
00245 
        CMError err = 
noErr;
00246 
#endif
00247 
        LH_START_PROC(
LH_CALC_PROC_NAME)
00248 
00249         #
if LH_DATA_IN_SIZE_16
00250         inputOffset = (
long)calcParam->cmInputPixelOffset / 2;
00251 
        #else
00252 
        inputOffset = (
long)calcParam->cmInputPixelOffset;
00253 
        #endif
00254 
        #if LH_DATA_OUT_SIZE_16
00255 
        outputOffset = (
long)calcParam->cmOutputPixelOffset / 2;
00256 
        #else
00257 
        outputOffset = (
long)calcParam->cmOutputPixelOffset;
00258 
        #endif
00259 
00260         
if (calcParam->clearMask)
00261                 Mask = 0;
00262         Mode = 
LH_CALC_ENGINE_UNDEF_MODE;
00263 
00264 
00265         
if ((calcParam->cmInputPixelOffset * calcParam->cmPixelPerLine == calcParam->cmInputBytesPerLine) && (calcParam->cmOutputPixelOffset * calcParam->cmPixelPerLine == calcParam->cmOutputBytesPerLine))
00266         {
00267                 PixelCount = calcParam->cmPixelPerLine * calcParam->cmLineCount;
00268                 LineCount = 1;
00269         }
00270         
else
00271         {
00272                 PixelCount = calcParam->cmPixelPerLine;
00273                 LineCount = calcParam->cmLineCount;
00274         }
00275         
if (calcParam->copyAlpha )
00276         {
00277                         Mode = 
LH_CALC_ENGINE_U_TO_U;
00278         }
00279         
else
00280         {
00281                 
if (calcParam->clearMask)
00282                         Mode = 
LH_CALC_ENGINE_P_TO_U;
00283                 
else
00284                         Mode = 
LH_CALC_ENGINE_P_TO_P;
00285         }
00286 
00287         __asm {
00288             fnsave  bFPUState
00289                         pxor            mm0,mm0
00290                         pxor            mm1,mm1
00291                         pxor            mm2,mm2
00292                         pxor            mm3,mm3
00293                         pxor            mm4,mm4
00294                         pxor            mm5,mm5
00295                         pxor            mm6,mm6
00296                         pxor            mm7,mm7
00297         }
00298         j = 0;
00299         
while (LineCount)
00300         {
00301                 i = PixelCount;
00302                 
while (i)
00303                 {
00304 
                        #if LH_LUT_DATA_SIZE_16
00305 
                        #if LH_DATA_IN_SIZE_16 || LH_DATA_OUT_SIZE_16
00306 
                        register LH_UINT32 ko;
00307 
                        #endif
00308 
                        #if LH_DATA_IN_SIZE_16
00309 
                        register LH_DATA_IN_TYPE aValIn;
00310 
                #endif
00311 
                        #if LH_DATA_OUT_SIZE_16
00312 
                        register LH_UINT32 aVal;
00313 
                #endif
00314 
                        #if LH_DATA_IN_SIZE_16
00315 
                                aValIn = (ein_cache[0]=*input0) - ( *input0 >> ( 
LH_ADR_BREIT_EIN_LUT ));
00316                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00317                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 0 << 
LH_ADR_BREIT_EIN_LUT );
00318                         ein_regC = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >>( 16-
LH_ADR_BREIT_EIN_LUT );
00319                         
00320                                 aValIn = (ein_cache[1]=*input1) - ( *input1 >> ( 
LH_ADR_BREIT_EIN_LUT ));
00321                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00322                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 1 << 
LH_ADR_BREIT_EIN_LUT );
00323                         ein_regM = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
00324                         
00325                                 aValIn = (ein_cache[2]=*input2) - ( *input2 >> ( 
LH_ADR_BREIT_EIN_LUT ));
00326                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00327                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 2 << 
LH_ADR_BREIT_EIN_LUT );
00328                         ein_regY = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
00329 
00330                                 aValIn = (ein_cache[3]=*input3) - ( *input3 >> ( 
LH_ADR_BREIT_EIN_LUT ));
00331                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00332                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 3 << 
LH_ADR_BREIT_EIN_LUT );
00333                         ein_regK = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
00334 
                        #else
00335 
                        ein_regC = My_InputLut[(ein_cache[0]=*input0) + ( 0 << 
LH_ADR_BREIT_EIN_LUT )];
00336                         ein_regM = My_InputLut[(ein_cache[1]=*input1) + ( 1 << 
LH_ADR_BREIT_EIN_LUT )];
00337                         ein_regY = My_InputLut[(ein_cache[2]=*input2) + ( 2 << 
LH_ADR_BREIT_EIN_LUT )];
00338                         ein_regK = My_InputLut[(ein_cache[3]=*input3) + ( 3 << 
LH_ADR_BREIT_EIN_LUT )];
00339 
                        #endif
00340 
                        #else
00341 
                        #if LH_DATA_IN_SIZE_16
00342 
                        register LH_DATA_IN_TYPE aValIn;
00343                         
register LH_UINT32 ko;
00344                                 aValIn = (ein_cache[0]=*input0) - ( *input0 >> ( 
LH_ADR_BREIT_EIN_LUT ));
00345                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00346                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 0 << 
LH_ADR_BREIT_EIN_LUT );
00347                         ein_regC = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >>( 10-
LH_ADR_BREIT_EIN_LUT );
00348                         
00349                                 aValIn = (ein_cache[1]=*input1) - ( *input1 >> ( 
LH_ADR_BREIT_EIN_LUT ));
00350                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00351                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 1 << 
LH_ADR_BREIT_EIN_LUT );
00352                         ein_regM = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
00353                         
00354                                 aValIn = (ein_cache[2]=*input2) - ( *input2 >> ( 
LH_ADR_BREIT_EIN_LUT ));
00355                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00356                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 2 << 
LH_ADR_BREIT_EIN_LUT );
00357                         ein_regY = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
00358 
00359                                 aValIn = (ein_cache[3]=*input3) - ( *input3 >> ( 
LH_ADR_BREIT_EIN_LUT ));
00360                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00361                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 3 << 
LH_ADR_BREIT_EIN_LUT );
00362                         ein_regK = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
00363                         
00364 
00365 
00366 
00367 
                        #else
00368 
                        ein_regC = My_InputLut[(ein_cache[0]=*input0) + ( 0 << 
LH_ADR_BREIT_EIN_LUT )];
00369                         ein_regM = My_InputLut[(ein_cache[1]=*input1) + ( 1 << 
LH_ADR_BREIT_EIN_LUT )];
00370                         ein_regY = My_InputLut[(ein_cache[2]=*input2) + ( 2 << 
LH_ADR_BREIT_EIN_LUT )];
00371                         ein_regK = My_InputLut[(ein_cache[3]=*input3) + ( 3 << 
LH_ADR_BREIT_EIN_LUT )];
00372 
                        #endif
00373 
                        #endif
00374 
                        paNewVal0 = (
LH_LUT_DATA_TYPE *)My_ColorLut + 
00375                                                 ((((((((ein_regC & 
LH_BIT_MASKE_ADR) << 
LH_BIT_BREIT_ADR) +
00376                                                            (ein_regM & 
LH_BIT_MASKE_ADR)) << 
LH_BIT_BREIT_ADR) +
00377                                                            (ein_regY & 
LH_BIT_MASKE_ADR))>> (
LH_BIT_BREIT_SELEKTOR-
LH_BIT_BREIT_ADR)) + 
00378                                                        (ein_regK >> 
LH_BIT_BREIT_SELEKTOR))*
LH_DATA_OUT_COUNT);
00379                         ein_regC &= 
LH_BIT_MASKE_SELEKTOR;
00380                         ein_regM &= 
LH_BIT_MASKE_SELEKTOR;
00381                         ein_regY &= 
LH_BIT_MASKE_SELEKTOR;
00382                         ein_regK &= 
LH_BIT_MASKE_SELEKTOR;
00383                         
if (ein_regY >= ein_regC)
00384                         {
00385                         
if( ein_regM >= ein_regC )
00386                         {
00387                             
if( ein_regY >= ein_regM )             
00388                             {                   
00389                                 
if( ein_regC >= ein_regK )
00390                                 {
00391                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regY;
00392                                                         ako1 = ein_regY - ein_regM;
00393                                                         ako2 = ein_regM - ein_regC;
00394                                                         ako3 = ein_regC - ein_regK;
00395 
                                                        #if LH_LUT_DATA_SIZE_16
00396 
                                                        #if LH_DATA_OUT_SIZE_16
00397 
                                        
00398                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
00399                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
00400                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
00401                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
00402                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
00403                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00404                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00405                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00406                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
00407                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00408         
00409                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
00410                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
00411                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
00412                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
00413                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
00414                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00415                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00416                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00417                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
00418                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00419         
00420                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
00421                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
00422                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
00423                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
00424                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
00425                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00426                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00427                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00428                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
00429                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00430         
00431 
                                                        #if LH_DATA_OUT_COUNT_4
00432 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
00433                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
00434                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
00435                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
00436                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
00437                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00438                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00439                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00440                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
00441                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00442 
                                                        #endif
00443 
                                                        
00444 
                                                        #else
00445 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
00446                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
00447                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
00448                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
00449                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00450                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
00451                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
00452                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
00453                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
00454                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00455                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
00456                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
00457                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
00458                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
00459                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00460 
                                                        #if LH_DATA_OUT_COUNT_4
00461 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
00462                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
00463                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
00464                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
00465                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00466 
                                                        #endif
00467 
                                                        #endif
00468 
                                                        
00469 
                                                        #else
00470 
     __asm { 
00471             mov         eax, paNewVal0
00472 
00473                         mov                     ebx, ako0
00474             movq        mm5, MMXTab [ebx*8]
00475 
#ifdef Test_mode
00476 
                        movq            TestRam,mm5
00477 
#endif
00478 
                        punpcklbw       mm1,[eax] 
00479                         mov                     ebx, ako1
00480                         psrlw       mm1,8
00481 
#ifdef Test_mode
00482 
                        movq            TestRam,mm1
00483 
#endif
00484 
00485                         pmullw          mm5,mm1
00486             movq        mm6, MMXTab [ebx*8]
00487 
#ifdef Test_mode
00488 
                        movq            TestRam,mm6
00489 
#endif
00490 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
00491                         mov                     ebx, ako2
00492                         psrlw       mm2,8
00493 
#ifdef Test_mode
00494 
                        movq            TestRam,mm2
00495 
#endif
00496 
                        pmullw          mm6,mm2
00497 
00498                         movq        mm7, MMXTab [ebx*8]
00499                         paddusw         mm5,mm6
00500 
#ifdef Test_mode
00501 
                        movq            TestRam,mm7
00502 
#endif
00503 
                        punpcklbw   mm1,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
00504                         mov                     ebx, ako3
00505                         psrlw       mm1,8
00506 
#ifdef Test_mode
00507 
                        movq            TestRam,mm1
00508 
#endif
00509 
                        pmullw          mm7,mm1
00510 
00511                         movq        mm6, MMXTab [ebx*8]
00512                         paddusw         mm5,mm7
00513 
#ifdef Test_mode
00514 
                        movq            TestRam,mm6
00515 
#endif
00516 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
00517                         mov                     ebx, ein_regK
00518                         psrlw       mm2,8
00519 
#ifdef Test_mode
00520 
                        movq            TestRam,mm2
00521 
#endif
00522 
                        pmullw          mm6,mm2
00523 
00524                         movq        mm7, MMXTab [ebx*8]
00525                         paddusw         mm5,mm6
00526 
#ifdef Test_mode
00527 
                        movq            TestRam,mm7
00528 
#endif
00529 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
00530                         mov                     ebx, ako2
00531                         psrlw       mm1,8
00532 
#ifdef Test_mode
00533 
                        movq            TestRam,mm1
00534 
#endif
00535 
                        pmullw          mm7,mm1
00536                         paddusw         mm5,mm7
00537 
#ifdef Test_mode
00538 
                        movq            TestRam,mm5
00539 
#endif
00540 
00541 
00542                         xor                     eax,eax
00543                         psrlw           mm5,
LH_DATA_SHR
00544                         movq            ak,mm5
00545 
00546                         mov                     ax,ak
00547                         mov                     esi,My_OutputLut
00548                         mov                     al,
BYTE PTR[eax+esi]
00549                         mov                     edi,output0
00550                         mov                     [edi], al
00551                         mov                     ax,ak+2
00552                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
00553                         mov                     edi,output1
00554                         mov                     [edi], al
00555                         mov                     ax,ak+4
00556                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
00557                         mov                     edi,output2
00558                         mov                     [edi], al
00559 
                        #if LH_DATA_OUT_COUNT_4
00560 
                        mov                     ax,ak+6
00561                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
00562                         mov                     edi,output3
00563                         mov                     [edi], al
00564 
                        #endif
00565 
                        
00566 
00567          }
00568 
                                                        #endif
00569 
                                                }
00570                                                 
else if(ein_regM >= ein_regK )  
00571                                                 {               
00572                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regY;
00573                                                         ako1 = ein_regY - ein_regM;
00574                                                         ako2 = ein_regM - ein_regK;
00575                                                         ako3 = ein_regK - ein_regC;
00576 
                                                        #if LH_LUT_DATA_SIZE_16
00577 
                                                        #if LH_DATA_OUT_SIZE_16
00578 
                                        
00579                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
00580                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
00581                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
00582                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
00583                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
00584                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00585                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00586                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00587                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
00588                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00589         
00590                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
00591                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
00592                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
00593                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
00594                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
00595                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00596                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00597                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00598                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
00599                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00600         
00601                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
00602                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
00603                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
00604                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
00605                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
00606                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00607                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00608                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00609                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
00610                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00611         
00612 
                                                        #if LH_DATA_OUT_COUNT_4
00613 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
00614                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
00615                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
00616                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
00617                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
00618                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00619                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00620                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00621                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
00622                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00623 
                                                        #endif
00624 
                                                        
00625 
                                                        #else
00626 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
00627                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
00628                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
00629                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
00630                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00631                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
00632                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
00633                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
00634                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
00635                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00636                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
00637                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
00638                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
00639                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
00640                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00641 
                                                        #if LH_DATA_OUT_COUNT_4
00642 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
00643                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
00644                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
00645                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
00646                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00647 
                                                        #endif
00648 
                                                        #endif
00649 
                                                        
00650 
                                                        #else
00651 
     __asm { 
00652             mov         eax, paNewVal0
00653 
00654                         mov                     ebx, ako0
00655             movq        mm5, MMXTab [ebx*8]
00656 
#ifdef Test_mode
00657 
                        movq            TestRam,mm5
00658 
#endif
00659 
                        punpcklbw       mm1,[eax] 
00660                         mov                     ebx, ako1
00661                         psrlw       mm1,8
00662 
#ifdef Test_mode
00663 
                        movq            TestRam,mm1
00664 
#endif
00665 
00666                         pmullw          mm5,mm1
00667             movq        mm6, MMXTab [ebx*8]
00668 
#ifdef Test_mode
00669 
                        movq            TestRam,mm6
00670 
#endif
00671 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
00672                         mov                     ebx, ako2
00673                         psrlw       mm2,8
00674 
#ifdef Test_mode
00675 
                        movq            TestRam,mm2
00676 
#endif
00677 
                        pmullw          mm6,mm2
00678 
00679                         movq        mm7, MMXTab [ebx*8]
00680                         paddusw         mm5,mm6
00681 
#ifdef Test_mode
00682 
                        movq            TestRam,mm7
00683 
#endif
00684 
                        punpcklbw   mm1,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
00685                         mov                     ebx, ako3
00686                         psrlw       mm1,8
00687 
#ifdef Test_mode
00688 
                        movq            TestRam,mm1
00689 
#endif
00690 
                        pmullw          mm7,mm1
00691 
00692                         movq        mm6, MMXTab [ebx*8]
00693                         paddusw         mm5,mm7
00694 
#ifdef Test_mode
00695 
                        movq            TestRam,mm6
00696 
#endif
00697 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
00698                         mov                     ebx, ein_regC
00699                         psrlw       mm2,8
00700 
#ifdef Test_mode
00701 
                        movq            TestRam,mm2
00702 
#endif
00703 
                        pmullw          mm6,mm2
00704 
00705                         movq        mm7, MMXTab [ebx*8]
00706                         paddusw         mm5,mm6
00707 
#ifdef Test_mode
00708 
                        movq            TestRam,mm7
00709 
#endif
00710 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
00711                         mov                     ebx, ako2
00712                         psrlw       mm1,8
00713 
#ifdef Test_mode
00714 
                        movq            TestRam,mm1
00715 
#endif
00716 
                        pmullw          mm7,mm1
00717                         paddusw         mm5,mm7
00718 
#ifdef Test_mode
00719 
                        movq            TestRam,mm5
00720 
#endif
00721 
00722 
00723                         xor                     eax,eax
00724                         psrlw           mm5,
LH_DATA_SHR
00725                         movq            ak,mm5
00726 
00727                         mov                     ax,ak
00728                         mov                     esi,My_OutputLut
00729                         mov                     al,
BYTE PTR[eax+esi]
00730                         mov                     edi,output0
00731                         mov                     [edi], al
00732                         mov                     ax,ak+2
00733                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
00734                         mov                     edi,output1
00735                         mov                     [edi], al
00736                         mov                     ax,ak+4
00737                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
00738                         mov                     edi,output2
00739                         mov                     [edi], al
00740 
                        #if LH_DATA_OUT_COUNT_4
00741 
                        mov                     ax,ak+6
00742                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
00743                         mov                     edi,output3
00744                         mov                     [edi], al
00745 
                        #endif
00746 
                        
00747 
00748          }
00749 
                                                        #endif
00750 
                                                }
00751                                                 
else if(ein_regY >= ein_regK )  
00752                                                 {        
00753                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regY;
00754                                                         ako1 = ein_regY - ein_regK;
00755                                                         ako2 = ein_regK - ein_regM;
00756                                                         ako3 = ein_regM - ein_regC;
00757 
                                                        #if LH_LUT_DATA_SIZE_16
00758 
                                                        #if LH_DATA_OUT_SIZE_16
00759 
                                        
00760                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
00761                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
00762                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
00763                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
00764                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
00765                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00766                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00767                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00768                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
00769                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00770         
00771                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
00772                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
00773                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
00774                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
00775                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
00776                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00777                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00778                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00779                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
00780                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00781         
00782                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
00783                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
00784                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
00785                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
00786                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
00787                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00788                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00789                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00790                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
00791                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00792         
00793 
                                                        #if LH_DATA_OUT_COUNT_4
00794 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
00795                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
00796                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
00797                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
00798                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
00799                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00800                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00801                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00802                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
00803                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00804 
                                                        #endif
00805 
                                                        
00806 
                                                        #else
00807 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
00808                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
00809                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
00810                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
00811                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00812                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
00813                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
00814                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
00815                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
00816                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00817                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
00818                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
00819                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
00820                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
00821                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00822 
                                                        #if LH_DATA_OUT_COUNT_4
00823 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
00824                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
00825                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
00826                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
00827                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00828 
                                                        #endif
00829 
                                                        #endif
00830 
                                                        
00831 
                                                        #else
00832 
     __asm { 
00833             mov         eax, paNewVal0
00834 
00835                         mov                     ebx, ako0
00836             movq        mm5, MMXTab [ebx*8]
00837 
#ifdef Test_mode
00838 
                        movq            TestRam,mm5
00839 
#endif
00840 
                        punpcklbw       mm1,[eax] 
00841                         mov                     ebx, ako1
00842                         psrlw       mm1,8
00843 
#ifdef Test_mode
00844 
                        movq            TestRam,mm1
00845 
#endif
00846 
00847                         pmullw          mm5,mm1
00848             movq        mm6, MMXTab [ebx*8]
00849 
#ifdef Test_mode
00850 
                        movq            TestRam,mm6
00851 
#endif
00852 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
00853                         mov                     ebx, ako2
00854                         psrlw       mm2,8
00855 
#ifdef Test_mode
00856 
                        movq            TestRam,mm2
00857 
#endif
00858 
                        pmullw          mm6,mm2
00859 
00860                         movq        mm7, MMXTab [ebx*8]
00861                         paddusw         mm5,mm6
00862 
#ifdef Test_mode
00863 
                        movq            TestRam,mm7
00864 
#endif
00865 
                        punpcklbw   mm1,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
00866                         mov                     ebx, ako3
00867                         psrlw       mm1,8
00868 
#ifdef Test_mode
00869 
                        movq            TestRam,mm1
00870 
#endif
00871 
                        pmullw          mm7,mm1
00872 
00873                         movq        mm6, MMXTab [ebx*8]
00874                         paddusw         mm5,mm7
00875 
#ifdef Test_mode
00876 
                        movq            TestRam,mm6
00877 
#endif
00878 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
00879                         mov                     ebx, ein_regC
00880                         psrlw       mm2,8
00881 
#ifdef Test_mode
00882 
                        movq            TestRam,mm2
00883 
#endif
00884 
                        pmullw          mm6,mm2
00885 
00886                         movq        mm7, MMXTab [ebx*8]
00887                         paddusw         mm5,mm6
00888 
#ifdef Test_mode
00889 
                        movq            TestRam,mm7
00890 
#endif
00891 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
00892                         mov                     ebx, ako2
00893                         psrlw       mm1,8
00894 
#ifdef Test_mode
00895 
                        movq            TestRam,mm1
00896 
#endif
00897 
                        pmullw          mm7,mm1
00898                         paddusw         mm5,mm7
00899 
#ifdef Test_mode
00900 
                        movq            TestRam,mm5
00901 
#endif
00902 
00903 
00904                         xor                     eax,eax
00905                         psrlw           mm5,
LH_DATA_SHR
00906                         movq            ak,mm5
00907 
00908                         mov                     ax,ak
00909                         mov                     esi,My_OutputLut
00910                         mov                     al,
BYTE PTR[eax+esi]
00911                         mov                     edi,output0
00912                         mov                     [edi], al
00913                         mov                     ax,ak+2
00914                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
00915                         mov                     edi,output1
00916                         mov                     [edi], al
00917                         mov                     ax,ak+4
00918                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
00919                         mov                     edi,output2
00920                         mov                     [edi], al
00921 
                        #if LH_DATA_OUT_COUNT_4
00922 
                        mov                     ax,ak+6
00923                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
00924                         mov                     edi,output3
00925                         mov                     [edi], al
00926 
                        #endif
00927 
                        
00928 
00929          }
00930 
                                                        #endif
00931 
                                                }
00932                                                 
else{                                                   
00933                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regK;
00934                                                         ako1 = ein_regK - ein_regY;
00935                                                         ako2 = ein_regY - ein_regM;
00936                                                         ako3 = ein_regM - ein_regC;
00937 
                                                        #if LH_LUT_DATA_SIZE_16
00938 
                                                        #if LH_DATA_OUT_SIZE_16
00939 
                                        
00940                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
00941                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
00942                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
00943                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
00944                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
00945                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00946                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00947                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00948                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
00949                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00950         
00951                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
00952                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
00953                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
00954                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
00955                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
00956                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00957                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00958                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00959                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
00960                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00961         
00962                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
00963                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
00964                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
00965                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
00966                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
00967                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00968                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00969                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00970                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
00971                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00972         
00973 
                                                        #if LH_DATA_OUT_COUNT_4
00974 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
00975                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
00976                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
00977                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
00978                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
00979                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
00980                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
00981                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00982                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
00983                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00984 
                                                        #endif
00985 
                                                        
00986 
                                                        #else
00987 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
00988                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
00989                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
00990                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
00991                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00992                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
00993                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
00994                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
00995                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
00996                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00997                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
00998                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
00999                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01000                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01001                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01002 
                                                        #if LH_DATA_OUT_COUNT_4
01003 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
01004                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01005                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01006                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01007                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01008 
                                                        #endif
01009 
                                                        #endif
01010 
                                                        
01011 
                                                        #else
01012 
     __asm { 
01013             mov         eax, paNewVal0
01014 
01015                         mov                     ebx, ako0
01016             movq        mm5, MMXTab [ebx*8]
01017 
#ifdef Test_mode
01018 
                        movq            TestRam,mm5
01019 
#endif
01020 
                        punpcklbw       mm1,[eax] 
01021                         mov                     ebx, ako1
01022                         psrlw       mm1,8
01023 
#ifdef Test_mode
01024 
                        movq            TestRam,mm1
01025 
#endif
01026 
01027                         pmullw          mm5,mm1
01028             movq        mm6, MMXTab [ebx*8]
01029 
#ifdef Test_mode
01030 
                        movq            TestRam,mm6
01031 
#endif
01032 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01033                         mov                     ebx, ako2
01034                         psrlw       mm2,8
01035 
#ifdef Test_mode
01036 
                        movq            TestRam,mm2
01037 
#endif
01038 
                        pmullw          mm6,mm2
01039 
01040                         movq        mm7, MMXTab [ebx*8]
01041                         paddusw         mm5,mm6
01042 
#ifdef Test_mode
01043 
                        movq            TestRam,mm7
01044 
#endif
01045 
                        punpcklbw   mm1,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01046                         mov                     ebx, ako3
01047                         psrlw       mm1,8
01048 
#ifdef Test_mode
01049 
                        movq            TestRam,mm1
01050 
#endif
01051 
                        pmullw          mm7,mm1
01052 
01053                         movq        mm6, MMXTab [ebx*8]
01054                         paddusw         mm5,mm7
01055 
#ifdef Test_mode
01056 
                        movq            TestRam,mm6
01057 
#endif
01058 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01059                         mov                     ebx, ein_regC
01060                         psrlw       mm2,8
01061 
#ifdef Test_mode
01062 
                        movq            TestRam,mm2
01063 
#endif
01064 
                        pmullw          mm6,mm2
01065 
01066                         movq        mm7, MMXTab [ebx*8]
01067                         paddusw         mm5,mm6
01068 
#ifdef Test_mode
01069 
                        movq            TestRam,mm7
01070 
#endif
01071 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01072                         mov                     ebx, ako2
01073                         psrlw       mm1,8
01074 
#ifdef Test_mode
01075 
                        movq            TestRam,mm1
01076 
#endif
01077 
                        pmullw          mm7,mm1
01078                         paddusw         mm5,mm7
01079 
#ifdef Test_mode
01080 
                        movq            TestRam,mm5
01081 
#endif
01082 
01083 
01084                         xor                     eax,eax
01085                         psrlw           mm5,
LH_DATA_SHR
01086                         movq            ak,mm5
01087 
01088                         mov                     ax,ak
01089                         mov                     esi,My_OutputLut
01090                         mov                     al,
BYTE PTR[eax+esi]
01091                         mov                     edi,output0
01092                         mov                     [edi], al
01093                         mov                     ax,ak+2
01094                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
01095                         mov                     edi,output1
01096                         mov                     [edi], al
01097                         mov                     ax,ak+4
01098                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
01099                         mov                     edi,output2
01100                         mov                     [edi], al
01101 
                        #if LH_DATA_OUT_COUNT_4
01102 
                        mov                     ax,ak+6
01103                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
01104                         mov                     edi,output3
01105                         mov                     [edi], al
01106 
                        #endif
01107 
                        
01108 
01109          }
01110 
                                                        #endif
01111 
                                                }       
01112                             }
01113                             
else
01114                             {                                                           
01115                                 
if( ein_regC >= ein_regK )
01116                                 {                                 
01117                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regM;
01118                                                         ako1 = ein_regM - ein_regY;
01119                                                         ako2 = ein_regY - ein_regC;                                                 
01120                                                         ako3 = ein_regC - ein_regK;
01121 
                                                        #if LH_LUT_DATA_SIZE_16
01122 
                                                        #if LH_DATA_OUT_SIZE_16
01123 
                                        
01124                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
01125                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01126                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01127                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01128                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
01129                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01130                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01131                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01132                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
01133                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01134         
01135                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
01136                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01137                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01138                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01139                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
01140                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01141                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01142                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01143                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
01144                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01145         
01146                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
01147                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01148                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01149                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01150                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
01151                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01152                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01153                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01154                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
01155                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01156         
01157 
                                                        #if LH_DATA_OUT_COUNT_4
01158 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
01159                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01160                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01161                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01162                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
01163                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01164                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01165                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01166                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
01167                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01168 
                                                        #endif
01169 
                                                        
01170 
                                                        #else
01171 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
01172                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01173                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01174                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01175                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01176                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
01177                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01178                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01179                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01180                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01181                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
01182                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01183                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01184                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01185                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01186 
                                                        #if LH_DATA_OUT_COUNT_4
01187 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
01188                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01189                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01190                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01191                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01192 
                                                        #endif
01193 
                                                        #endif
01194 
                                                        
01195 
                                                        #else
01196 
     __asm { 
01197             mov         eax, paNewVal0
01198 
01199                         mov                     ebx, ako0
01200             movq        mm5, MMXTab [ebx*8]
01201 
#ifdef Test_mode
01202 
                        movq            TestRam,mm5
01203 
#endif
01204 
                        punpcklbw       mm1,[eax] 
01205                         mov                     ebx, ako1
01206                         psrlw       mm1,8
01207 
#ifdef Test_mode
01208 
                        movq            TestRam,mm1
01209 
#endif
01210 
01211                         pmullw          mm5,mm1
01212             movq        mm6, MMXTab [ebx*8]
01213 
#ifdef Test_mode
01214 
                        movq            TestRam,mm6
01215 
#endif
01216 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
01217                         mov                     ebx, ako2
01218                         psrlw       mm2,8
01219 
#ifdef Test_mode
01220 
                        movq            TestRam,mm2
01221 
#endif
01222 
                        pmullw          mm6,mm2
01223 
01224                         movq        mm7, MMXTab [ebx*8]
01225                         paddusw         mm5,mm6
01226 
#ifdef Test_mode
01227 
                        movq            TestRam,mm7
01228 
#endif
01229 
                        punpcklbw   mm1,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
01230                         mov                     ebx, ako3
01231                         psrlw       mm1,8
01232 
#ifdef Test_mode
01233 
                        movq            TestRam,mm1
01234 
#endif
01235 
                        pmullw          mm7,mm1
01236 
01237                         movq        mm6, MMXTab [ebx*8]
01238                         paddusw         mm5,mm7
01239 
#ifdef Test_mode
01240 
                        movq            TestRam,mm6
01241 
#endif
01242 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
01243                         mov                     ebx, ein_regK
01244                         psrlw       mm2,8
01245 
#ifdef Test_mode
01246 
                        movq            TestRam,mm2
01247 
#endif
01248 
                        pmullw          mm6,mm2
01249 
01250                         movq        mm7, MMXTab [ebx*8]
01251                         paddusw         mm5,mm6
01252 
#ifdef Test_mode
01253 
                        movq            TestRam,mm7
01254 
#endif
01255 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01256                         mov                     ebx, ako2
01257                         psrlw       mm1,8
01258 
#ifdef Test_mode
01259 
                        movq            TestRam,mm1
01260 
#endif
01261 
                        pmullw          mm7,mm1
01262                         paddusw         mm5,mm7
01263 
#ifdef Test_mode
01264 
                        movq            TestRam,mm5
01265 
#endif
01266 
01267 
01268                         xor                     eax,eax
01269                         psrlw           mm5,
LH_DATA_SHR
01270                         movq            ak,mm5
01271 
01272                         mov                     ax,ak
01273                         mov                     esi,My_OutputLut
01274                         mov                     al,
BYTE PTR[eax+esi]
01275                         mov                     edi,output0
01276                         mov                     [edi], al
01277                         mov                     ax,ak+2
01278                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
01279                         mov                     edi,output1
01280                         mov                     [edi], al
01281                         mov                     ax,ak+4
01282                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
01283                         mov                     edi,output2
01284                         mov                     [edi], al
01285 
                        #if LH_DATA_OUT_COUNT_4
01286 
                        mov                     ax,ak+6
01287                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
01288                         mov                     edi,output3
01289                         mov                     [edi], al
01290 
                        #endif
01291 
                        
01292 
01293          }
01294 
                                                        #endif
01295 
                                                }
01296                                                 
else if(ein_regY >= ein_regK )  
01297                                                 {               
01298                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regM;
01299                                                         ako1 = ein_regM - ein_regY;
01300                                                         ako2 = ein_regY - ein_regK;
01301                                                         ako3 = ein_regK - ein_regC;
01302 
                                                        #if LH_LUT_DATA_SIZE_16
01303 
                                                        #if LH_DATA_OUT_SIZE_16
01304 
                                        
01305                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
01306                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01307                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01308                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
01309                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
01310                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01311                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01312                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01313                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
01314                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01315         
01316                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
01317                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01318                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01319                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
01320                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
01321                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01322                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01323                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01324                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
01325                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01326         
01327                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
01328                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01329                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01330                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01331                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
01332                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01333                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01334                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01335                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
01336                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01337         
01338 
                                                        #if LH_DATA_OUT_COUNT_4
01339 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
01340                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01341                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01342                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01343                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
01344                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01345                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01346                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01347                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
01348                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01349 
                                                        #endif
01350 
                                                        
01351 
                                                        #else
01352 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
01353                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01354                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01355                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
01356                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01357                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
01358                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01359                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01360                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
01361                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01362                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
01363                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01364                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01365                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01366                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01367 
                                                        #if LH_DATA_OUT_COUNT_4
01368 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
01369                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01370                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01371                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01372                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01373 
                                                        #endif
01374 
                                                        #endif
01375 
                                                        
01376 
                                                        #else
01377 
     __asm { 
01378             mov         eax, paNewVal0
01379 
01380                         mov                     ebx, ako0
01381             movq        mm5, MMXTab [ebx*8]
01382 
#ifdef Test_mode
01383 
                        movq            TestRam,mm5
01384 
#endif
01385 
                        punpcklbw       mm1,[eax] 
01386                         mov                     ebx, ako1
01387                         psrlw       mm1,8
01388 
#ifdef Test_mode
01389 
                        movq            TestRam,mm1
01390 
#endif
01391 
01392                         pmullw          mm5,mm1
01393             movq        mm6, MMXTab [ebx*8]
01394 
#ifdef Test_mode
01395 
                        movq            TestRam,mm6
01396 
#endif
01397 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
01398                         mov                     ebx, ako2
01399                         psrlw       mm2,8
01400 
#ifdef Test_mode
01401 
                        movq            TestRam,mm2
01402 
#endif
01403 
                        pmullw          mm6,mm2
01404 
01405                         movq        mm7, MMXTab [ebx*8]
01406                         paddusw         mm5,mm6
01407 
#ifdef Test_mode
01408 
                        movq            TestRam,mm7
01409 
#endif
01410 
                        punpcklbw   mm1,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
01411                         mov                     ebx, ako3
01412                         psrlw       mm1,8
01413 
#ifdef Test_mode
01414 
                        movq            TestRam,mm1
01415 
#endif
01416 
                        pmullw          mm7,mm1
01417 
01418                         movq        mm6, MMXTab [ebx*8]
01419                         paddusw         mm5,mm7
01420 
#ifdef Test_mode
01421 
                        movq            TestRam,mm6
01422 
#endif
01423 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01424                         mov                     ebx, ein_regC
01425                         psrlw       mm2,8
01426 
#ifdef Test_mode
01427 
                        movq            TestRam,mm2
01428 
#endif
01429 
                        pmullw          mm6,mm2
01430 
01431                         movq        mm7, MMXTab [ebx*8]
01432                         paddusw         mm5,mm6
01433 
#ifdef Test_mode
01434 
                        movq            TestRam,mm7
01435 
#endif
01436 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01437                         mov                     ebx, ako2
01438                         psrlw       mm1,8
01439 
#ifdef Test_mode
01440 
                        movq            TestRam,mm1
01441 
#endif
01442 
                        pmullw          mm7,mm1
01443                         paddusw         mm5,mm7
01444 
#ifdef Test_mode
01445 
                        movq            TestRam,mm5
01446 
#endif
01447 
01448 
01449                         xor                     eax,eax
01450                         psrlw           mm5,
LH_DATA_SHR
01451                         movq            ak,mm5
01452 
01453                         mov                     ax,ak
01454                         mov                     esi,My_OutputLut
01455                         mov                     al,
BYTE PTR[eax+esi]
01456                         mov                     edi,output0
01457                         mov                     [edi], al
01458                         mov                     ax,ak+2
01459                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
01460                         mov                     edi,output1
01461                         mov                     [edi], al
01462                         mov                     ax,ak+4
01463                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
01464                         mov                     edi,output2
01465                         mov                     [edi], al
01466 
                        #if LH_DATA_OUT_COUNT_4
01467 
                        mov                     ax,ak+6
01468                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
01469                         mov                     edi,output3
01470                         mov                     [edi], al
01471 
                        #endif
01472 
                        
01473 
01474          }
01475 
                                                        #endif
01476 
                                                }
01477                                                 
else if(ein_regM >= ein_regK )  
01478                                                 {               
01479                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regM;
01480                                                         ako1 = ein_regM - ein_regK;
01481                                                         ako2 = ein_regK - ein_regY;
01482                                                         ako3 = ein_regY - ein_regC;
01483 
                                                        #if LH_LUT_DATA_SIZE_16
01484 
                                                        #if LH_DATA_OUT_SIZE_16
01485 
                                        
01486                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
01487                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01488                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
01489                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
01490                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
01491                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01492                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01493                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01494                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
01495                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01496         
01497                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
01498                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01499                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
01500                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
01501                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
01502                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01503                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01504                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01505                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
01506                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01507         
01508                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
01509                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01510                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01511                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01512                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
01513                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01514                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01515                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01516                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
01517                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01518         
01519 
                                                        #if LH_DATA_OUT_COUNT_4
01520 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
01521                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01522                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01523                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01524                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
01525                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01526                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01527                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01528                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
01529                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01530 
                                                        #endif
01531 
                                                        
01532 
                                                        #else
01533 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
01534                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01535                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
01536                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
01537                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01538                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
01539                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01540                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
01541                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
01542                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01543                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
01544                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01545                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01546                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01547                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01548 
                                                        #if LH_DATA_OUT_COUNT_4
01549 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
01550                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01551                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01552                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01553                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01554 
                                                        #endif
01555 
                                                        #endif
01556 
                                                        
01557 
                                                        #else
01558 
     __asm { 
01559             mov         eax, paNewVal0
01560 
01561                         mov                     ebx, ako0
01562             movq        mm5, MMXTab [ebx*8]
01563 
#ifdef Test_mode
01564 
                        movq            TestRam,mm5
01565 
#endif
01566 
                        punpcklbw       mm1,[eax] 
01567                         mov                     ebx, ako1
01568                         psrlw       mm1,8
01569 
#ifdef Test_mode
01570 
                        movq            TestRam,mm1
01571 
#endif
01572 
01573                         pmullw          mm5,mm1
01574             movq        mm6, MMXTab [ebx*8]
01575 
#ifdef Test_mode
01576 
                        movq            TestRam,mm6
01577 
#endif
01578 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
01579                         mov                     ebx, ako2
01580                         psrlw       mm2,8
01581 
#ifdef Test_mode
01582 
                        movq            TestRam,mm2
01583 
#endif
01584 
                        pmullw          mm6,mm2
01585 
01586                         movq        mm7, MMXTab [ebx*8]
01587                         paddusw         mm5,mm6
01588 
#ifdef Test_mode
01589 
                        movq            TestRam,mm7
01590 
#endif
01591 
                        punpcklbw   mm1,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01592                         mov                     ebx, ako3
01593                         psrlw       mm1,8
01594 
#ifdef Test_mode
01595 
                        movq            TestRam,mm1
01596 
#endif
01597 
                        pmullw          mm7,mm1
01598 
01599                         movq        mm6, MMXTab [ebx*8]
01600                         paddusw         mm5,mm7
01601 
#ifdef Test_mode
01602 
                        movq            TestRam,mm6
01603 
#endif
01604 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01605                         mov                     ebx, ein_regC
01606                         psrlw       mm2,8
01607 
#ifdef Test_mode
01608 
                        movq            TestRam,mm2
01609 
#endif
01610 
                        pmullw          mm6,mm2
01611 
01612                         movq        mm7, MMXTab [ebx*8]
01613                         paddusw         mm5,mm6
01614 
#ifdef Test_mode
01615 
                        movq            TestRam,mm7
01616 
#endif
01617 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01618                         mov                     ebx, ako2
01619                         psrlw       mm1,8
01620 
#ifdef Test_mode
01621 
                        movq            TestRam,mm1
01622 
#endif
01623 
                        pmullw          mm7,mm1
01624                         paddusw         mm5,mm7
01625 
#ifdef Test_mode
01626 
                        movq            TestRam,mm5
01627 
#endif
01628 
01629 
01630                         xor                     eax,eax
01631                         psrlw           mm5,
LH_DATA_SHR
01632                         movq            ak,mm5
01633 
01634                         mov                     ax,ak
01635                         mov                     esi,My_OutputLut
01636                         mov                     al,
BYTE PTR[eax+esi]
01637                         mov                     edi,output0
01638                         mov                     [edi], al
01639                         mov                     ax,ak+2
01640                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
01641                         mov                     edi,output1
01642                         mov                     [edi], al
01643                         mov                     ax,ak+4
01644                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
01645                         mov                     edi,output2
01646                         mov                     [edi], al
01647 
                        #if LH_DATA_OUT_COUNT_4
01648 
                        mov                     ax,ak+6
01649                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
01650                         mov                     edi,output3
01651                         mov                     [edi], al
01652 
                        #endif
01653 
                        
01654 
01655          }
01656 
                                                        #endif
01657 
                                                }
01658                                                 
else
01659                                                 {                                                       
01660                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regK;
01661                                                         ako1 = ein_regK - ein_regM;
01662                                                         ako2 = ein_regM - ein_regY;
01663                                                         ako3 = ein_regY - ein_regC;
01664 
                                                        #if LH_LUT_DATA_SIZE_16
01665 
                                                        #if LH_DATA_OUT_SIZE_16
01666 
                                        
01667                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
01668                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
01669                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
01670                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
01671                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
01672                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01673                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01674                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01675                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
01676                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01677         
01678                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
01679                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
01680                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
01681                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
01682                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
01683                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01684                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01685                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01686                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
01687                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01688         
01689                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
01690                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01691                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01692                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01693                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
01694                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01695                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01696                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01697                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
01698                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01699         
01700 
                                                        #if LH_DATA_OUT_COUNT_4
01701 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
01702                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01703                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01704                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01705                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
01706                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01707                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01708                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01709                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
01710                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01711 
                                                        #endif
01712 
                                                        
01713 
                                                        #else
01714 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
01715                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
01716                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
01717                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
01718                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01719                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
01720                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
01721                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
01722                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
01723                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01724                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
01725                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01726                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01727                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
01728                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01729 
                                                        #if LH_DATA_OUT_COUNT_4
01730 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
01731                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01732                                                                                                         ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01733                                                                                                         ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
01734                                                                                                 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01735 
                                                        #endif
01736 
                                                        #endif
01737 
                                                        
01738 
                                                        #else
01739 
     __asm { 
01740             mov         eax, paNewVal0
01741 
01742                         mov                     ebx, ako0
01743             movq        mm5, MMXTab [ebx*8]
01744 
#ifdef Test_mode
01745 
                        movq            TestRam,mm5
01746 
#endif
01747 
                        punpcklbw       mm1,[eax] 
01748                         mov                     ebx, ako1
01749                         psrlw       mm1,8
01750 
#ifdef Test_mode
01751 
                        movq            TestRam,mm1
01752 
#endif
01753 
01754                         pmullw          mm5,mm1
01755             movq        mm6, MMXTab [ebx*8]
01756 
#ifdef Test_mode
01757 
                        movq            TestRam,mm6
01758 
#endif
01759 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01760                         mov                     ebx, ako2
01761                         psrlw       mm2,8
01762 
#ifdef Test_mode
01763 
                        movq            TestRam,mm2
01764 
#endif
01765 
                        pmullw          mm6,mm2
01766 
01767                         movq        mm7, MMXTab [ebx*8]
01768                         paddusw         mm5,mm6
01769 
#ifdef Test_mode
01770 
                        movq            TestRam,mm7
01771 
#endif
01772 
                        punpcklbw   mm1,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01773                         mov                     ebx, ako3
01774                         psrlw       mm1,8
01775 
#ifdef Test_mode
01776 
                        movq            TestRam,mm1
01777 
#endif
01778 
                        pmullw          mm7,mm1
01779 
01780                         movq        mm6, MMXTab [ebx*8]
01781                         paddusw         mm5,mm7
01782 
#ifdef Test_mode
01783 
                        movq            TestRam,mm6
01784 
#endif
01785 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01786                         mov                     ebx, ein_regC
01787                         psrlw       mm2,8
01788 
#ifdef Test_mode
01789 
                        movq            TestRam,mm2
01790 
#endif
01791 
                        pmullw          mm6,mm2
01792 
01793                         movq        mm7, MMXTab [ebx*8]
01794                         paddusw         mm5,mm6
01795 
#ifdef Test_mode
01796 
                        movq            TestRam,mm7
01797 
#endif
01798 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01799                         mov                     ebx, ako2
01800                         psrlw       mm1,8
01801 
#ifdef Test_mode
01802 
                        movq            TestRam,mm1
01803 
#endif
01804 
                        pmullw          mm7,mm1
01805                         paddusw         mm5,mm7
01806 
#ifdef Test_mode
01807 
                        movq            TestRam,mm5
01808 
#endif
01809 
01810 
01811                         xor                     eax,eax
01812                         psrlw           mm5,
LH_DATA_SHR
01813                         movq            ak,mm5
01814 
01815                         mov                     ax,ak
01816                         mov                     esi,My_OutputLut
01817                         mov                     al,
BYTE PTR[eax+esi]
01818                         mov                     edi,output0
01819                         mov                     [edi], al
01820                         mov                     ax,ak+2
01821                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
01822                         mov                     edi,output1
01823                         mov                     [edi], al
01824                         mov                     ax,ak+4
01825                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
01826                         mov                     edi,output2
01827                         mov                     [edi], al
01828 
                        #if LH_DATA_OUT_COUNT_4
01829 
                        mov                     ax,ak+6
01830                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
01831                         mov                     edi,output3
01832                         mov                     [edi], al
01833 
                        #endif
01834 
                        
01835 
01836          }
01837 
                                                        #endif
01838 
                                }
01839                                         }
01840                     }
01841                     
else
01842                     {                                                                   
01843                         
if( ein_regM >= ein_regK )
01844                         {       
01845                                                 ako0 = 
LH_ADR_BEREICH_SEL - ein_regY;
01846                                                 ako1 = ein_regY - ein_regC;
01847                                                 ako2 = ein_regC - ein_regM;
01848                                                 ako3 = ein_regM - ein_regK;
01849 
                                                        #if LH_LUT_DATA_SIZE_16
01850 
                                                        #if LH_DATA_OUT_SIZE_16
01851 
                                        
01852                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
01853                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01854                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01855                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01856                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
01857                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01858                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01859                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01860                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
01861                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01862         
01863                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
01864                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01865                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01866                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01867                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
01868                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01869                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01870                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01871                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
01872                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01873         
01874                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
01875                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01876                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01877                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01878                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
01879                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01880                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01881                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01882                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
01883                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01884         
01885 
                                                        #if LH_DATA_OUT_COUNT_4
01886 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
01887                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01888                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01889                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01890                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
01891                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
01892                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
01893                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01894                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
01895                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01896 
                                                        #endif
01897 
                                                        
01898 
                                                        #else
01899 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
01900                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01901                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01902                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
01903                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01904                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
01905                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01906                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01907                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
01908                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01909                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
01910                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01911                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01912                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
01913                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01914 
                                                        #if LH_DATA_OUT_COUNT_4
01915 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
01916                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01917                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01918                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
01919                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01920 
                                                        #endif
01921 
                                                        #endif
01922 
                                                        
01923 
                                                        #else
01924 
     __asm { 
01925             mov         eax, paNewVal0
01926 
01927                         mov                     ebx, ako0
01928             movq        mm5, MMXTab [ebx*8]
01929 
#ifdef Test_mode
01930 
                        movq            TestRam,mm5
01931 
#endif
01932 
                        punpcklbw       mm1,[eax] 
01933                         mov                     ebx, ako1
01934                         psrlw       mm1,8
01935 
#ifdef Test_mode
01936 
                        movq            TestRam,mm1
01937 
#endif
01938 
01939                         pmullw          mm5,mm1
01940             movq        mm6, MMXTab [ebx*8]
01941 
#ifdef Test_mode
01942 
                        movq            TestRam,mm6
01943 
#endif
01944 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
01945                         mov                     ebx, ako2
01946                         psrlw       mm2,8
01947 
#ifdef Test_mode
01948 
                        movq            TestRam,mm2
01949 
#endif
01950 
                        pmullw          mm6,mm2
01951 
01952                         movq        mm7, MMXTab [ebx*8]
01953                         paddusw         mm5,mm6
01954 
#ifdef Test_mode
01955 
                        movq            TestRam,mm7
01956 
#endif
01957 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
01958                         mov                     ebx, ako3
01959                         psrlw       mm1,8
01960 
#ifdef Test_mode
01961 
                        movq            TestRam,mm1
01962 
#endif
01963 
                        pmullw          mm7,mm1
01964 
01965                         movq        mm6, MMXTab [ebx*8]
01966                         paddusw         mm5,mm7
01967 
#ifdef Test_mode
01968 
                        movq            TestRam,mm6
01969 
#endif
01970 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
01971                         mov                     ebx, ein_regK
01972                         psrlw       mm2,8
01973 
#ifdef Test_mode
01974 
                        movq            TestRam,mm2
01975 
#endif
01976 
                        pmullw          mm6,mm2
01977 
01978                         movq        mm7, MMXTab [ebx*8]
01979                         paddusw         mm5,mm6
01980 
#ifdef Test_mode
01981 
                        movq            TestRam,mm7
01982 
#endif
01983 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
01984                         mov                     ebx, ako2
01985                         psrlw       mm1,8
01986 
#ifdef Test_mode
01987 
                        movq            TestRam,mm1
01988 
#endif
01989 
                        pmullw          mm7,mm1
01990                         paddusw         mm5,mm7
01991 
#ifdef Test_mode
01992 
                        movq            TestRam,mm5
01993 
#endif
01994 
01995 
01996                         xor                     eax,eax
01997                         psrlw           mm5,
LH_DATA_SHR
01998                         movq            ak,mm5
01999 
02000                         mov                     ax,ak
02001                         mov                     esi,My_OutputLut
02002                         mov                     al,
BYTE PTR[eax+esi]
02003                         mov                     edi,output0
02004                         mov                     [edi], al
02005                         mov                     ax,ak+2
02006                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
02007                         mov                     edi,output1
02008                         mov                     [edi], al
02009                         mov                     ax,ak+4
02010                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
02011                         mov                     edi,output2
02012                         mov                     [edi], al
02013 
                        #if LH_DATA_OUT_COUNT_4
02014 
                        mov                     ax,ak+6
02015                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
02016                         mov                     edi,output3
02017                         mov                     [edi], al
02018 
                        #endif
02019 
                        
02020 
02021          }
02022 
                                                        #endif
02023 
                                        }
02024                                         
else if(ein_regC >= ein_regK )  
02025                                         {               
02026                                                 ako0 = 
LH_ADR_BEREICH_SEL - ein_regY;
02027                                                 ako1 = ein_regY - ein_regC;
02028                                                 ako2 = ein_regC - ein_regK;
02029                                                 ako3 = ein_regK - ein_regM;
02030 
                                                        #if LH_LUT_DATA_SIZE_16
02031 
                                                        #if LH_DATA_OUT_SIZE_16
02032 
                                        
02033                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
02034                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02035                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02036                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02037                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
02038                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02039                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02040                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02041                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
02042                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02043         
02044                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
02045                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02046                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02047                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02048                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
02049                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02050                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02051                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02052                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
02053                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02054         
02055                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
02056                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02057                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02058                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02059                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
02060                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02061                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02062                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02063                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
02064                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02065         
02066 
                                                        #if LH_DATA_OUT_COUNT_4
02067 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
02068                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02069                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02070                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02071                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
02072                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02073                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02074                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02075                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
02076                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02077 
                                                        #endif
02078 
                                                        
02079 
                                                        #else
02080 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
02081                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02082                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02083                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02084                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02085                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
02086                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02087                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02088                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02089                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02090                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
02091                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02092                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02093                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02094                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02095 
                                                        #if LH_DATA_OUT_COUNT_4
02096 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
02097                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02098                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02099                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02100                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02101 
                                                        #endif
02102 
                                                        #endif
02103 
                                                        
02104 
                                                        #else
02105 
     __asm { 
02106             mov         eax, paNewVal0
02107 
02108                         mov                     ebx, ako0
02109             movq        mm5, MMXTab [ebx*8]
02110 
#ifdef Test_mode
02111 
                        movq            TestRam,mm5
02112 
#endif
02113 
                        punpcklbw       mm1,[eax] 
02114                         mov                     ebx, ako1
02115                         psrlw       mm1,8
02116 
#ifdef Test_mode
02117 
                        movq            TestRam,mm1
02118 
#endif
02119 
02120                         pmullw          mm5,mm1
02121             movq        mm6, MMXTab [ebx*8]
02122 
#ifdef Test_mode
02123 
                        movq            TestRam,mm6
02124 
#endif
02125 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
02126                         mov                     ebx, ako2
02127                         psrlw       mm2,8
02128 
#ifdef Test_mode
02129 
                        movq            TestRam,mm2
02130 
#endif
02131 
                        pmullw          mm6,mm2
02132 
02133                         movq        mm7, MMXTab [ebx*8]
02134                         paddusw         mm5,mm6
02135 
#ifdef Test_mode
02136 
                        movq            TestRam,mm7
02137 
#endif
02138 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
02139                         mov                     ebx, ako3
02140                         psrlw       mm1,8
02141 
#ifdef Test_mode
02142 
                        movq            TestRam,mm1
02143 
#endif
02144 
                        pmullw          mm7,mm1
02145 
02146                         movq        mm6, MMXTab [ebx*8]
02147                         paddusw         mm5,mm7
02148 
#ifdef Test_mode
02149 
                        movq            TestRam,mm6
02150 
#endif
02151 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
02152                         mov                     ebx, ein_regM
02153                         psrlw       mm2,8
02154 
#ifdef Test_mode
02155 
                        movq            TestRam,mm2
02156 
#endif
02157 
                        pmullw          mm6,mm2
02158 
02159                         movq        mm7, MMXTab [ebx*8]
02160                         paddusw         mm5,mm6
02161 
#ifdef Test_mode
02162 
                        movq            TestRam,mm7
02163 
#endif
02164 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
02165                         mov                     ebx, ako2
02166                         psrlw       mm1,8
02167 
#ifdef Test_mode
02168 
                        movq            TestRam,mm1
02169 
#endif
02170 
                        pmullw          mm7,mm1
02171                         paddusw         mm5,mm7
02172 
#ifdef Test_mode
02173 
                        movq            TestRam,mm5
02174 
#endif
02175 
02176 
02177                         xor                     eax,eax
02178                         psrlw           mm5,
LH_DATA_SHR
02179                         movq            ak,mm5
02180 
02181                         mov                     ax,ak
02182                         mov                     esi,My_OutputLut
02183                         mov                     al,
BYTE PTR[eax+esi]
02184                         mov                     edi,output0
02185                         mov                     [edi], al
02186                         mov                     ax,ak+2
02187                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
02188                         mov                     edi,output1
02189                         mov                     [edi], al
02190                         mov                     ax,ak+4
02191                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
02192                         mov                     edi,output2
02193                         mov                     [edi], al
02194 
                        #if LH_DATA_OUT_COUNT_4
02195 
                        mov                     ax,ak+6
02196                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
02197                         mov                     edi,output3
02198                         mov                     [edi], al
02199 
                        #endif
02200 
                        
02201 
02202          }
02203 
                                                        #endif
02204 
                                        }
02205                                         
else if(ein_regY >= ein_regK )  
02206                                         {               
02207                                                 ako0 = 
LH_ADR_BEREICH_SEL - ein_regY;
02208                                                 ako1 = ein_regY - ein_regK;
02209                                                 ako2 = ein_regK - ein_regC;
02210                                                 ako3 = ein_regC - ein_regM;
02211 
                                                        #if LH_LUT_DATA_SIZE_16
02212 
                                                        #if LH_DATA_OUT_SIZE_16
02213 
                                        
02214                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
02215                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02216                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02217                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02218                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
02219                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02220                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02221                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02222                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
02223                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02224         
02225                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
02226                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02227                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02228                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02229                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
02230                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02231                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02232                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02233                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
02234                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02235         
02236                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
02237                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02238                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02239                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02240                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
02241                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02242                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02243                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02244                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
02245                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02246         
02247 
                                                        #if LH_DATA_OUT_COUNT_4
02248 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
02249                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02250                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02251                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02252                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
02253                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02254                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02255                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02256                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
02257                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02258 
                                                        #endif
02259 
                                                        
02260 
                                                        #else
02261 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
02262                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02263                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02264                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02265                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02266                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
02267                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02268                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02269                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02270                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02271                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
02272                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02273                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02274                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02275                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02276 
                                                        #if LH_DATA_OUT_COUNT_4
02277 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
02278                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02279                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02280                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02281                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02282 
                                                        #endif
02283 
                                                        #endif
02284 
                                                        
02285 
                                                        #else
02286 
     __asm { 
02287             mov         eax, paNewVal0
02288 
02289                         mov                     ebx, ako0
02290             movq        mm5, MMXTab [ebx*8]
02291 
#ifdef Test_mode
02292 
                        movq            TestRam,mm5
02293 
#endif
02294 
                        punpcklbw       mm1,[eax] 
02295                         mov                     ebx, ako1
02296                         psrlw       mm1,8
02297 
#ifdef Test_mode
02298 
                        movq            TestRam,mm1
02299 
#endif
02300 
02301                         pmullw          mm5,mm1
02302             movq        mm6, MMXTab [ebx*8]
02303 
#ifdef Test_mode
02304 
                        movq            TestRam,mm6
02305 
#endif
02306 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
02307                         mov                     ebx, ako2
02308                         psrlw       mm2,8
02309 
#ifdef Test_mode
02310 
                        movq            TestRam,mm2
02311 
#endif
02312 
                        pmullw          mm6,mm2
02313 
02314                         movq        mm7, MMXTab [ebx*8]
02315                         paddusw         mm5,mm6
02316 
#ifdef Test_mode
02317 
                        movq            TestRam,mm7
02318 
#endif
02319 
                        punpcklbw   mm1,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
02320                         mov                     ebx, ako3
02321                         psrlw       mm1,8
02322 
#ifdef Test_mode
02323 
                        movq            TestRam,mm1
02324 
#endif
02325 
                        pmullw          mm7,mm1
02326 
02327                         movq        mm6, MMXTab [ebx*8]
02328                         paddusw         mm5,mm7
02329 
#ifdef Test_mode
02330 
                        movq            TestRam,mm6
02331 
#endif
02332 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
02333                         mov                     ebx, ein_regM
02334                         psrlw       mm2,8
02335 
#ifdef Test_mode
02336 
                        movq            TestRam,mm2
02337 
#endif
02338 
                        pmullw          mm6,mm2
02339 
02340                         movq        mm7, MMXTab [ebx*8]
02341                         paddusw         mm5,mm6
02342 
#ifdef Test_mode
02343 
                        movq            TestRam,mm7
02344 
#endif
02345 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
02346                         mov                     ebx, ako2
02347                         psrlw       mm1,8
02348 
#ifdef Test_mode
02349 
                        movq            TestRam,mm1
02350 
#endif
02351 
                        pmullw          mm7,mm1
02352                         paddusw         mm5,mm7
02353 
#ifdef Test_mode
02354 
                        movq            TestRam,mm5
02355 
#endif
02356 
02357 
02358                         xor                     eax,eax
02359                         psrlw           mm5,
LH_DATA_SHR
02360                         movq            ak,mm5
02361 
02362                         mov                     ax,ak
02363                         mov                     esi,My_OutputLut
02364                         mov                     al,
BYTE PTR[eax+esi]
02365                         mov                     edi,output0
02366                         mov                     [edi], al
02367                         mov                     ax,ak+2
02368                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
02369                         mov                     edi,output1
02370                         mov                     [edi], al
02371                         mov                     ax,ak+4
02372                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
02373                         mov                     edi,output2
02374                         mov                     [edi], al
02375 
                        #if LH_DATA_OUT_COUNT_4
02376 
                        mov                     ax,ak+6
02377                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
02378                         mov                     edi,output3
02379                         mov                     [edi], al
02380 
                        #endif
02381 
                        
02382 
02383          }
02384 
                                                        #endif
02385 
                                        }
02386                                         
else
02387                                         {                                                       
02388                                                 ako0 = 
LH_ADR_BEREICH_SEL - ein_regK;
02389                                                 ako1 = ein_regK - ein_regY;
02390                                                 ako2 = ein_regY - ein_regC;
02391                                                 ako3 = ein_regC - ein_regM;
02392 
                                                        #if LH_LUT_DATA_SIZE_16
02393 
                                                        #if LH_DATA_OUT_SIZE_16
02394 
                                        
02395                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
02396                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02397                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02398                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02399                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
02400                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02401                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02402                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02403                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
02404                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02405         
02406                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
02407                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02408                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02409                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02410                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
02411                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02412                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02413                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02414                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
02415                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02416         
02417                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
02418                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02419                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02420                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02421                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
02422                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02423                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02424                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02425                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
02426                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02427         
02428 
                                                        #if LH_DATA_OUT_COUNT_4
02429 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
02430                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02431                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02432                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02433                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
02434                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02435                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02436                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02437                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
02438                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02439 
                                                        #endif
02440 
                                                        
02441 
                                                        #else
02442 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
02443                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02444                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02445                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02446                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02447                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
02448                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02449                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02450                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02451                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02452                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
02453                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02454                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02455                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02456                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02457 
                                                        #if LH_DATA_OUT_COUNT_4
02458 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
02459                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02460                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02461                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02462                                                                                         ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02463 
                                                        #endif
02464 
                                                        #endif
02465 
                                                        
02466 
                                                        #else
02467 
     __asm { 
02468             mov         eax, paNewVal0
02469 
02470                         mov                     ebx, ako0
02471             movq        mm5, MMXTab [ebx*8]
02472 
#ifdef Test_mode
02473 
                        movq            TestRam,mm5
02474 
#endif
02475 
                        punpcklbw       mm1,[eax] 
02476                         mov                     ebx, ako1
02477                         psrlw       mm1,8
02478 
#ifdef Test_mode
02479 
                        movq            TestRam,mm1
02480 
#endif
02481 
02482                         pmullw          mm5,mm1
02483             movq        mm6, MMXTab [ebx*8]
02484 
#ifdef Test_mode
02485 
                        movq            TestRam,mm6
02486 
#endif
02487 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
02488                         mov                     ebx, ako2
02489                         psrlw       mm2,8
02490 
#ifdef Test_mode
02491 
                        movq            TestRam,mm2
02492 
#endif
02493 
                        pmullw          mm6,mm2
02494 
02495                         movq        mm7, MMXTab [ebx*8]
02496                         paddusw         mm5,mm6
02497 
#ifdef Test_mode
02498 
                        movq            TestRam,mm7
02499 
#endif
02500 
                        punpcklbw   mm1,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
02501                         mov                     ebx, ako3
02502                         psrlw       mm1,8
02503 
#ifdef Test_mode
02504 
                        movq            TestRam,mm1
02505 
#endif
02506 
                        pmullw          mm7,mm1
02507 
02508                         movq        mm6, MMXTab [ebx*8]
02509                         paddusw         mm5,mm7
02510 
#ifdef Test_mode
02511 
                        movq            TestRam,mm6
02512 
#endif
02513 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
02514                         mov                     ebx, ein_regM
02515                         psrlw       mm2,8
02516 
#ifdef Test_mode
02517 
                        movq            TestRam,mm2
02518 
#endif
02519 
                        pmullw          mm6,mm2
02520 
02521                         movq        mm7, MMXTab [ebx*8]
02522                         paddusw         mm5,mm6
02523 
#ifdef Test_mode
02524 
                        movq            TestRam,mm7
02525 
#endif
02526 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
02527                         mov                     ebx, ako2
02528                         psrlw       mm1,8
02529 
#ifdef Test_mode
02530 
                        movq            TestRam,mm1
02531 
#endif
02532 
                        pmullw          mm7,mm1
02533                         paddusw         mm5,mm7
02534 
#ifdef Test_mode
02535 
                        movq            TestRam,mm5
02536 
#endif
02537 
02538 
02539                         xor                     eax,eax
02540                         psrlw           mm5,
LH_DATA_SHR
02541                         movq            ak,mm5
02542 
02543                         mov                     ax,ak
02544                         mov                     esi,My_OutputLut
02545                         mov                     al,
BYTE PTR[eax+esi]
02546                         mov                     edi,output0
02547                         mov                     [edi], al
02548                         mov                     ax,ak+2
02549                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
02550                         mov                     edi,output1
02551                         mov                     [edi], al
02552                         mov                     ax,ak+4
02553                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
02554                         mov                     edi,output2
02555                         mov                     [edi], al
02556 
                        #if LH_DATA_OUT_COUNT_4
02557 
                        mov                     ax,ak+6
02558                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
02559                         mov                     edi,output3
02560                         mov                     [edi], al
02561 
                        #endif
02562 
                        
02563 
02564          }
02565 
                                                        #endif
02566 
                        }
02567                         }
02568                         }
02569                 
else
02570                 {
02571                 
if( ein_regM >= ein_regC )
02572                 {
02573                                 
if( ein_regY >= ein_regK )              
02574                                 {       
02575                                                 ako0 = 
LH_ADR_BEREICH_SEL - ein_regM;
02576                                                 ako1 = ein_regM - ein_regC;
02577                                                 ako2 = ein_regC - ein_regY;
02578                                                 ako3 = ein_regY - ein_regK;
02579 
                                                        #if LH_LUT_DATA_SIZE_16
02580 
                                                        #if LH_DATA_OUT_SIZE_16
02581 
                                        
02582                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
02583                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02584                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02585                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02586                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
02587                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02588                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02589                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02590                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
02591                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02592         
02593                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
02594                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02595                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02596                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02597                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
02598                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02599                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02600                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02601                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
02602                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02603         
02604                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
02605                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02606                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02607                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02608                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
02609                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02610                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02611                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02612                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
02613                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02614         
02615 
                                                        #if LH_DATA_OUT_COUNT_4
02616 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
02617                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02618                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02619                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02620                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
02621                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02622                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02623                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02624                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
02625                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02626 
                                                        #endif
02627 
                                                        
02628 
                                                        #else
02629 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
02630                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02631                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02632                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02633                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02634                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
02635                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02636                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02637                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02638                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02639                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
02640                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02641                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02642                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02643                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02644 
                                                        #if LH_DATA_OUT_COUNT_4
02645 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
02646                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02647                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02648                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02649                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02650 
                                                        #endif
02651 
                                                        #endif
02652 
                                                        
02653 
                                                        #else
02654 
     __asm { 
02655             mov         eax, paNewVal0
02656 
02657                         mov                     ebx, ako0
02658             movq        mm5, MMXTab [ebx*8]
02659 
#ifdef Test_mode
02660 
                        movq            TestRam,mm5
02661 
#endif
02662 
                        punpcklbw       mm1,[eax] 
02663                         mov                     ebx, ako1
02664                         psrlw       mm1,8
02665 
#ifdef Test_mode
02666 
                        movq            TestRam,mm1
02667 
#endif
02668 
02669                         pmullw          mm5,mm1
02670             movq        mm6, MMXTab [ebx*8]
02671 
#ifdef Test_mode
02672 
                        movq            TestRam,mm6
02673 
#endif
02674 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
02675                         mov                     ebx, ako2
02676                         psrlw       mm2,8
02677 
#ifdef Test_mode
02678 
                        movq            TestRam,mm2
02679 
#endif
02680 
                        pmullw          mm6,mm2
02681 
02682                         movq        mm7, MMXTab [ebx*8]
02683                         paddusw         mm5,mm6
02684 
#ifdef Test_mode
02685 
                        movq            TestRam,mm7
02686 
#endif
02687 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
02688                         mov                     ebx, ako3
02689                         psrlw       mm1,8
02690 
#ifdef Test_mode
02691 
                        movq            TestRam,mm1
02692 
#endif
02693 
                        pmullw          mm7,mm1
02694 
02695                         movq        mm6, MMXTab [ebx*8]
02696                         paddusw         mm5,mm7
02697 
#ifdef Test_mode
02698 
                        movq            TestRam,mm6
02699 
#endif
02700 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
02701                         mov                     ebx, ein_regK
02702                         psrlw       mm2,8
02703 
#ifdef Test_mode
02704 
                        movq            TestRam,mm2
02705 
#endif
02706 
                        pmullw          mm6,mm2
02707 
02708                         movq        mm7, MMXTab [ebx*8]
02709                         paddusw         mm5,mm6
02710 
#ifdef Test_mode
02711 
                        movq            TestRam,mm7
02712 
#endif
02713 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
02714                         mov                     ebx, ako2
02715                         psrlw       mm1,8
02716 
#ifdef Test_mode
02717 
                        movq            TestRam,mm1
02718 
#endif
02719 
                        pmullw          mm7,mm1
02720                         paddusw         mm5,mm7
02721 
#ifdef Test_mode
02722 
                        movq            TestRam,mm5
02723 
#endif
02724 
02725 
02726                         xor                     eax,eax
02727                         psrlw           mm5,
LH_DATA_SHR
02728                         movq            ak,mm5
02729 
02730                         mov                     ax,ak
02731                         mov                     esi,My_OutputLut
02732                         mov                     al,
BYTE PTR[eax+esi]
02733                         mov                     edi,output0
02734                         mov                     [edi], al
02735                         mov                     ax,ak+2
02736                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
02737                         mov                     edi,output1
02738                         mov                     [edi], al
02739                         mov                     ax,ak+4
02740                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
02741                         mov                     edi,output2
02742                         mov                     [edi], al
02743 
                        #if LH_DATA_OUT_COUNT_4
02744 
                        mov                     ax,ak+6
02745                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
02746                         mov                     edi,output3
02747                         mov                     [edi], al
02748 
                        #endif
02749 
                        
02750 
02751          }
02752 
                                                        #endif
02753 
                                        }
02754                                         
else if(ein_regC >= ein_regK )  
02755                                         {               
02756                                                 ako0 = 
LH_ADR_BEREICH_SEL - ein_regM;
02757                                                 ako1 = ein_regM - ein_regC;
02758                                                 ako2 = ein_regC - ein_regK;
02759                                                 ako3 = ein_regK - ein_regY;
02760 
                                                        #if LH_LUT_DATA_SIZE_16
02761 
                                                        #if LH_DATA_OUT_SIZE_16
02762 
                                        
02763                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
02764                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02765                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02766                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02767                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
02768                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02769                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02770                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02771                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
02772                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02773         
02774                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
02775                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02776                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02777                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02778                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
02779                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02780                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02781                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02782                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
02783                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02784         
02785                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
02786                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02787                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02788                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02789                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
02790                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02791                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02792                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02793                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
02794                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02795         
02796 
                                                        #if LH_DATA_OUT_COUNT_4
02797 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
02798                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02799                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02800                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02801                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
02802                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02803                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02804                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02805                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
02806                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02807 
                                                        #endif
02808 
                                                        
02809 
                                                        #else
02810 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
02811                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02812                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02813                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02814                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02815                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
02816                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02817                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02818                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02819                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02820                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
02821                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02822                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02823                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02824                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02825 
                                                        #if LH_DATA_OUT_COUNT_4
02826 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
02827                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02828                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02829                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02830                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02831 
                                                        #endif
02832 
                                                        #endif
02833 
                                                        
02834 
                                                        #else
02835 
     __asm { 
02836             mov         eax, paNewVal0
02837 
02838                         mov                     ebx, ako0
02839             movq        mm5, MMXTab [ebx*8]
02840 
#ifdef Test_mode
02841 
                        movq            TestRam,mm5
02842 
#endif
02843 
                        punpcklbw       mm1,[eax] 
02844                         mov                     ebx, ako1
02845                         psrlw       mm1,8
02846 
#ifdef Test_mode
02847 
                        movq            TestRam,mm1
02848 
#endif
02849 
02850                         pmullw          mm5,mm1
02851             movq        mm6, MMXTab [ebx*8]
02852 
#ifdef Test_mode
02853 
                        movq            TestRam,mm6
02854 
#endif
02855 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
02856                         mov                     ebx, ako2
02857                         psrlw       mm2,8
02858 
#ifdef Test_mode
02859 
                        movq            TestRam,mm2
02860 
#endif
02861 
                        pmullw          mm6,mm2
02862 
02863                         movq        mm7, MMXTab [ebx*8]
02864                         paddusw         mm5,mm6
02865 
#ifdef Test_mode
02866 
                        movq            TestRam,mm7
02867 
#endif
02868 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
02869                         mov                     ebx, ako3
02870                         psrlw       mm1,8
02871 
#ifdef Test_mode
02872 
                        movq            TestRam,mm1
02873 
#endif
02874 
                        pmullw          mm7,mm1
02875 
02876                         movq        mm6, MMXTab [ebx*8]
02877                         paddusw         mm5,mm7
02878 
#ifdef Test_mode
02879 
                        movq            TestRam,mm6
02880 
#endif
02881 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
02882                         mov                     ebx, ein_regY
02883                         psrlw       mm2,8
02884 
#ifdef Test_mode
02885 
                        movq            TestRam,mm2
02886 
#endif
02887 
                        pmullw          mm6,mm2
02888 
02889                         movq        mm7, MMXTab [ebx*8]
02890                         paddusw         mm5,mm6
02891 
#ifdef Test_mode
02892 
                        movq            TestRam,mm7
02893 
#endif
02894 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
02895                         mov                     ebx, ako2
02896                         psrlw       mm1,8
02897 
#ifdef Test_mode
02898 
                        movq            TestRam,mm1
02899 
#endif
02900 
                        pmullw          mm7,mm1
02901                         paddusw         mm5,mm7
02902 
#ifdef Test_mode
02903 
                        movq            TestRam,mm5
02904 
#endif
02905 
02906 
02907                         xor                     eax,eax
02908                         psrlw           mm5,
LH_DATA_SHR
02909                         movq            ak,mm5
02910 
02911                         mov                     ax,ak
02912                         mov                     esi,My_OutputLut
02913                         mov                     al,
BYTE PTR[eax+esi]
02914                         mov                     edi,output0
02915                         mov                     [edi], al
02916                         mov                     ax,ak+2
02917                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
02918                         mov                     edi,output1
02919                         mov                     [edi], al
02920                         mov                     ax,ak+4
02921                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
02922                         mov                     edi,output2
02923                         mov                     [edi], al
02924 
                        #if LH_DATA_OUT_COUNT_4
02925 
                        mov                     ax,ak+6
02926                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
02927                         mov                     edi,output3
02928                         mov                     [edi], al
02929 
                        #endif
02930 
                        
02931 
02932          }
02933 
                                                        #endif
02934 
                                }
02935                                         
else if(ein_regM >= ein_regK )  
02936                                         {               
02937                                                 ako0 = 
LH_ADR_BEREICH_SEL - ein_regM;
02938                                                 ako1 = ein_regM - ein_regK;
02939                                                 ako2 = ein_regK - ein_regC;
02940                                                 ako3 = ein_regC - ein_regY;
02941 
                                                        #if LH_LUT_DATA_SIZE_16
02942 
                                                        #if LH_DATA_OUT_SIZE_16
02943 
                                        
02944                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
02945                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02946                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02947                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02948                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
02949                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02950                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02951                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02952                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
02953                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02954         
02955                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
02956                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02957                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02958                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02959                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
02960                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02961                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02962                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02963                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
02964                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02965         
02966                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
02967                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
02968                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02969                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
02970                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
02971                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02972                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02973                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02974                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
02975                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02976         
02977 
                                                        #if LH_DATA_OUT_COUNT_4
02978 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
02979                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
02980                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02981                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
02982                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
02983                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
02984                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
02985                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02986                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
02987                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02988 
                                                        #endif
02989 
                                                        
02990 
                                                        #else
02991 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
02992                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
02993                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02994                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
02995                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02996                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
02997                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
02998                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
02999                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03000                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03001                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
03002                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
03003                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03004                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03005                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03006 
                                                        #if LH_DATA_OUT_COUNT_4
03007 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
03008                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
03009                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03010                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03011                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03012 
                                                        #endif
03013 
                                                        #endif
03014 
                                                        
03015 
                                                        #else
03016 
     __asm { 
03017             mov         eax, paNewVal0
03018 
03019                         mov                     ebx, ako0
03020             movq        mm5, MMXTab [ebx*8]
03021 
#ifdef Test_mode
03022 
                        movq            TestRam,mm5
03023 
#endif
03024 
                        punpcklbw       mm1,[eax] 
03025                         mov                     ebx, ako1
03026                         psrlw       mm1,8
03027 
#ifdef Test_mode
03028 
                        movq            TestRam,mm1
03029 
#endif
03030 
03031                         pmullw          mm5,mm1
03032             movq        mm6, MMXTab [ebx*8]
03033 
#ifdef Test_mode
03034 
                        movq            TestRam,mm6
03035 
#endif
03036 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
03037                         mov                     ebx, ako2
03038                         psrlw       mm2,8
03039 
#ifdef Test_mode
03040 
                        movq            TestRam,mm2
03041 
#endif
03042 
                        pmullw          mm6,mm2
03043 
03044                         movq        mm7, MMXTab [ebx*8]
03045                         paddusw         mm5,mm6
03046 
#ifdef Test_mode
03047 
                        movq            TestRam,mm7
03048 
#endif
03049 
                        punpcklbw   mm1,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03050                         mov                     ebx, ako3
03051                         psrlw       mm1,8
03052 
#ifdef Test_mode
03053 
                        movq            TestRam,mm1
03054 
#endif
03055 
                        pmullw          mm7,mm1
03056 
03057                         movq        mm6, MMXTab [ebx*8]
03058                         paddusw         mm5,mm7
03059 
#ifdef Test_mode
03060 
                        movq            TestRam,mm6
03061 
#endif
03062 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03063                         mov                     ebx, ein_regY
03064                         psrlw       mm2,8
03065 
#ifdef Test_mode
03066 
                        movq            TestRam,mm2
03067 
#endif
03068 
                        pmullw          mm6,mm2
03069 
03070                         movq        mm7, MMXTab [ebx*8]
03071                         paddusw         mm5,mm6
03072 
#ifdef Test_mode
03073 
                        movq            TestRam,mm7
03074 
#endif
03075 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03076                         mov                     ebx, ako2
03077                         psrlw       mm1,8
03078 
#ifdef Test_mode
03079 
                        movq            TestRam,mm1
03080 
#endif
03081 
                        pmullw          mm7,mm1
03082                         paddusw         mm5,mm7
03083 
#ifdef Test_mode
03084 
                        movq            TestRam,mm5
03085 
#endif
03086 
03087 
03088                         xor                     eax,eax
03089                         psrlw           mm5,
LH_DATA_SHR
03090                         movq            ak,mm5
03091 
03092                         mov                     ax,ak
03093                         mov                     esi,My_OutputLut
03094                         mov                     al,
BYTE PTR[eax+esi]
03095                         mov                     edi,output0
03096                         mov                     [edi], al
03097                         mov                     ax,ak+2
03098                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
03099                         mov                     edi,output1
03100                         mov                     [edi], al
03101                         mov                     ax,ak+4
03102                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
03103                         mov                     edi,output2
03104                         mov                     [edi], al
03105 
                        #if LH_DATA_OUT_COUNT_4
03106 
                        mov                     ax,ak+6
03107                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
03108                         mov                     edi,output3
03109                         mov                     [edi], al
03110 
                        #endif
03111 
                        
03112 
03113          }
03114 
                                                        #endif
03115 
                                        }
03116                                         
else
03117                                         {                                                       
03118                                                 ako0 = 
LH_ADR_BEREICH_SEL - ein_regK;
03119                                                 ako1 = ein_regK - ein_regM;
03120                                                 ako2 = ein_regM - ein_regC;
03121                                                 ako3 = ein_regC - ein_regY;
03122 
                                                        #if LH_LUT_DATA_SIZE_16
03123 
                                                        #if LH_DATA_OUT_SIZE_16
03124 
                                        
03125                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
03126                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03127                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03128                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03129                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
03130                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03131                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03132                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03133                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
03134                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03135         
03136                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
03137                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03138                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03139                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03140                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
03141                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03142                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03143                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03144                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
03145                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03146         
03147                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
03148                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03149                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03150                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03151                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
03152                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03153                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03154                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03155                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
03156                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03157         
03158 
                                                        #if LH_DATA_OUT_COUNT_4
03159 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
03160                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03161                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03162                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03163                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
03164                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03165                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03166                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03167                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
03168                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03169 
                                                        #endif
03170 
                                                        
03171 
                                                        #else
03172 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
03173                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03174                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03175                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03176                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03177                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
03178                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03179                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03180                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03181                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03182                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
03183                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03184                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03185                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03186                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03187 
                                                        #if LH_DATA_OUT_COUNT_4
03188 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
03189                                                                                                 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03190                                                                                                 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03191                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03192                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03193 
                                                        #endif
03194 
                                                        #endif
03195 
                                                        
03196 
                                                        #else
03197 
     __asm { 
03198             mov         eax, paNewVal0
03199 
03200                         mov                     ebx, ako0
03201             movq        mm5, MMXTab [ebx*8]
03202 
#ifdef Test_mode
03203 
                        movq            TestRam,mm5
03204 
#endif
03205 
                        punpcklbw       mm1,[eax] 
03206                         mov                     ebx, ako1
03207                         psrlw       mm1,8
03208 
#ifdef Test_mode
03209 
                        movq            TestRam,mm1
03210 
#endif
03211 
03212                         pmullw          mm5,mm1
03213             movq        mm6, MMXTab [ebx*8]
03214 
#ifdef Test_mode
03215 
                        movq            TestRam,mm6
03216 
#endif
03217 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03218                         mov                     ebx, ako2
03219                         psrlw       mm2,8
03220 
#ifdef Test_mode
03221 
                        movq            TestRam,mm2
03222 
#endif
03223 
                        pmullw          mm6,mm2
03224 
03225                         movq        mm7, MMXTab [ebx*8]
03226                         paddusw         mm5,mm6
03227 
#ifdef Test_mode
03228 
                        movq            TestRam,mm7
03229 
#endif
03230 
                        punpcklbw   mm1,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03231                         mov                     ebx, ako3
03232                         psrlw       mm1,8
03233 
#ifdef Test_mode
03234 
                        movq            TestRam,mm1
03235 
#endif
03236 
                        pmullw          mm7,mm1
03237 
03238                         movq        mm6, MMXTab [ebx*8]
03239                         paddusw         mm5,mm7
03240 
#ifdef Test_mode
03241 
                        movq            TestRam,mm6
03242 
#endif
03243 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03244                         mov                     ebx, ein_regY
03245                         psrlw       mm2,8
03246 
#ifdef Test_mode
03247 
                        movq            TestRam,mm2
03248 
#endif
03249 
                        pmullw          mm6,mm2
03250 
03251                         movq        mm7, MMXTab [ebx*8]
03252                         paddusw         mm5,mm6
03253 
#ifdef Test_mode
03254 
                        movq            TestRam,mm7
03255 
#endif
03256 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03257                         mov                     ebx, ako2
03258                         psrlw       mm1,8
03259 
#ifdef Test_mode
03260 
                        movq            TestRam,mm1
03261 
#endif
03262 
                        pmullw          mm7,mm1
03263                         paddusw         mm5,mm7
03264 
#ifdef Test_mode
03265 
                        movq            TestRam,mm5
03266 
#endif
03267 
03268 
03269                         xor                     eax,eax
03270                         psrlw           mm5,
LH_DATA_SHR
03271                         movq            ak,mm5
03272 
03273                         mov                     ax,ak
03274                         mov                     esi,My_OutputLut
03275                         mov                     al,
BYTE PTR[eax+esi]
03276                         mov                     edi,output0
03277                         mov                     [edi], al
03278                         mov                     ax,ak+2
03279                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
03280                         mov                     edi,output1
03281                         mov                     [edi], al
03282                         mov                     ax,ak+4
03283                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
03284                         mov                     edi,output2
03285                         mov                     [edi], al
03286 
                        #if LH_DATA_OUT_COUNT_4
03287 
                        mov                     ax,ak+6
03288                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
03289                         mov                     edi,output3
03290                         mov                     [edi], al
03291 
                        #endif
03292 
                        
03293 
03294          }
03295 
                                                        #endif
03296 
                                        }
03297                 }
03298                 
else
03299                 {
03300                     
if( ein_regY >= ein_regM )
03301                     {
03302                                         
if( ein_regM >= ein_regK )      
03303                                         {       
03304                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regC;
03305                                                         ako1 = ein_regC - ein_regY;
03306                                                         ako2 = ein_regY - ein_regM;
03307                                                         ako3 = ein_regM - ein_regK;
03308 
                                                        #if LH_LUT_DATA_SIZE_16
03309 
                                                        #if LH_DATA_OUT_SIZE_16
03310 
                                        
03311                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
03312                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
03313                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
03314                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
03315                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
03316                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03317                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03318                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03319                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
03320                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03321         
03322                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
03323                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
03324                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
03325                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
03326                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
03327                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03328                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03329                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03330                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
03331                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03332         
03333                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
03334                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
03335                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
03336                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
03337                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
03338                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03339                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03340                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03341                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
03342                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03343         
03344 
                                                        #if LH_DATA_OUT_COUNT_4
03345 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
03346                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
03347                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
03348                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
03349                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
03350                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03351                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03352                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03353                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
03354                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03355 
                                                        #endif
03356 
                                                        
03357 
                                                        #else
03358 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
03359                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
03360                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
03361                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
03362                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03363                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
03364                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
03365                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
03366                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
03367                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03368                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
03369                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
03370                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
03371                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
03372                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03373 
                                                        #if LH_DATA_OUT_COUNT_4
03374 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
03375                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
03376                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
03377                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
03378                                                                                                 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03379 
                                                        #endif
03380 
                                                        #endif
03381 
                                                        
03382 
                                                        #else
03383 
     __asm { 
03384             mov         eax, paNewVal0
03385 
03386                         mov                     ebx, ako0
03387             movq        mm5, MMXTab [ebx*8]
03388 
#ifdef Test_mode
03389 
                        movq            TestRam,mm5
03390 
#endif
03391 
                        punpcklbw       mm1,[eax] 
03392                         mov                     ebx, ako1
03393                         psrlw       mm1,8
03394 
#ifdef Test_mode
03395 
                        movq            TestRam,mm1
03396 
#endif
03397 
03398                         pmullw          mm5,mm1
03399             movq        mm6, MMXTab [ebx*8]
03400 
#ifdef Test_mode
03401 
                        movq            TestRam,mm6
03402 
#endif
03403 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
03404                         mov                     ebx, ako2
03405                         psrlw       mm2,8
03406 
#ifdef Test_mode
03407 
                        movq            TestRam,mm2
03408 
#endif
03409 
                        pmullw          mm6,mm2
03410 
03411                         movq        mm7, MMXTab [ebx*8]
03412                         paddusw         mm5,mm6
03413 
#ifdef Test_mode
03414 
                        movq            TestRam,mm7
03415 
#endif
03416 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
03417                         mov                     ebx, ako3
03418                         psrlw       mm1,8
03419 
#ifdef Test_mode
03420 
                        movq            TestRam,mm1
03421 
#endif
03422 
                        pmullw          mm7,mm1
03423 
03424                         movq        mm6, MMXTab [ebx*8]
03425                         paddusw         mm5,mm7
03426 
#ifdef Test_mode
03427 
                        movq            TestRam,mm6
03428 
#endif
03429 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
03430                         mov                     ebx, ein_regK
03431                         psrlw       mm2,8
03432 
#ifdef Test_mode
03433 
                        movq            TestRam,mm2
03434 
#endif
03435 
                        pmullw          mm6,mm2
03436 
03437                         movq        mm7, MMXTab [ebx*8]
03438                         paddusw         mm5,mm6
03439 
#ifdef Test_mode
03440 
                        movq            TestRam,mm7
03441 
#endif
03442 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03443                         mov                     ebx, ako2
03444                         psrlw       mm1,8
03445 
#ifdef Test_mode
03446 
                        movq            TestRam,mm1
03447 
#endif
03448 
                        pmullw          mm7,mm1
03449                         paddusw         mm5,mm7
03450 
#ifdef Test_mode
03451 
                        movq            TestRam,mm5
03452 
#endif
03453 
03454 
03455                         xor                     eax,eax
03456                         psrlw           mm5,
LH_DATA_SHR
03457                         movq            ak,mm5
03458 
03459                         mov                     ax,ak
03460                         mov                     esi,My_OutputLut
03461                         mov                     al,
BYTE PTR[eax+esi]
03462                         mov                     edi,output0
03463                         mov                     [edi], al
03464                         mov                     ax,ak+2
03465                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
03466                         mov                     edi,output1
03467                         mov                     [edi], al
03468                         mov                     ax,ak+4
03469                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
03470                         mov                     edi,output2
03471                         mov                     [edi], al
03472 
                        #if LH_DATA_OUT_COUNT_4
03473 
                        mov                     ax,ak+6
03474                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
03475                         mov                     edi,output3
03476                         mov                     [edi], al
03477 
                        #endif
03478 
                        
03479 
03480          }
03481 
                                                        #endif
03482 
                                                }
03483                                                 
else if(ein_regY >= ein_regK )  
03484                                                 {       
03485                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regC;
03486                                                         ako1 = ein_regC - ein_regY;
03487                                                         ako2 = ein_regY - ein_regK;
03488                                                         ako3 = ein_regK - ein_regM;
03489 
                                                        #if LH_LUT_DATA_SIZE_16
03490 
                                                        #if LH_DATA_OUT_SIZE_16
03491 
                                        
03492                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
03493                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
03494                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
03495                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03496                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
03497                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03498                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03499                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03500                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
03501                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03502         
03503                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
03504                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
03505                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
03506                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03507                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
03508                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03509                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03510                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03511                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
03512                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03513         
03514                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
03515                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
03516                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
03517                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03518                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
03519                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03520                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03521                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03522                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
03523                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03524         
03525 
                                                        #if LH_DATA_OUT_COUNT_4
03526 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
03527                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
03528                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
03529                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03530                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
03531                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03532                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03533                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03534                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
03535                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03536 
                                                        #endif
03537 
                                                        
03538 
                                                        #else
03539 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
03540                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
03541                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
03542                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03543                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03544                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
03545                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
03546                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
03547                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03548                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03549                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
03550                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
03551                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
03552                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03553                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03554 
                                                        #if LH_DATA_OUT_COUNT_4
03555 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
03556                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
03557                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
03558                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03559                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03560 
                                                        #endif
03561 
                                                        #endif
03562 
                                                        
03563 
                                                        #else
03564 
     __asm { 
03565             mov         eax, paNewVal0
03566 
03567                         mov                     ebx, ako0
03568             movq        mm5, MMXTab [ebx*8]
03569 
#ifdef Test_mode
03570 
                        movq            TestRam,mm5
03571 
#endif
03572 
                        punpcklbw       mm1,[eax] 
03573                         mov                     ebx, ako1
03574                         psrlw       mm1,8
03575 
#ifdef Test_mode
03576 
                        movq            TestRam,mm1
03577 
#endif
03578 
03579                         pmullw          mm5,mm1
03580             movq        mm6, MMXTab [ebx*8]
03581 
#ifdef Test_mode
03582 
                        movq            TestRam,mm6
03583 
#endif
03584 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
03585                         mov                     ebx, ako2
03586                         psrlw       mm2,8
03587 
#ifdef Test_mode
03588 
                        movq            TestRam,mm2
03589 
#endif
03590 
                        pmullw          mm6,mm2
03591 
03592                         movq        mm7, MMXTab [ebx*8]
03593                         paddusw         mm5,mm6
03594 
#ifdef Test_mode
03595 
                        movq            TestRam,mm7
03596 
#endif
03597 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
03598                         mov                     ebx, ako3
03599                         psrlw       mm1,8
03600 
#ifdef Test_mode
03601 
                        movq            TestRam,mm1
03602 
#endif
03603 
                        pmullw          mm7,mm1
03604 
03605                         movq        mm6, MMXTab [ebx*8]
03606                         paddusw         mm5,mm7
03607 
#ifdef Test_mode
03608 
                        movq            TestRam,mm6
03609 
#endif
03610 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03611                         mov                     ebx, ein_regM
03612                         psrlw       mm2,8
03613 
#ifdef Test_mode
03614 
                        movq            TestRam,mm2
03615 
#endif
03616 
                        pmullw          mm6,mm2
03617 
03618                         movq        mm7, MMXTab [ebx*8]
03619                         paddusw         mm5,mm6
03620 
#ifdef Test_mode
03621 
                        movq            TestRam,mm7
03622 
#endif
03623 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03624                         mov                     ebx, ako2
03625                         psrlw       mm1,8
03626 
#ifdef Test_mode
03627 
                        movq            TestRam,mm1
03628 
#endif
03629 
                        pmullw          mm7,mm1
03630                         paddusw         mm5,mm7
03631 
#ifdef Test_mode
03632 
                        movq            TestRam,mm5
03633 
#endif
03634 
03635 
03636                         xor                     eax,eax
03637                         psrlw           mm5,
LH_DATA_SHR
03638                         movq            ak,mm5
03639 
03640                         mov                     ax,ak
03641                         mov                     esi,My_OutputLut
03642                         mov                     al,
BYTE PTR[eax+esi]
03643                         mov                     edi,output0
03644                         mov                     [edi], al
03645                         mov                     ax,ak+2
03646                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
03647                         mov                     edi,output1
03648                         mov                     [edi], al
03649                         mov                     ax,ak+4
03650                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
03651                         mov                     edi,output2
03652                         mov                     [edi], al
03653 
                        #if LH_DATA_OUT_COUNT_4
03654 
                        mov                     ax,ak+6
03655                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
03656                         mov                     edi,output3
03657                         mov                     [edi], al
03658 
                        #endif
03659 
                        
03660 
03661          }
03662 
                                                        #endif
03663 
                                                }
03664                                                 
else if(ein_regC >= ein_regK )  
03665                                                 {       
03666                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regC;
03667                                                         ako1 = ein_regC - ein_regK;
03668                                                         ako2 = ein_regK - ein_regY;
03669                                                         ako3 = ein_regY - ein_regM;
03670 
                                                        #if LH_LUT_DATA_SIZE_16
03671 
                                                        #if LH_DATA_OUT_SIZE_16
03672 
                                        
03673                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
03674                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
03675                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03676                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03677                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
03678                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03679                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03680                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03681                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
03682                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03683         
03684                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
03685                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
03686                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03687                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03688                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
03689                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03690                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03691                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03692                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
03693                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03694         
03695                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
03696                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
03697                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03698                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03699                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
03700                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03701                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03702                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03703                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
03704                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03705         
03706 
                                                        #if LH_DATA_OUT_COUNT_4
03707 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
03708                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
03709                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03710                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03711                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
03712                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03713                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03714                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03715                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
03716                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03717 
                                                        #endif
03718 
                                                        
03719 
                                                        #else
03720 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
03721                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
03722                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03723                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03724                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03725                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
03726                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
03727                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03728                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03729                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03730                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
03731                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
03732                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03733                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03734                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03735 
                                                        #if LH_DATA_OUT_COUNT_4
03736 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
03737                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
03738                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03739                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03740                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03741 
                                                        #endif
03742 
                                                        #endif
03743 
                                                        
03744 
                                                        #else
03745 
     __asm { 
03746             mov         eax, paNewVal0
03747 
03748                         mov                     ebx, ako0
03749             movq        mm5, MMXTab [ebx*8]
03750 
#ifdef Test_mode
03751 
                        movq            TestRam,mm5
03752 
#endif
03753 
                        punpcklbw       mm1,[eax] 
03754                         mov                     ebx, ako1
03755                         psrlw       mm1,8
03756 
#ifdef Test_mode
03757 
                        movq            TestRam,mm1
03758 
#endif
03759 
03760                         pmullw          mm5,mm1
03761             movq        mm6, MMXTab [ebx*8]
03762 
#ifdef Test_mode
03763 
                        movq            TestRam,mm6
03764 
#endif
03765 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
03766                         mov                     ebx, ako2
03767                         psrlw       mm2,8
03768 
#ifdef Test_mode
03769 
                        movq            TestRam,mm2
03770 
#endif
03771 
                        pmullw          mm6,mm2
03772 
03773                         movq        mm7, MMXTab [ebx*8]
03774                         paddusw         mm5,mm6
03775 
#ifdef Test_mode
03776 
                        movq            TestRam,mm7
03777 
#endif
03778 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03779                         mov                     ebx, ako3
03780                         psrlw       mm1,8
03781 
#ifdef Test_mode
03782 
                        movq            TestRam,mm1
03783 
#endif
03784 
                        pmullw          mm7,mm1
03785 
03786                         movq        mm6, MMXTab [ebx*8]
03787                         paddusw         mm5,mm7
03788 
#ifdef Test_mode
03789 
                        movq            TestRam,mm6
03790 
#endif
03791 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03792                         mov                     ebx, ein_regM
03793                         psrlw       mm2,8
03794 
#ifdef Test_mode
03795 
                        movq            TestRam,mm2
03796 
#endif
03797 
                        pmullw          mm6,mm2
03798 
03799                         movq        mm7, MMXTab [ebx*8]
03800                         paddusw         mm5,mm6
03801 
#ifdef Test_mode
03802 
                        movq            TestRam,mm7
03803 
#endif
03804 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03805                         mov                     ebx, ako2
03806                         psrlw       mm1,8
03807 
#ifdef Test_mode
03808 
                        movq            TestRam,mm1
03809 
#endif
03810 
                        pmullw          mm7,mm1
03811                         paddusw         mm5,mm7
03812 
#ifdef Test_mode
03813 
                        movq            TestRam,mm5
03814 
#endif
03815 
03816 
03817                         xor                     eax,eax
03818                         psrlw           mm5,
LH_DATA_SHR
03819                         movq            ak,mm5
03820 
03821                         mov                     ax,ak
03822                         mov                     esi,My_OutputLut
03823                         mov                     al,
BYTE PTR[eax+esi]
03824                         mov                     edi,output0
03825                         mov                     [edi], al
03826                         mov                     ax,ak+2
03827                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
03828                         mov                     edi,output1
03829                         mov                     [edi], al
03830                         mov                     ax,ak+4
03831                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
03832                         mov                     edi,output2
03833                         mov                     [edi], al
03834 
                        #if LH_DATA_OUT_COUNT_4
03835 
                        mov                     ax,ak+6
03836                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
03837                         mov                     edi,output3
03838                         mov                     [edi], al
03839 
                        #endif
03840 
                        
03841 
03842          }
03843 
                                                        #endif
03844 
                                                }
03845                                                 
else
03846                                                 {                                                       
03847                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regK;
03848                                                         ako1 = ein_regK - ein_regC;
03849                                                         ako2 = ein_regC - ein_regY;
03850                                                         ako3 = ein_regY - ein_regM;
03851 
                                                        #if LH_LUT_DATA_SIZE_16
03852 
                                                        #if LH_DATA_OUT_SIZE_16
03853 
                                        
03854                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
03855                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03856                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03857                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03858                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
03859                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03860                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03861                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03862                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
03863                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03864         
03865                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
03866                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03867                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03868                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03869                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
03870                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03871                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03872                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03873                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
03874                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03875         
03876                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
03877                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03878                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03879                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03880                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
03881                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03882                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03883                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03884                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
03885                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03886         
03887 
                                                        #if LH_DATA_OUT_COUNT_4
03888 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
03889                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03890                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03891                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03892                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
03893                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
03894                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
03895                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03896                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
03897                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03898 
                                                        #endif
03899 
                                                        
03900 
                                                        #else
03901 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
03902                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03903                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03904                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
03905                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03906                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
03907                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03908                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03909                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
03910                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03911                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
03912                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03913                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03914                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
03915                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03916 
                                                        #if LH_DATA_OUT_COUNT_4
03917 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
03918                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03919                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03920                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
03921                                                                                                 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03922 
                                                        #endif
03923 
                                                        #endif
03924 
                                                        
03925 
                                                        #else
03926 
     __asm { 
03927             mov         eax, paNewVal0
03928 
03929                         mov                     ebx, ako0
03930             movq        mm5, MMXTab [ebx*8]
03931 
#ifdef Test_mode
03932 
                        movq            TestRam,mm5
03933 
#endif
03934 
                        punpcklbw       mm1,[eax] 
03935                         mov                     ebx, ako1
03936                         psrlw       mm1,8
03937 
#ifdef Test_mode
03938 
                        movq            TestRam,mm1
03939 
#endif
03940 
03941                         pmullw          mm5,mm1
03942             movq        mm6, MMXTab [ebx*8]
03943 
#ifdef Test_mode
03944 
                        movq            TestRam,mm6
03945 
#endif
03946 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03947                         mov                     ebx, ako2
03948                         psrlw       mm2,8
03949 
#ifdef Test_mode
03950 
                        movq            TestRam,mm2
03951 
#endif
03952 
                        pmullw          mm6,mm2
03953 
03954                         movq        mm7, MMXTab [ebx*8]
03955                         paddusw         mm5,mm6
03956 
#ifdef Test_mode
03957 
                        movq            TestRam,mm7
03958 
#endif
03959 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03960                         mov                     ebx, ako3
03961                         psrlw       mm1,8
03962 
#ifdef Test_mode
03963 
                        movq            TestRam,mm1
03964 
#endif
03965 
                        pmullw          mm7,mm1
03966 
03967                         movq        mm6, MMXTab [ebx*8]
03968                         paddusw         mm5,mm7
03969 
#ifdef Test_mode
03970 
                        movq            TestRam,mm6
03971 
#endif
03972 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03973                         mov                     ebx, ein_regM
03974                         psrlw       mm2,8
03975 
#ifdef Test_mode
03976 
                        movq            TestRam,mm2
03977 
#endif
03978 
                        pmullw          mm6,mm2
03979 
03980                         movq        mm7, MMXTab [ebx*8]
03981                         paddusw         mm5,mm6
03982 
#ifdef Test_mode
03983 
                        movq            TestRam,mm7
03984 
#endif
03985 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
03986                         mov                     ebx, ako2
03987                         psrlw       mm1,8
03988 
#ifdef Test_mode
03989 
                        movq            TestRam,mm1
03990 
#endif
03991 
                        pmullw          mm7,mm1
03992                         paddusw         mm5,mm7
03993 
#ifdef Test_mode
03994 
                        movq            TestRam,mm5
03995 
#endif
03996 
03997 
03998                         xor                     eax,eax
03999                         psrlw           mm5,
LH_DATA_SHR
04000                         movq            ak,mm5
04001 
04002                         mov                     ax,ak
04003                         mov                     esi,My_OutputLut
04004                         mov                     al,
BYTE PTR[eax+esi]
04005                         mov                     edi,output0
04006                         mov                     [edi], al
04007                         mov                     ax,ak+2
04008                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
04009                         mov                     edi,output1
04010                         mov                     [edi], al
04011                         mov                     ax,ak+4
04012                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
04013                         mov                     edi,output2
04014                         mov                     [edi], al
04015 
                        #if LH_DATA_OUT_COUNT_4
04016 
                        mov                     ax,ak+6
04017                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
04018                         mov                     edi,output3
04019                         mov                     [edi], al
04020 
                        #endif
04021 
                        
04022 
04023          }
04024 
                                                        #endif
04025 
                                                }
04026                     }
04027                     
else if( ein_regY >= ein_regK )             
04028                     {   
04029                                                 ako0 = 
LH_ADR_BEREICH_SEL - ein_regC;
04030                                                 ako1 = ein_regC - ein_regM;
04031                                                 ako2 = ein_regM - ein_regY;
04032                                                 ako3 = ein_regY - ein_regK;
04033 
                                                        #if LH_LUT_DATA_SIZE_16
04034 
                                                        #if LH_DATA_OUT_SIZE_16
04035 
                                        
04036                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
04037                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
04038                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
04039                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
04040                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
04041                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04042                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04043                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04044                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
04045                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04046         
04047                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
04048                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
04049                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
04050                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
04051                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
04052                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04053                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04054                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04055                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
04056                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04057         
04058                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
04059                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
04060                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
04061                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
04062                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
04063                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04064                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04065                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04066                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
04067                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04068         
04069 
                                                        #if LH_DATA_OUT_COUNT_4
04070 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
04071                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
04072                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
04073                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
04074                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
04075                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04076                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04077                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04078                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
04079                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04080 
                                                        #endif
04081 
                                                        
04082 
                                                        #else
04083 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
04084                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
04085                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
04086                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
04087                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04088                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
04089                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
04090                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
04091                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
04092                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04093                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
04094                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
04095                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
04096                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
04097                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04098 
                                                        #if LH_DATA_OUT_COUNT_4
04099 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
04100                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
04101                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
04102                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
04103                                                                                         ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04104 
                                                        #endif
04105 
                                                        #endif
04106 
                                                        
04107 
                                                        #else
04108 
     __asm { 
04109             mov         eax, paNewVal0
04110 
04111                         mov                     ebx, ako0
04112             movq        mm5, MMXTab [ebx*8]
04113 
#ifdef Test_mode
04114 
                        movq            TestRam,mm5
04115 
#endif
04116 
                        punpcklbw       mm1,[eax] 
04117                         mov                     ebx, ako1
04118                         psrlw       mm1,8
04119 
#ifdef Test_mode
04120 
                        movq            TestRam,mm1
04121 
#endif
04122 
04123                         pmullw          mm5,mm1
04124             movq        mm6, MMXTab [ebx*8]
04125 
#ifdef Test_mode
04126 
                        movq            TestRam,mm6
04127 
#endif
04128 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
04129                         mov                     ebx, ako2
04130                         psrlw       mm2,8
04131 
#ifdef Test_mode
04132 
                        movq            TestRam,mm2
04133 
#endif
04134 
                        pmullw          mm6,mm2
04135 
04136                         movq        mm7, MMXTab [ebx*8]
04137                         paddusw         mm5,mm6
04138 
#ifdef Test_mode
04139 
                        movq            TestRam,mm7
04140 
#endif
04141 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
04142                         mov                     ebx, ako3
04143                         psrlw       mm1,8
04144 
#ifdef Test_mode
04145 
                        movq            TestRam,mm1
04146 
#endif
04147 
                        pmullw          mm7,mm1
04148 
04149                         movq        mm6, MMXTab [ebx*8]
04150                         paddusw         mm5,mm7
04151 
#ifdef Test_mode
04152 
                        movq            TestRam,mm6
04153 
#endif
04154 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
04155                         mov                     ebx, ein_regK
04156                         psrlw       mm2,8
04157 
#ifdef Test_mode
04158 
                        movq            TestRam,mm2
04159 
#endif
04160 
                        pmullw          mm6,mm2
04161 
04162                         movq        mm7, MMXTab [ebx*8]
04163                         paddusw         mm5,mm6
04164 
#ifdef Test_mode
04165 
                        movq            TestRam,mm7
04166 
#endif
04167 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
04168                         mov                     ebx, ako2
04169                         psrlw       mm1,8
04170 
#ifdef Test_mode
04171 
                        movq            TestRam,mm1
04172 
#endif
04173 
                        pmullw          mm7,mm1
04174                         paddusw         mm5,mm7
04175 
#ifdef Test_mode
04176 
                        movq            TestRam,mm5
04177 
#endif
04178 
04179 
04180                         xor                     eax,eax
04181                         psrlw           mm5,
LH_DATA_SHR
04182                         movq            ak,mm5
04183 
04184                         mov                     ax,ak
04185                         mov                     esi,My_OutputLut
04186                         mov                     al,
BYTE PTR[eax+esi]
04187                         mov                     edi,output0
04188                         mov                     [edi], al
04189                         mov                     ax,ak+2
04190                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
04191                         mov                     edi,output1
04192                         mov                     [edi], al
04193                         mov                     ax,ak+4
04194                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
04195                         mov                     edi,output2
04196                         mov                     [edi], al
04197 
                        #if LH_DATA_OUT_COUNT_4
04198 
                        mov                     ax,ak+6
04199                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
04200                         mov                     edi,output3
04201                         mov                     [edi], al
04202 
                        #endif
04203 
                        
04204 
04205          }
04206 
                                                        #endif
04207 
                                        }
04208                                         
else if(ein_regM >= ein_regK )  
04209                                         {       
04210                                                 ako0 = 
LH_ADR_BEREICH_SEL - ein_regC;
04211                                                 ako1 = ein_regC - ein_regM;
04212                                                 ako2 = ein_regM - ein_regK;
04213                                                 ako3 = ein_regK - ein_regY;
04214 
                                                        #if LH_LUT_DATA_SIZE_16
04215 
                                                        #if LH_DATA_OUT_SIZE_16
04216 
                                        
04217                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
04218                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
04219                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
04220                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
04221                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
04222                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04223                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04224                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04225                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
04226                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04227         
04228                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
04229                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
04230                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
04231                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
04232                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
04233                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04234                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04235                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04236                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
04237                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04238         
04239                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
04240                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
04241                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
04242                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
04243                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
04244                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04245                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04246                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04247                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
04248                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04249         
04250 
                                                        #if LH_DATA_OUT_COUNT_4
04251 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
04252                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
04253                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
04254                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
04255                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
04256                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04257                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04258                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04259                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
04260                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04261 
                                                        #endif
04262 
                                                        
04263 
                                                        #else
04264 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
04265                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
04266                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
04267                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
04268                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04269                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
04270                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
04271                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
04272                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
04273                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04274                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
04275                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
04276                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
04277                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
04278                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04279 
                                                        #if LH_DATA_OUT_COUNT_4
04280 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
04281                                                                                                 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
04282                                                                                                 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
04283                                                                                                 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
04284                                                                                         ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04285 
                                                        #endif
04286 
                                                        #endif
04287 
                                                        
04288 
                                                        #else
04289 
     __asm { 
04290             mov         eax, paNewVal0
04291 
04292                         mov                     ebx, ako0
04293             movq        mm5, MMXTab [ebx*8]
04294 
#ifdef Test_mode
04295 
                        movq            TestRam,mm5
04296 
#endif
04297 
                        punpcklbw       mm1,[eax] 
04298                         mov                     ebx, ako1
04299                         psrlw       mm1,8
04300 
#ifdef Test_mode
04301 
                        movq            TestRam,mm1
04302 
#endif
04303 
04304                         pmullw          mm5,mm1
04305             movq        mm6, MMXTab [ebx*8]
04306 
#ifdef Test_mode
04307 
                        movq            TestRam,mm6
04308 
#endif
04309 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
04310                         mov                     ebx, ako2
04311                         psrlw       mm2,8
04312 
#ifdef Test_mode
04313 
                        movq            TestRam,mm2
04314 
#endif
04315 
                        pmullw          mm6,mm2
04316 
04317                         movq        mm7, MMXTab [ebx*8]
04318                         paddusw         mm5,mm6
04319 
#ifdef Test_mode
04320 
                        movq            TestRam,mm7
04321 
#endif
04322 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
04323                         mov                     ebx, ako3
04324                         psrlw       mm1,8
04325 
#ifdef Test_mode
04326 
                        movq            TestRam,mm1
04327 
#endif
04328 
                        pmullw          mm7,mm1
04329 
04330                         movq        mm6, MMXTab [ebx*8]
04331                         paddusw         mm5,mm7
04332 
#ifdef Test_mode
04333 
                        movq            TestRam,mm6
04334 
#endif
04335 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
04336                         mov                     ebx, ein_regY
04337                         psrlw       mm2,8
04338 
#ifdef Test_mode
04339 
                        movq            TestRam,mm2
04340 
#endif
04341 
                        pmullw          mm6,mm2
04342 
04343                         movq        mm7, MMXTab [ebx*8]
04344                         paddusw         mm5,mm6
04345 
#ifdef Test_mode
04346 
                        movq            TestRam,mm7
04347 
#endif
04348 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
04349                         mov                     ebx, ako2
04350                         psrlw       mm1,8
04351 
#ifdef Test_mode
04352 
                        movq            TestRam,mm1
04353 
#endif
04354 
                        pmullw          mm7,mm1
04355                         paddusw         mm5,mm7
04356 
#ifdef Test_mode
04357 
                        movq            TestRam,mm5
04358 
#endif
04359 
04360 
04361                         xor                     eax,eax
04362                         psrlw           mm5,
LH_DATA_SHR
04363                         movq            ak,mm5
04364 
04365                         mov                     ax,ak
04366                         mov                     esi,My_OutputLut
04367                         mov                     al,
BYTE PTR[eax+esi]
04368                         mov                     edi,output0
04369                         mov                     [edi], al
04370                         mov                     ax,ak+2
04371                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
04372                         mov                     edi,output1
04373                         mov                     [edi], al
04374                         mov                     ax,ak+4
04375                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
04376                         mov                     edi,output2
04377                         mov                     [edi], al
04378 
                        #if LH_DATA_OUT_COUNT_4
04379 
                        mov                     ax,ak+6
04380                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
04381                         mov                     edi,output3
04382                         mov                     [edi], al
04383 
                        #endif
04384 
                        
04385 
04386          }
04387 
                                                        #endif
04388 
                                        }
04389                                         
else
04390                                         { 
04391                                                 
if(ein_regC >= ein_regK )       
04392                                                 {       
04393                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regC;
04394                                                         ako1 = ein_regC - ein_regK;
04395                                                         ako2 = ein_regK - ein_regM;
04396                                                         ako3 = ein_regM - ein_regY;
04397 
                                                        #if LH_LUT_DATA_SIZE_16
04398 
                                                        #if LH_DATA_OUT_SIZE_16
04399 
                                        
04400                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
04401                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
04402                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
04403                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
04404                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
04405                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04406                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04407                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04408                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
04409                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04410         
04411                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
04412                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
04413                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
04414                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
04415                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
04416                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04417                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04418                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04419                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
04420                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04421         
04422                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
04423                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
04424                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
04425                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
04426                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
04427                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04428                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04429                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04430                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
04431                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04432         
04433 
                                                        #if LH_DATA_OUT_COUNT_4
04434 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
04435                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
04436                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
04437                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
04438                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
04439                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04440                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04441                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04442                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
04443                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04444 
                                                        #endif
04445 
                                                        
04446 
                                                        #else
04447 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
04448                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+0] + 
04449                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
04450                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
04451                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04452                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
04453                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+1] + 
04454                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
04455                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
04456                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04457                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
04458                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+2] + 
04459                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
04460                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
04461                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04462 
                                                        #if LH_DATA_OUT_COUNT_4
04463 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
04464                                                                                                         ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)+3] + 
04465                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
04466                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
04467                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04468 
                                                        #endif
04469 
                                                        #endif
04470 
                                                        
04471 
                                                        #else
04472 
     __asm { 
04473             mov         eax, paNewVal0
04474 
04475                         mov                     ebx, ako0
04476             movq        mm5, MMXTab [ebx*8]
04477 
#ifdef Test_mode
04478 
                        movq            TestRam,mm5
04479 
#endif
04480 
                        punpcklbw       mm1,[eax] 
04481                         mov                     ebx, ako1
04482                         psrlw       mm1,8
04483 
#ifdef Test_mode
04484 
                        movq            TestRam,mm1
04485 
#endif
04486 
04487                         pmullw          mm5,mm1
04488             movq        mm6, MMXTab [ebx*8]
04489 
#ifdef Test_mode
04490 
                        movq            TestRam,mm6
04491 
#endif
04492 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
04493                         mov                     ebx, ako2
04494                         psrlw       mm2,8
04495 
#ifdef Test_mode
04496 
                        movq            TestRam,mm2
04497 
#endif
04498 
                        pmullw          mm6,mm2
04499 
04500                         movq        mm7, MMXTab [ebx*8]
04501                         paddusw         mm5,mm6
04502 
#ifdef Test_mode
04503 
                        movq            TestRam,mm7
04504 
#endif
04505 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
04506                         mov                     ebx, ako3
04507                         psrlw       mm1,8
04508 
#ifdef Test_mode
04509 
                        movq            TestRam,mm1
04510 
#endif
04511 
                        pmullw          mm7,mm1
04512 
04513                         movq        mm6, MMXTab [ebx*8]
04514                         paddusw         mm5,mm7
04515 
#ifdef Test_mode
04516 
                        movq            TestRam,mm6
04517 
#endif
04518 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
04519                         mov                     ebx, ein_regY
04520                         psrlw       mm2,8
04521 
#ifdef Test_mode
04522 
                        movq            TestRam,mm2
04523 
#endif
04524 
                        pmullw          mm6,mm2
04525 
04526                         movq        mm7, MMXTab [ebx*8]
04527                         paddusw         mm5,mm6
04528 
#ifdef Test_mode
04529 
                        movq            TestRam,mm7
04530 
#endif
04531 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
04532                         mov                     ebx, ako2
04533                         psrlw       mm1,8
04534 
#ifdef Test_mode
04535 
                        movq            TestRam,mm1
04536 
#endif
04537 
                        pmullw          mm7,mm1
04538                         paddusw         mm5,mm7
04539 
#ifdef Test_mode
04540 
                        movq            TestRam,mm5
04541 
#endif
04542 
04543 
04544                         xor                     eax,eax
04545                         psrlw           mm5,
LH_DATA_SHR
04546                         movq            ak,mm5
04547 
04548                         mov                     ax,ak
04549                         mov                     esi,My_OutputLut
04550                         mov                     al,
BYTE PTR[eax+esi]
04551                         mov                     edi,output0
04552                         mov                     [edi], al
04553                         mov                     ax,ak+2
04554                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
04555                         mov                     edi,output1
04556                         mov                     [edi], al
04557                         mov                     ax,ak+4
04558                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
04559                         mov                     edi,output2
04560                         mov                     [edi], al
04561 
                        #if LH_DATA_OUT_COUNT_4
04562 
                        mov                     ax,ak+6
04563                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
04564                         mov                     edi,output3
04565                         mov                     [edi], al
04566 
                        #endif
04567 
                        
04568 
04569          }
04570 
                                                        #endif
04571 
                                                }
04572                                                 
else
04573                                                 {                                                       
04574                                                         ako0 = 
LH_ADR_BEREICH_SEL - ein_regK;
04575                                                         ako1 = ein_regK - ein_regC;
04576                                                         ako2 = ein_regC - ein_regM;
04577                                                         ako3 = ein_regM - ein_regY;
04578 
                                                        #if LH_LUT_DATA_SIZE_16
04579 
                                                        #if LH_DATA_OUT_SIZE_16
04580 
                                        
04581                                                         aVal =                                   (      ako0 * paNewVal0[0] + 
04582                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
04583                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
04584                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
04585                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] );
04586                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04587                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04588                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04589                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
04590                                                 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04591         
04592                                                         aVal =                                   (      ako0 * paNewVal0[1] + 
04593                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
04594                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
04595                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
04596                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] );
04597                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04598                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04599                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04600                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
04601                                                 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04602         
04603                                                         aVal =                                   (      ako0 * paNewVal0[2] + 
04604                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
04605                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
04606                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
04607                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] );
04608                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04609                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04610                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04611                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
04612                                                 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04613         
04614 
                                                        #if LH_DATA_OUT_COUNT_4
04615 
                                                        aVal =                                   (      ako0 * paNewVal0[3] + 
04616                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
04617                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
04618                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
04619                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] );
04620                                                         aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
04621                                                         aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
04622                                                         ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04623                                                         aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
04624                                                 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04625 
                                                        #endif
04626 
                                                        
04627 
                                                        #else
04628 
                                                        *output0 = My_OutputLut[((      ako0 * paNewVal0[0] + 
04629                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
04630                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
04631                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] + 
04632                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04633                                                         *output1 = My_OutputLut[((      ako0 * paNewVal0[1] + 
04634                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
04635                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
04636                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] + 
04637                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04638                                                         *output2 = My_OutputLut[((      ako0 * paNewVal0[2] + 
04639                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
04640                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
04641                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] + 
04642                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04643 
                                                        #if LH_DATA_OUT_COUNT_4
04644 
                                                        *output3 = My_OutputLut[((      ako0 * paNewVal0[3] + 
04645                                                                                                         ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
04646                                                                                                         ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
04647                                                                                                         ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] + 
04648                                                                                                 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04649 
                                                        #endif
04650 
                                                        #endif
04651 
                                                        
04652 
                                                        #else
04653 
     __asm { 
04654             mov         eax, paNewVal0
04655 
04656                         mov                     ebx, ako0
04657             movq        mm5, MMXTab [ebx*8]
04658 
#ifdef Test_mode
04659 
                        movq            TestRam,mm5
04660 
#endif
04661 
                        punpcklbw       mm1,[eax] 
04662                         mov                     ebx, ako1
04663                         psrlw       mm1,8
04664 
#ifdef Test_mode
04665 
                        movq            TestRam,mm1
04666 
#endif
04667 
04668                         pmullw          mm5,mm1
04669             movq        mm6, MMXTab [ebx*8]
04670 
#ifdef Test_mode
04671 
                        movq            TestRam,mm6
04672 
#endif
04673 
                        punpcklbw   mm2,[eax+(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
04674                         mov                     ebx, ako2
04675                         psrlw       mm2,8
04676 
#ifdef Test_mode
04677 
                        movq            TestRam,mm2
04678 
#endif
04679 
                        pmullw          mm6,mm2
04680 
04681                         movq        mm7, MMXTab [ebx*8]
04682                         paddusw         mm5,mm6
04683 
#ifdef Test_mode
04684 
                        movq            TestRam,mm7
04685 
#endif
04686 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
04687                         mov                     ebx, ako3
04688                         psrlw       mm1,8
04689 
#ifdef Test_mode
04690 
                        movq            TestRam,mm1
04691 
#endif
04692 
                        pmullw          mm7,mm1
04693 
04694                         movq        mm6, MMXTab [ebx*8]
04695                         paddusw         mm5,mm7
04696 
#ifdef Test_mode
04697 
                        movq            TestRam,mm6
04698 
#endif
04699 
                        punpcklbw   mm2,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
04700                         mov                     ebx, ein_regY
04701                         psrlw       mm2,8
04702 
#ifdef Test_mode
04703 
                        movq            TestRam,mm2
04704 
#endif
04705 
                        pmullw          mm6,mm2
04706 
04707                         movq        mm7, MMXTab [ebx*8]
04708                         paddusw         mm5,mm6
04709 
#ifdef Test_mode
04710 
                        movq            TestRam,mm7
04711 
#endif
04712 
                        punpcklbw   mm1,[eax+(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
04713                         mov                     ebx, ako2
04714                         psrlw       mm1,8
04715 
#ifdef Test_mode
04716 
                        movq            TestRam,mm1
04717 
#endif
04718 
                        pmullw          mm7,mm1
04719                         paddusw         mm5,mm7
04720 
#ifdef Test_mode
04721 
                        movq            TestRam,mm5
04722 
#endif
04723 
04724 
04725                         xor                     eax,eax
04726                         psrlw           mm5,
LH_DATA_SHR
04727                         movq            ak,mm5
04728 
04729                         mov                     ax,ak
04730                         mov                     esi,My_OutputLut
04731                         mov                     al,
BYTE PTR[eax+esi]
04732                         mov                     edi,output0
04733                         mov                     [edi], al
04734                         mov                     ax,ak+2
04735                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
04736                         mov                     edi,output1
04737                         mov                     [edi], al
04738                         mov                     ax,ak+4
04739                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
04740                         mov                     edi,output2
04741                         mov                     [edi], al
04742 
                        #if LH_DATA_OUT_COUNT_4
04743 
                        mov                     ax,ak+6
04744                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
04745                         mov                     edi,output3
04746                         mov                     [edi], al
04747 
                        #endif
04748 
                        
04749 
04750          }
04751 
                                                        #endif
04752 
                                }
04753                                         }
04754                         }
04755                         }
04756 
                        #if LH_DATA_OUT_SIZE_16 && ! LH_LUT_DATA_SIZE_16
04757 
                        *output0 |= (*output0 << 8);
04758                         *output1 |= (*output1 << 8);
04759                         *output2 |= (*output2 << 8);
04760 
                        #if LH_DATA_OUT_COUNT_4
04761 
                        *output3 |= (*output3 << 8);
04762 
                        #endif
04763 
                        #endif
04764 
                        
04765                         
if (Mode == 
LH_CALC_ENGINE_P_TO_P)
04766                         {
04767                                 
while (--i)
04768                                 {
04769                                         input0 += inputOffset;
04770                                         input1 += inputOffset;
04771                                         input2 += inputOffset;
04772                                         input3 += inputOffset;
04773                                         output0 += outputOffset;
04774                                         output1 += outputOffset;
04775                                         output2 += outputOffset;
04776 
                                        #if LH_DATA_OUT_COUNT_4
04777 
                                        output3 += outputOffset;
04778 
                                        #endif
04779 
04780                                         
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]) || (*input3 ^ ein_cache[3]))
04781                                         {
04782                                                 
break;
04783                                         }
04784                                         *output0 = output0[-outputOffset];
04785                                         *output1 = output1[-outputOffset];
04786                                         *output2 = output2[-outputOffset];
04787 
                                        #if LH_DATA_OUT_COUNT_4
04788 
                                        *output3 = output3[-outputOffset];
04789 
                                        #endif
04790 
                                }
04791                         }
04792                         
else if (Mode == 
LH_CALC_ENGINE_P_TO_U)
04793                         {
04794 
                                #if LH_DATA_OUT_COUNT_4
04795 
                                *output4 &= Mask;
04796 
                                #else
04797 
                                *output3 &= Mask;
04798 
                                #endif
04799 
                                while (--i)
04800                                 {
04801                                         input0 += inputOffset;
04802                                         input1 += inputOffset;
04803                                         input2 += inputOffset;
04804                                         input3 += inputOffset;
04805                                         output0 += outputOffset;
04806                                         output1 += outputOffset;
04807                                         output2 += outputOffset;
04808                                         output3 += outputOffset;
04809 
                                        #if LH_DATA_OUT_COUNT_4
04810 
                                        output4 += outputOffset;
04811 
                                        #endif
04812 
                                        if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]) || (*input3 ^ ein_cache[3]))
04813                                         {
04814                                                 
break;
04815                                         }
04816                                         *output0 = output0[-outputOffset];
04817                                         *output1 = output1[-outputOffset];
04818                                         *output2 = output2[-outputOffset];
04819 
                                        #if LH_DATA_OUT_COUNT_4
04820 
                                        *output3 = output3[-outputOffset];
04821                                         *output4 &= Mask;
04822 
                                        #else
04823 
                                        *output3 &= Mask;
04824 
                                        #endif
04825 
                                }
04826                         }
04827                         
else
04828                         {
04829 
                                #if LH_DATA_OUT_COUNT_4
04830 
                                *output4 = (
LH_DATA_OUT_TYPE)*input4;
04831 
                                #else
04832 
                                *output3 = (
LH_DATA_OUT_TYPE)*input4;
04833 
                                #endif
04834 
                                while (--i)
04835                                 {                                                               
04836                                         input0 += inputOffset;
04837                                         input1 += inputOffset;
04838                                         input2 += inputOffset;
04839                                         input3 += inputOffset;
04840                                         input4 += inputOffset;
04841 
04842                                         output0 += outputOffset;
04843                                         output1 += outputOffset;
04844                                         output2 += outputOffset;
04845                                         output3 += outputOffset;
04846 
                                        #if LH_DATA_OUT_COUNT_4
04847 
                                        output4 += outputOffset;
04848 
                                        #endif
04849 
                                        if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]) || (*input3 ^ ein_cache[3]))
04850                                         {
04851                                                 
break;
04852                                         }
04853                                         *output0 = output0[-outputOffset];
04854                                         *output1 = output1[-outputOffset];
04855                                         *output2 = output2[-outputOffset];
04856 
                                        #if LH_DATA_OUT_COUNT_4
04857 
                                        *output3 = output3[-outputOffset];
04858                                         *output4 = (
LH_DATA_OUT_TYPE)*input4;
04859 
                                        #else
04860 
                                        *output3 = (
LH_DATA_OUT_TYPE)*input4;
04861 
                                        #endif
04862 
                                }
04863                         }
04864                 }
04865                 
if (--LineCount)
04866                 {
04867                         j++;
04868                         input0 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[0] + j * calcParam->cmInputBytesPerLine);
04869                         input1 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[1] + j * calcParam->cmInputBytesPerLine);
04870                         input2 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[2] + j * calcParam->cmInputBytesPerLine);
04871                         input3 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[3] + j * calcParam->cmInputBytesPerLine);
04872                         input4 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[4] + j * calcParam->cmInputBytesPerLine);
04873 
04874                         output0 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[0] + j * calcParam->cmOutputBytesPerLine);
04875                         output1 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[1] + j * calcParam->cmOutputBytesPerLine);
04876                         output2 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[2] + j * calcParam->cmOutputBytesPerLine);
04877                         output3 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[3] + j * calcParam->cmOutputBytesPerLine);
04878 
                        #if LH_DATA_OUT_COUNT_4
04879 
                        output4 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[4] + j * calcParam->cmOutputBytesPerLine);
04880 
                        #endif
04881 
                }
04882         }
04883     __asm {
04884                 emms
04885                 frstor      bFPUState
04886         }
04887         
LH_END_PROC(
LH_CALC_PROC_NAME)
04888         
return 0;
04889 }
04890 
#else
04891 
{
04892 
04893 
static LH_UINT16 MMXTab [260] = 
04894 {
04895     0x0000, 0x0000, 0x0000, 0x0000,
04896     0x0001, 0x0001, 0x0001, 0x0001,
04897     0x0002, 0x0002, 0x0002, 0x0002,
04898     0x0003, 0x0003, 0x0003, 0x0003,
04899     0x0004, 0x0004, 0x0004, 0x0004,
04900     0x0005, 0x0005, 0x0005, 0x0005,
04901     0x0006, 0x0006, 0x0006, 0x0006,
04902     0x0007, 0x0007, 0x0007, 0x0007,
04903     0x0008, 0x0008, 0x0008, 0x0008,
04904     0x0009, 0x0009, 0x0009, 0x0009,
04905     0x000A, 0x000A, 0x000A, 0x000a,
04906     0x000B, 0x000B, 0x000B, 0x000b,
04907     0x000C, 0x000C, 0x000C, 0x000c,
04908     0x000D, 0x000D, 0x000D, 0x000d,
04909     0x000E, 0x000E, 0x000E, 0x000e,
04910     0x000F, 0x000F, 0x000F, 0x000f,
04911     0x0010, 0x0010, 0x0010, 0x0010,
04912     0x0011, 0x0011, 0x0011, 0x0011,
04913     0x0012, 0x0012, 0x0012, 0x0012,
04914     0x0013, 0x0013, 0x0013, 0x0013,
04915     0x0014, 0x0014, 0x0014, 0x0014,
04916     0x0015, 0x0015, 0x0015, 0x0015,
04917     0x0016, 0x0016, 0x0016, 0x0016,
04918     0x0017, 0x0017, 0x0017, 0x0017,
04919     0x0018, 0x0018, 0x0018, 0x0018,
04920     0x0019, 0x0019, 0x0019, 0x0019,
04921     0x001A, 0x001A, 0x001A, 0x001a,
04922     0x001B, 0x001B, 0x001B, 0x001b,
04923     0x001C, 0x001C, 0x001C, 0x001c,
04924     0x001D, 0x001D, 0x001D, 0x001d,
04925     0x001E, 0x001E, 0x001E, 0x001e,
04926     0x001F, 0x001F, 0x001F, 0x001f,
04927     0x0020, 0x0020, 0x0020, 0x0020,
04928     0x0021, 0x0021, 0x0021, 0x0021,
04929     0x0022, 0x0022, 0x0022, 0x0022,
04930     0x0023, 0x0023, 0x0023, 0x0023,
04931     0x0024, 0x0024, 0x0024, 0x0024,
04932     0x0025, 0x0025, 0x0025, 0x0025,
04933     0x0026, 0x0026, 0x0026, 0x0026,
04934     0x0027, 0x0027, 0x0027, 0x0027,
04935     0x0028, 0x0028, 0x0028, 0x0028,
04936     0x0029, 0x0029, 0x0029, 0x0029,
04937     0x002A, 0x002A, 0x002A, 0x002a,
04938     0x002B, 0x002B, 0x002B, 0x002b,
04939     0x002C, 0x002C, 0x002C, 0x002c,
04940     0x002D, 0x002D, 0x002D, 0x002d,
04941     0x002E, 0x002E, 0x002E, 0x002e,
04942     0x002F, 0x002F, 0x002F, 0x002f,
04943     0x0030, 0x0030, 0x0030, 0x0030,
04944     0x0031, 0x0031, 0x0031, 0x0031,
04945     0x0032, 0x0032, 0x0032, 0x0032,
04946     0x0033, 0x0033, 0x0033, 0x0033,
04947     0x0034, 0x0034, 0x0034, 0x0034,
04948     0x0035, 0x0035, 0x0035, 0x0035,
04949     0x0036, 0x0036, 0x0036, 0x0036,
04950     0x0037, 0x0037, 0x0037, 0x0037,
04951     0x0038, 0x0038, 0x0038, 0x0038,
04952     0x0039, 0x0039, 0x0039, 0x0039,
04953     0x003A, 0x003A, 0x003A, 0x003a,
04954     0x003B, 0x003B, 0x003B, 0x003b,
04955     0x003C, 0x003C, 0x003C, 0x003c,
04956     0x003D, 0x003D, 0x003D, 0x003d,
04957     0x003E, 0x003E, 0x003E, 0x003e,
04958     0x003F, 0x003F, 0x003F, 0x003f,
04959     0x0040, 0x0040, 0x0040, 0x0040
04960 };
04961 
04962         
LH_UINT32 ein_regb;
04963         
LH_UINT32 ein_regg;
04964         
LH_UINT32 ein_regr;
04965         
LH_DATA_IN_TYPE ein_cache[3];
04966         
LH_LUT_DATA_TYPE * paNewVal0;
04967         
LH_UINT32 ako0;
04968         
LH_UINT32 ako1;
04969         
LH_UINT32 ako2;
04970 
04971         
LH_UINT8        Mode;
04972         
LH_UINT32       PixelCount, LineCount, i, j;
04973         
long inputOffset,outputOffset;
04974         
LH_DATA_IN_TYPE * input0 = (
LH_DATA_IN_TYPE *)calcParam->inputData[0];
04975         
LH_DATA_IN_TYPE * input1 = (
LH_DATA_IN_TYPE *)calcParam->inputData[1];
04976         
LH_DATA_IN_TYPE * input2 = (
LH_DATA_IN_TYPE *)calcParam->inputData[2];
04977         
LH_DATA_IN_TYPE * input3 = (
LH_DATA_IN_TYPE *)calcParam->inputData[3];
04978 
04979         
LH_DATA_OUT_TYPE * output0 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[0];
04980         
LH_DATA_OUT_TYPE * output1 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[1];
04981         
LH_DATA_OUT_TYPE * output2 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[2];
04982         
LH_DATA_OUT_TYPE * output3 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[3];
04983         
LH_DATA_OUT_TYPE * output4 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[4];
04984 
04985         
LH_UINT16 * My_InputLut = (
LH_UINT16 *)lutParam->inputLut;
04986         
LH_LUT_DATA_TYPE * My_OutputLut = (
LH_LUT_DATA_TYPE *)lutParam->outputLut;
04987         
LH_LUT_DATA_TYPE * My_ColorLut = (
LH_LUT_DATA_TYPE *)lutParam->colorLut;
04988 
04989         
LH_DATA_OUT_TYPE Mask = (
LH_DATA_OUT_TYPE)-1;
04990 
04991         
LH_UINT16 ak[4];
04992         
LH_UINT8    bFPUState [108];
04993 
04994 
#ifdef Test_mode
04995 
        LH_UINT16 TestRam[4];
04996 
#endif
04997 
#ifdef DEBUG_OUTPUT
04998 
        CMError err = 
noErr;
04999 
#endif
05000 
        LH_START_PROC(LH_CALC_PROC_NAME)
05001 
05002         #
if LH_DATA_IN_SIZE_16
05003         inputOffset = (
long)calcParam->cmInputPixelOffset / 2;
05004 
        #else
05005 
        inputOffset = (
long)calcParam->cmInputPixelOffset;
05006 
        #endif
05007 
        #if LH_DATA_OUT_SIZE_16
05008 
        outputOffset = (
long)calcParam->cmOutputPixelOffset / 2;
05009 
        #else
05010 
        outputOffset = (
long)calcParam->cmOutputPixelOffset;
05011 
        #endif
05012 
05013         
if (calcParam->clearMask)
05014                 Mask = 0;
05015         Mode = 
LH_CALC_ENGINE_UNDEF_MODE;
05016 
05017 
05018         
if ((calcParam->cmInputPixelOffset * calcParam->cmPixelPerLine == calcParam->cmInputBytesPerLine) && (calcParam->cmOutputPixelOffset * calcParam->cmPixelPerLine == calcParam->cmOutputBytesPerLine))
05019         {
05020                 PixelCount = calcParam->cmPixelPerLine * calcParam->cmLineCount;
05021                 LineCount = 1;
05022         }
05023         
else
05024         {
05025                 PixelCount = calcParam->cmPixelPerLine;
05026                 LineCount = calcParam->cmLineCount;
05027         }
05028         
if (calcParam->copyAlpha )
05029         {
05030                         Mode = 
LH_CALC_ENGINE_U_TO_U;
05031         }
05032         
else
05033         {
05034                 
if (calcParam->clearMask)
05035                         Mode = 
LH_CALC_ENGINE_P_TO_U;
05036                 
else
05037                         Mode = 
LH_CALC_ENGINE_P_TO_P;
05038         }
05039     __asm {
05040             fnsave  bFPUState
05041                         pxor            mm0,mm0
05042                         pxor            mm1,mm1
05043                         pxor            mm2,mm2
05044                         pxor            mm3,mm3
05045                         pxor            mm4,mm4
05046                         pxor            mm5,mm5
05047                         pxor            mm6,mm6
05048                         pxor            mm7,mm7
05049         }
05050         j = 0;
05051         
while (LineCount)
05052         {
05053                 i = PixelCount;
05054                 
while (i)
05055                 {
05056 
                        #if LH_LUT_DATA_SIZE_16
05057 
                        #if LH_DATA_IN_SIZE_16 || LH_DATA_OUT_SIZE_16
05058 
                        register LH_UINT32 ko;
05059 
                        #endif
05060 
                        #if LH_DATA_IN_SIZE_16
05061 
                        register LH_DATA_IN_TYPE aValIn;
05062 
                #endif
05063 
                        #if LH_DATA_OUT_SIZE_16
05064 
                        register LH_UINT32 aVal;
05065 
                #endif
05066 
                        #if LH_DATA_IN_SIZE_16
05067 
                                aValIn = (ein_cache[0]=*input0) - ( *input0 >> ( 
LH_ADR_BREIT_EIN_LUT ));
05068                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
05069                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 0 << 
LH_ADR_BREIT_EIN_LUT );
05070                         ein_regr = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >>( 16-
LH_ADR_BREIT_EIN_LUT );
05071                         
05072                                 aValIn = (ein_cache[1]=*input1) - ( *input1 >> ( 
LH_ADR_BREIT_EIN_LUT ));
05073                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
05074                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 1 << 
LH_ADR_BREIT_EIN_LUT );
05075                         ein_regg = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
05076                         
05077                                 aValIn = (ein_cache[2]=*input2) - ( *input2 >> ( 
LH_ADR_BREIT_EIN_LUT ));
05078                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
05079                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 2 << 
LH_ADR_BREIT_EIN_LUT );
05080                         ein_regb = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
05081 
                        #else
05082 
                        ein_regr = My_InputLut[(ein_cache[0]=*input0) + ( 0 << 
LH_ADR_BREIT_EIN_LUT )];
05083                         ein_regg = My_InputLut[(ein_cache[1]=*input1) + ( 1 << 
LH_ADR_BREIT_EIN_LUT )];
05084                         ein_regb = My_InputLut[(ein_cache[2]=*input2) + ( 2 << 
LH_ADR_BREIT_EIN_LUT )];
05085 
                        #endif
05086 
                        #else
05087 
                        #if LH_DATA_IN_SIZE_16
05088 
                        register LH_DATA_IN_TYPE aValIn;
05089                         
register LH_UINT32 ko;
05090                                 aValIn = (ein_cache[0]=*input0) - ( *input0 >> ( 
LH_ADR_BREIT_EIN_LUT ));
05091                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
05092                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 0 << 
LH_ADR_BREIT_EIN_LUT );
05093                         ein_regr = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >>( 10-
LH_ADR_BREIT_EIN_LUT );
05094                         
05095                                 aValIn = (ein_cache[1]=*input1) - ( *input1 >> ( 
LH_ADR_BREIT_EIN_LUT ));
05096                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
05097                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 1 << 
LH_ADR_BREIT_EIN_LUT );
05098                         ein_regg = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
05099                         
05100                                 aValIn = (ein_cache[2]=*input2) - ( *input2 >> ( 
LH_ADR_BREIT_EIN_LUT ));
05101                                 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
05102                                 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 2 << 
LH_ADR_BREIT_EIN_LUT );
05103                         ein_regb = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
05104                         
05105 
05106 
05107 
                        #else
05108 
                        ein_regr = My_InputLut[(ein_cache[0]=*input0) + ( 0 << 
LH_ADR_BREIT_EIN_LUT )];
05109                         ein_regg = My_InputLut[(ein_cache[1]=*input1) + ( 1 << 
LH_ADR_BREIT_EIN_LUT )];
05110                         ein_regb = My_InputLut[(ein_cache[2]=*input2) + ( 2 << 
LH_ADR_BREIT_EIN_LUT )];
05111 
                        #endif
05112 
                        #endif
05113 
                        paNewVal0 = (
LH_LUT_DATA_TYPE *)My_ColorLut + 
05114                                                 ((((((ein_regr & 
LH_BIT_MASKE_ADR) << 
LH_BIT_BREIT_ADR) +
05115                                                          (ein_regg & 
LH_BIT_MASKE_ADR))>> (
LH_BIT_BREIT_SELEKTOR-
LH_BIT_BREIT_ADR)) + 
05116                                                      (ein_regb >> 
LH_BIT_BREIT_SELEKTOR))*
LH_DATA_OUT_COUNT);
05117                         ein_regr &= 
LH_BIT_MASKE_SELEKTOR;
05118                         ein_regg &= 
LH_BIT_MASKE_SELEKTOR;
05119                         ein_regb &= 
LH_BIT_MASKE_SELEKTOR;
05120                         
if (ein_regb >= ein_regr)
05121                         {
05122                                 
if (ein_regg >= ein_regr)
05123                                 {
05124                                         
if (ein_regb >= ein_regg)
05125                                         {
05126 
05127                                                 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regb;
05128                                                 ako1 = ein_regb - ein_regg;
05129                                                 ako2 = ein_regg - ein_regr;
05130 
                                                #if LH_LUT_DATA_SIZE_16
05131 
                                                #if LH_DATA_OUT_SIZE_16
05132 
                                
05133                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05134                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05135                                                                                                   ako2          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05136                                                                                                   ein_regr      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05137                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05138                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05139                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05140                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
05141                                         *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05142 
05143                                                 paNewVal0++;
05144                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05145                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05146                                                                                                   ako2          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05147                                                                                                   ein_regr      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05148                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05149                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05150                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05151                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
05152                                         *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05153 
05154                                                 paNewVal0++;
05155                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05156                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05157                                                                                                   ako2          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05158                                                                                                   ein_regr      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05159                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05160                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05161                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05162                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
05163                                         *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05164 
05165 
                                                #if LH_DATA_OUT_COUNT_4
05166 
                                                paNewVal0++;
05167                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05168                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05169                                                                                                   ako2          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05170                                                                                                   ein_regr      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05171                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05172                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05173                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05174                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
05175                                         *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05176 
                                                #endif
05177 
                                                
05178 
                                                #else
05179 
                                                *output0 = My_OutputLut[((ako0          * paNewVal0[0] + 
05180                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05181                                                                                                   ako2          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05182                                                                                                   ein_regr      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05183                                                 paNewVal0++;
05184                                                 *output1 = My_OutputLut[((ako0          * paNewVal0[0] + 
05185                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05186                                                                                                   ako2          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05187                                                                                                   ein_regr      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05188                                                 paNewVal0++;
05189                                                 *output2 = My_OutputLut[((ako0          * paNewVal0[0] + 
05190                                                                                               ako1              * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05191                                                                                               ako2              * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05192                                                                                               ein_regr  * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05193 
                                                #if LH_DATA_OUT_COUNT_4
05194 
                                                paNewVal0++;
05195                                                 *output3 = My_OutputLut[((ako0          * paNewVal0[0] + 
05196                                                                                               ako1              * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05197                                                                                               ako2              * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05198                                                                                               ein_regr  * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05199 
                                                #endif
05200 
                                                #endif
05201 
                                                
05202 
                                                #else
05203 
     __asm { 
05204             mov         eax, paNewVal0
05205 
05206                         mov                     ebx, ako0
05207             movq        mm5, MMXTab [ebx*8]
05208 
#ifdef Test_mode
05209 
                        movq            TestRam,mm5
05210 
#endif
05211 
                        punpcklbw       mm1,[eax] 
05212                         mov                     ebx, ako1
05213                         psrlw       mm1,8
05214 
#ifdef Test_mode
05215 
                        movq            TestRam,mm1
05216 
#endif
05217 
05218                         pmullw          mm5,mm1
05219             movq        mm6, MMXTab [ebx*8]
05220 
#ifdef Test_mode
05221 
                        movq            TestRam,mm6
05222 
#endif
05223 
                        punpcklbw   mm2,[eax+(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
05224                         mov                     ebx, ako2
05225                         psrlw       mm2,8
05226 
#ifdef Test_mode
05227 
                        movq            TestRam,mm2
05228 
#endif
05229 
                        pmullw          mm6,mm2
05230 
05231                         movq        mm7, MMXTab [ebx*8]
05232                         paddusw         mm5,mm6
05233 
#ifdef Test_mode
05234 
                        movq            TestRam,mm7
05235 
#endif
05236 
                        punpcklbw   mm1,[eax+(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
05237                         mov                     ebx, ein_regr
05238                         psrlw       mm1,8
05239 
#ifdef Test_mode
05240 
                        movq            TestRam,mm1
05241 
#endif
05242 
                        pmullw          mm7,mm1
05243 
05244                         movq        mm6, MMXTab [ebx*8]
05245                         paddusw         mm5,mm7
05246 
#ifdef Test_mode
05247 
                        movq            TestRam,mm7
05248 
#endif
05249 
                        punpcklbw   mm2,[eax+(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
05250                         psrlw       mm2,8
05251 
#ifdef Test_mode
05252 
                        movq            TestRam,mm2
05253 
#endif
05254 
                        pmullw          mm6,mm2
05255                         paddusw         mm5,mm6
05256 
#ifdef Test_mode
05257 
                        movq            TestRam,mm6
05258 
#endif
05259 
05260 
05261                         xor                     eax,eax
05262                         psrlw           mm5,
LH_DATA_SHR
05263                         movq            ak,mm5
05264 
05265                         mov                     ax,ak
05266                         mov                     esi,My_OutputLut
05267                         mov                     al,
BYTE PTR[eax+esi]
05268                         mov                     edi,output0
05269                         mov                     [edi], al
05270                         mov                     ax,ak+2
05271                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
05272                         mov                     edi,output1
05273                         mov                     [edi], al
05274                         mov                     ax,ak+4
05275                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
05276                         mov                     edi,output2
05277                         mov                     [edi], al
05278 
                        #if LH_DATA_OUT_COUNT_4
05279 
                        mov                     ax,ak+6
05280                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
05281                         mov                     edi,output3
05282                         mov                     [edi], al
05283 
                        #endif
05284 
                        
05285 
05286          }
05287 
                                                #endif
05288 
                                        }
05289                                         
else
05290                                         {
05291                                                 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regg;
05292                                                 ako1 = ein_regg - ein_regb;
05293                                                 ako2 = ein_regb - ein_regr;
05294 
                                                #if LH_LUT_DATA_SIZE_16
05295 
                                                #if LH_DATA_OUT_SIZE_16
05296 
                                
05297                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05298                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05299                                                                                                   ako2          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05300                                                                                                   ein_regr      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05301                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05302                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05303                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05304                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
05305                                         *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05306 
05307                                                 paNewVal0++;
05308                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05309                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05310                                                                                                   ako2          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05311                                                                                                   ein_regr      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05312                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05313                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05314                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05315                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
05316                                         *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05317 
05318                                                 paNewVal0++;
05319                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05320                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05321                                                                                                   ako2          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05322                                                                                                   ein_regr      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05323                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05324                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05325                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05326                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
05327                                         *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05328 
05329 
                                                #if LH_DATA_OUT_COUNT_4
05330 
                                                paNewVal0++;
05331                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05332                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05333                                                                                                   ako2          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05334                                                                                                   ein_regr      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05335                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05336                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05337                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05338                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
05339                                         *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05340 
                                                #endif
05341 
                                                
05342 
                                                #else
05343 
                                                *output0 = My_OutputLut[((ako0          * paNewVal0[0] + 
05344                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05345                                                                                                   ako2          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05346                                                                                                   ein_regr      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05347                                                 paNewVal0++;
05348                                                 *output1 = My_OutputLut[((ako0          * paNewVal0[0] + 
05349                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05350                                                                                                   ako2          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05351                                                                                                   ein_regr      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05352                                                 paNewVal0++;
05353                                                 *output2 = My_OutputLut[((ako0          * paNewVal0[0] + 
05354                                                                                               ako1              * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05355                                                                                               ako2              * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05356                                                                                               ein_regr  * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05357 
                                                #if LH_DATA_OUT_COUNT_4
05358 
                                                paNewVal0++;
05359                                                 *output3 = My_OutputLut[((ako0          * paNewVal0[0] + 
05360                                                                                               ako1              * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05361                                                                                               ako2              * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05362                                                                                               ein_regr  * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05363 
                                                #endif
05364 
                                                #endif
05365 
                                                
05366 
                                                #else
05367 
     __asm { 
05368             mov         eax, paNewVal0
05369 
05370                         mov                     ebx, ako0
05371             movq        mm5, MMXTab [ebx*8]
05372 
#ifdef Test_mode
05373 
                        movq            TestRam,mm5
05374 
#endif
05375 
                        punpcklbw       mm1,[eax] 
05376                         mov                     ebx, ako1
05377                         psrlw       mm1,8
05378 
#ifdef Test_mode
05379 
                        movq            TestRam,mm1
05380 
#endif
05381 
05382                         pmullw          mm5,mm1
05383             movq        mm6, MMXTab [ebx*8]
05384 
#ifdef Test_mode
05385 
                        movq            TestRam,mm6
05386 
#endif
05387 
                        punpcklbw   mm2,[eax+(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
05388                         mov                     ebx, ako2
05389                         psrlw       mm2,8
05390 
#ifdef Test_mode
05391 
                        movq            TestRam,mm2
05392 
#endif
05393 
                        pmullw          mm6,mm2
05394 
05395                         movq        mm7, MMXTab [ebx*8]
05396                         paddusw         mm5,mm6
05397 
#ifdef Test_mode
05398 
                        movq            TestRam,mm7
05399 
#endif
05400 
                        punpcklbw   mm1,[eax+(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
05401                         mov                     ebx, ein_regr
05402                         psrlw       mm1,8
05403 
#ifdef Test_mode
05404 
                        movq            TestRam,mm1
05405 
#endif
05406 
                        pmullw          mm7,mm1
05407 
05408                         movq        mm6, MMXTab [ebx*8]
05409                         paddusw         mm5,mm7
05410 
#ifdef Test_mode
05411 
                        movq            TestRam,mm7
05412 
#endif
05413 
                        punpcklbw   mm2,[eax+(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
05414                         psrlw       mm2,8
05415 
#ifdef Test_mode
05416 
                        movq            TestRam,mm2
05417 
#endif
05418 
                        pmullw          mm6,mm2
05419                         paddusw         mm5,mm6
05420 
#ifdef Test_mode
05421 
                        movq            TestRam,mm6
05422 
#endif
05423 
05424 
05425                         xor                     eax,eax
05426                         psrlw           mm5,
LH_DATA_SHR
05427                         movq            ak,mm5
05428 
05429                         mov                     ax,ak
05430                         mov                     esi,My_OutputLut
05431                         mov                     al,
BYTE PTR[eax+esi]
05432                         mov                     edi,output0
05433                         mov                     [edi], al
05434                         mov                     ax,ak+2
05435                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
05436                         mov                     edi,output1
05437                         mov                     [edi], al
05438                         mov                     ax,ak+4
05439                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
05440                         mov                     edi,output2
05441                         mov                     [edi], al
05442 
                        #if LH_DATA_OUT_COUNT_4
05443 
                        mov                     ax,ak+6
05444                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
05445                         mov                     edi,output3
05446                         mov                     [edi], al
05447 
                        #endif
05448 
                        
05449 
05450          }
05451 
05452 
                                                #endif
05453 
                                        }
05454                                 }
05455                                 
else
05456                                 {
05457                                                 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regb;
05458                                                 ako1 = ein_regb - ein_regr;
05459                                                 ako2 = ein_regr - ein_regg;
05460 
                                                #if LH_LUT_DATA_SIZE_16
05461 
                                                #if LH_DATA_OUT_SIZE_16
05462 
                                
05463                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05464                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05465                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05466                                                                                                   ein_regg      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05467                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05468                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05469                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05470                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
05471                                         *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05472 
05473                                                 paNewVal0++;
05474                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05475                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05476                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05477                                                                                                   ein_regg      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05478                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05479                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05480                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05481                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
05482                                         *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05483 
05484                                                 paNewVal0++;
05485                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05486                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05487                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05488                                                                                                   ein_regg      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05489                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05490                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05491                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05492                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
05493                                         *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05494 
05495 
                                                #if LH_DATA_OUT_COUNT_4
05496 
                                                paNewVal0++;
05497                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05498                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05499                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05500                                                                                                   ein_regg      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05501                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05502                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05503                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05504                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
05505                                         *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05506 
                                                #endif
05507 
                                                
05508 
                                                #else
05509 
                                                *output0 = My_OutputLut[((ako0          * paNewVal0[0] + 
05510                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05511                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05512                                                                                                   ein_regg      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05513                                                 paNewVal0++;
05514                                                 *output1 = My_OutputLut[((ako0          * paNewVal0[0] + 
05515                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05516                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05517                                                                                                   ein_regg      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05518                                                 paNewVal0++;
05519                                                 *output2 = My_OutputLut[((ako0          * paNewVal0[0] + 
05520                                                                                               ako1              * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05521                                                                                               ako2              * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05522                                                                                               ein_regg  * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05523 
                                                #if LH_DATA_OUT_COUNT_4
05524 
                                                paNewVal0++;
05525                                                 *output3 = My_OutputLut[((ako0          * paNewVal0[0] + 
05526                                                                                               ako1              * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05527                                                                                               ako2              * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05528                                                                                               ein_regg  * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05529 
                                                #endif
05530 
                                                #endif
05531 
                                                
05532 
                                                #else
05533 
     __asm { 
05534             mov         eax, paNewVal0
05535 
05536                         mov                     ebx, ako0
05537             movq        mm5, MMXTab [ebx*8]
05538 
#ifdef Test_mode
05539 
                        movq            TestRam,mm5
05540 
#endif
05541 
                        punpcklbw       mm1,[eax] 
05542                         mov                     ebx, ako1
05543                         psrlw       mm1,8
05544 
#ifdef Test_mode
05545 
                        movq            TestRam,mm1
05546 
#endif
05547 
05548                         pmullw          mm5,mm1
05549             movq        mm6, MMXTab [ebx*8]
05550 
#ifdef Test_mode
05551 
                        movq            TestRam,mm6
05552 
#endif
05553 
                        punpcklbw   mm2,[eax+(((((0 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
05554                         mov                     ebx, ako2
05555                         psrlw       mm2,8
05556 
#ifdef Test_mode
05557 
                        movq            TestRam,mm2
05558 
#endif
05559 
                        pmullw          mm6,mm2
05560 
05561                         movq        mm7, MMXTab [ebx*8]
05562                         paddusw         mm5,mm6
05563 
#ifdef Test_mode
05564 
                        movq            TestRam,mm7
05565 
#endif
05566 
                        punpcklbw   mm1,[eax+(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
05567                         mov                     ebx, ein_regg
05568                         psrlw       mm1,8
05569 
#ifdef Test_mode
05570 
                        movq            TestRam,mm1
05571 
#endif
05572 
                        pmullw          mm7,mm1
05573 
05574                         movq        mm6, MMXTab [ebx*8]
05575                         paddusw         mm5,mm7
05576 
#ifdef Test_mode
05577 
                        movq            TestRam,mm7
05578 
#endif
05579 
                        punpcklbw   mm2,[eax+(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
05580                         psrlw       mm2,8
05581 
#ifdef Test_mode
05582 
                        movq            TestRam,mm2
05583 
#endif
05584 
                        pmullw          mm6,mm2
05585                         paddusw         mm5,mm6
05586 
#ifdef Test_mode
05587 
                        movq            TestRam,mm6
05588 
#endif
05589 
05590 
05591                         xor                     eax,eax
05592                         psrlw           mm5,
LH_DATA_SHR
05593                         movq            ak,mm5
05594 
05595                         mov                     ax,ak
05596                         mov                     esi,My_OutputLut
05597                         mov                     al,
BYTE PTR[eax+esi]
05598                         mov                     edi,output0
05599                         mov                     [edi], al
05600                         mov                     ax,ak+2
05601                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
05602                         mov                     edi,output1
05603                         mov                     [edi], al
05604                         mov                     ax,ak+4
05605                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
05606                         mov                     edi,output2
05607                         mov                     [edi], al
05608 
                        #if LH_DATA_OUT_COUNT_4
05609 
                        mov                     ax,ak+6
05610                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
05611                         mov                     edi,output3
05612                         mov                     [edi], al
05613 
                        #endif
05614 
                        
05615 
05616          }
05617 
                                                #endif
05618 
                                }
05619                         }
05620                         
else
05621                         {
05622                                 
if (ein_regg >= ein_regr)
05623                                 {
05624                                         ako0 = (
LH_ADR_BEREICH_SEL) - ein_regg;
05625                                         ako1 = ein_regg - ein_regr;
05626                                         ako2 = ein_regr - ein_regb;
05627 
                                                #if LH_LUT_DATA_SIZE_16
05628 
                                                #if LH_DATA_OUT_SIZE_16
05629 
                                
05630                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05631                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05632                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05633                                                                                                   ein_regb      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05634                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05635                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05636                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05637                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
05638                                         *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05639 
05640                                                 paNewVal0++;
05641                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05642                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05643                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05644                                                                                                   ein_regb      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05645                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05646                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05647                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05648                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
05649                                         *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05650 
05651                                                 paNewVal0++;
05652                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05653                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05654                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05655                                                                                                   ein_regb      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05656                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05657                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05658                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05659                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
05660                                         *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05661 
05662 
                                                #if LH_DATA_OUT_COUNT_4
05663 
                                                paNewVal0++;
05664                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05665                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05666                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05667                                                                                                   ein_regb      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05668                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05669                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05670                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05671                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
05672                                         *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05673 
                                                #endif
05674 
                                                
05675 
                                                #else
05676 
                                                *output0 = My_OutputLut[((ako0          * paNewVal0[0] + 
05677                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05678                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05679                                                                                                   ein_regb      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05680                                                 paNewVal0++;
05681                                                 *output1 = My_OutputLut[((ako0          * paNewVal0[0] + 
05682                                                                                                   ako1          * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05683                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05684                                                                                                   ein_regb      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05685                                                 paNewVal0++;
05686                                                 *output2 = My_OutputLut[((ako0          * paNewVal0[0] + 
05687                                                                                               ako1              * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05688                                                                                               ako2              * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05689                                                                                               ein_regb  * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05690 
                                                #if LH_DATA_OUT_COUNT_4
05691 
                                                paNewVal0++;
05692                                                 *output3 = My_OutputLut[((ako0          * paNewVal0[0] + 
05693                                                                                               ako1              * paNewVal0[(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05694                                                                                               ako2              * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05695                                                                                               ein_regb  * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05696 
                                                #endif
05697 
                                                #endif
05698 
                                                
05699 
                                                #else
05700 
     __asm { 
05701             mov         eax, paNewVal0
05702 
05703                         mov                     ebx, ako0
05704             movq        mm5, MMXTab [ebx*8]
05705 
#ifdef Test_mode
05706 
                        movq            TestRam,mm5
05707 
#endif
05708 
                        punpcklbw       mm1,[eax] 
05709                         mov                     ebx, ako1
05710                         psrlw       mm1,8
05711 
#ifdef Test_mode
05712 
                        movq            TestRam,mm1
05713 
#endif
05714 
05715                         pmullw          mm5,mm1
05716             movq        mm6, MMXTab [ebx*8]
05717 
#ifdef Test_mode
05718 
                        movq            TestRam,mm6
05719 
#endif
05720 
                        punpcklbw   mm2,[eax+(((((0 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
05721                         mov                     ebx, ako2
05722                         psrlw       mm2,8
05723 
#ifdef Test_mode
05724 
                        movq            TestRam,mm2
05725 
#endif
05726 
                        pmullw          mm6,mm2
05727 
05728                         movq        mm7, MMXTab [ebx*8]
05729                         paddusw         mm5,mm6
05730 
#ifdef Test_mode
05731 
                        movq            TestRam,mm7
05732 
#endif
05733 
                        punpcklbw   mm1,[eax+(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
05734                         mov                     ebx, ein_regb
05735                         psrlw       mm1,8
05736 
#ifdef Test_mode
05737 
                        movq            TestRam,mm1
05738 
#endif
05739 
                        pmullw          mm7,mm1
05740 
05741                         movq        mm6, MMXTab [ebx*8]
05742                         paddusw         mm5,mm7
05743 
#ifdef Test_mode
05744 
                        movq            TestRam,mm7
05745 
#endif
05746 
                        punpcklbw   mm2,[eax+(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
05747                         psrlw       mm2,8
05748 
#ifdef Test_mode
05749 
                        movq            TestRam,mm2
05750 
#endif
05751 
                        pmullw          mm6,mm2
05752                         paddusw         mm5,mm6
05753 
#ifdef Test_mode
05754 
                        movq            TestRam,mm6
05755 
#endif
05756 
05757 
05758                         xor                     eax,eax
05759                         psrlw           mm5,
LH_DATA_SHR
05760                         movq            ak,mm5
05761 
05762                         mov                     ax,ak
05763                         mov                     esi,My_OutputLut
05764                         mov                     al,
BYTE PTR[eax+esi]
05765                         mov                     edi,output0
05766                         mov                     [edi], al
05767                         mov                     ax,ak+2
05768                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
05769                         mov                     edi,output1
05770                         mov                     [edi], al
05771                         mov                     ax,ak+4
05772                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
05773                         mov                     edi,output2
05774                         mov                     [edi], al
05775 
                        #if LH_DATA_OUT_COUNT_4
05776 
                        mov                     ax,ak+6
05777                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
05778                         mov                     edi,output3
05779                         mov                     [edi], al
05780 
                        #endif
05781 
                        
05782 
05783          }
05784 
                                                #endif
05785 
                                }
05786                                 
else
05787                                 {
05788                                         
if (ein_regb >= ein_regg)
05789                                         {
05790                                                 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regr;
05791                                                 ako1 = ein_regr - ein_regb;
05792                                                 ako2 = ein_regb - ein_regg;
05793 
                                                #if LH_LUT_DATA_SIZE_16
05794 
                                                #if LH_DATA_OUT_SIZE_16
05795 
                                
05796                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05797                                                                                                   ako1          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05798                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05799                                                                                                   ein_regg      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05800                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05801                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05802                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05803                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
05804                                         *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05805 
05806                                                 paNewVal0++;
05807                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05808                                                                                                   ako1          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05809                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05810                                                                                                   ein_regg      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05811                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05812                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05813                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05814                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
05815                                         *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05816 
05817                                                 paNewVal0++;
05818                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05819                                                                                                   ako1          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05820                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05821                                                                                                   ein_regg      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05822                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05823                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05824                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05825                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
05826                                         *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05827 
05828 
                                                #if LH_DATA_OUT_COUNT_4
05829 
                                                paNewVal0++;
05830                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05831                                                                                                   ako1          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05832                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05833                                                                                                   ein_regg      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05834                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05835                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05836                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05837                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
05838                                         *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05839 
                                                #endif
05840 
                                                
05841 
                                                #else
05842 
                                                *output0 = My_OutputLut[((ako0          * paNewVal0[0] + 
05843                                                                                                   ako1          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05844                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05845                                                                                                   ein_regg      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05846                                                 paNewVal0++;
05847                                                 *output1 = My_OutputLut[((ako0          * paNewVal0[0] + 
05848                                                                                                   ako1          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05849                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05850                                                                                                   ein_regg      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05851                                                 paNewVal0++;
05852                                                 *output2 = My_OutputLut[((ako0          * paNewVal0[0] + 
05853                                                                                               ako1              * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05854                                                                                               ako2              * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05855                                                                                               ein_regg  * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05856 
                                                #if LH_DATA_OUT_COUNT_4
05857 
                                                paNewVal0++;
05858                                                 *output3 = My_OutputLut[((ako0          * paNewVal0[0] + 
05859                                                                                               ako1              * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05860                                                                                               ako2              * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)] + 
05861                                                                                               ein_regg  * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
05862 
                                                #endif
05863 
                                                #endif
05864 
                                                
05865 
                                                #else
05866 
     __asm { 
05867             mov         eax, paNewVal0
05868 
05869                         mov                     ebx, ako0
05870             movq        mm5, MMXTab [ebx*8]
05871 
#ifdef Test_mode
05872 
                        movq            TestRam,mm5
05873 
#endif
05874 
                        punpcklbw       mm1,[eax] 
05875                         mov                     ebx, ako1
05876                         psrlw       mm1,8
05877 
#ifdef Test_mode
05878 
                        movq            TestRam,mm1
05879 
#endif
05880 
05881                         pmullw          mm5,mm1
05882             movq        mm6, MMXTab [ebx*8]
05883 
#ifdef Test_mode
05884 
                        movq            TestRam,mm6
05885 
#endif
05886 
                        punpcklbw   mm2,[eax+(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
05887                         mov                     ebx, ako2
05888                         psrlw       mm2,8
05889 
#ifdef Test_mode
05890 
                        movq            TestRam,mm2
05891 
#endif
05892 
                        pmullw          mm6,mm2
05893 
05894                         movq        mm7, MMXTab [ebx*8]
05895                         paddusw         mm5,mm6
05896 
#ifdef Test_mode
05897 
                        movq            TestRam,mm7
05898 
#endif
05899 
                        punpcklbw   mm1,[eax+(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
05900                         mov                     ebx, ein_regg
05901                         psrlw       mm1,8
05902 
#ifdef Test_mode
05903 
                        movq            TestRam,mm1
05904 
#endif
05905 
                        pmullw          mm7,mm1
05906 
05907                         movq        mm6, MMXTab [ebx*8]
05908                         paddusw         mm5,mm7
05909 
#ifdef Test_mode
05910 
                        movq            TestRam,mm7
05911 
#endif
05912 
                        punpcklbw   mm2,[eax+(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
05913                         psrlw       mm2,8
05914 
#ifdef Test_mode
05915 
                        movq            TestRam,mm2
05916 
#endif
05917 
                        pmullw          mm6,mm2
05918                         paddusw         mm5,mm6
05919 
#ifdef Test_mode
05920 
                        movq            TestRam,mm6
05921 
#endif
05922 
05923 
05924                         xor                     eax,eax
05925                         psrlw           mm5,
LH_DATA_SHR
05926                         movq            ak,mm5
05927 
05928                         mov                     ax,ak
05929                         mov                     esi,My_OutputLut
05930                         mov                     al,
BYTE PTR[eax+esi]
05931                         mov                     edi,output0
05932                         mov                     [edi], al
05933                         mov                     ax,ak+2
05934                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
05935                         mov                     edi,output1
05936                         mov                     [edi], al
05937                         mov                     ax,ak+4
05938                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
05939                         mov                     edi,output2
05940                         mov                     [edi], al
05941 
                        #if LH_DATA_OUT_COUNT_4
05942 
                        mov                     ax,ak+6
05943                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
05944                         mov                     edi,output3
05945                         mov                     [edi], al
05946 
                        #endif
05947 
                        
05948 
05949          }
05950 
                                                #endif
05951 
                                        }
05952                                         
else
05953                                         {
05954                                                 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regr;
05955                                                 ako1 = ein_regr - ein_regg;
05956                                                 ako2 = ein_regg - ein_regb;
05957 
                                                #if LH_LUT_DATA_SIZE_16
05958 
                                                #if LH_DATA_OUT_SIZE_16
05959 
                                
05960                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05961                                                                                                   ako1          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05962                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05963                                                                                                   ein_regb      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05964                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05965                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05966                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05967                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 0 << 
LH_ADR_BREIT_AUS_LUT );
05968                                         *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05969 
05970                                                 paNewVal0++;
05971                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05972                                                                                                   ako1          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05973                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05974                                                                                                   ein_regb      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05975                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05976                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05977                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05978                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 1 << 
LH_ADR_BREIT_AUS_LUT );
05979                                         *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05980 
05981                                                 paNewVal0++;
05982                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05983                                                                                                   ako1          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05984                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05985                                                                                                   ein_regb      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05986                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05987                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
05988                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
05989                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 2 << 
LH_ADR_BREIT_AUS_LUT );
05990                                         *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
05991 
05992 
                                                #if LH_DATA_OUT_COUNT_4
05993 
                                                paNewVal0++;
05994                                                 aVal =                                   (ako0          * paNewVal0[0] + 
05995                                                                                                   ako1          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05996                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
05997                                                                                                   ein_regb      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]);
05998                                                 aVal = aVal + ( aVal >> ( 
LH_LUT_DATA_SHR ));
05999                                                 aVal = aVal - ( aVal >> ( 
LH_ADR_BREIT_AUS_LUT ));
06000                                                 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
06001                                                 aVal = (aVal >> ( 
LH_DATA_SHR )) + ( 3 << 
LH_ADR_BREIT_AUS_LUT );
06002                                         *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<( 
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
06003 
                                                #endif
06004 
                                                
06005 
                                                #else
06006 
                                                *output0 = My_OutputLut[((ako0          * paNewVal0[0] + 
06007                                                                                                   ako1          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
06008                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
06009                                                                                                   ein_regb      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
06010                                                 paNewVal0++;
06011                                                 *output1 = My_OutputLut[((ako0          * paNewVal0[0] + 
06012                                                                                                   ako1          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
06013                                                                                                   ako2          * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
06014                                                                                                   ein_regb      * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
06015                                                 paNewVal0++;
06016                                                 *output2 = My_OutputLut[((ako0          * paNewVal0[0] + 
06017                                                                                               ako1              * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
06018                                                                                               ako2              * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
06019                                                                                               ein_regb  * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
06020 
                                                #if LH_DATA_OUT_COUNT_4
06021 
                                                paNewVal0++;
06022                                                 *output3 = My_OutputLut[((ako0          * paNewVal0[0] + 
06023                                                                                               ako1              * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
06024                                                                                               ako2              * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)] + 
06025                                                                                               ein_regb  * paNewVal0[(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
06026 
                                                #endif
06027 
                                                #endif
06028 
                                                
06029 
                                                #else
06030 
     __asm { 
06031             mov         eax, paNewVal0
06032 
06033                         mov                     ebx, ako0
06034             movq        mm5, MMXTab [ebx*8]
06035 
#ifdef Test_mode
06036 
                        movq            TestRam,mm5
06037 
#endif
06038 
                        punpcklbw       mm1,[eax] 
06039                         mov                     ebx, ako1
06040                         psrlw       mm1,8
06041 
#ifdef Test_mode
06042 
                        movq            TestRam,mm1
06043 
#endif
06044 
06045                         pmullw          mm5,mm1
06046             movq        mm6, MMXTab [ebx*8]
06047 
#ifdef Test_mode
06048 
                        movq            TestRam,mm6
06049 
#endif
06050 
                        punpcklbw   mm2,[eax+(((((1 << 
LH_BIT_BREIT_ADR) | 0) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
06051                         mov                     ebx, ako2
06052                         psrlw       mm2,8
06053 
#ifdef Test_mode
06054 
                        movq            TestRam,mm2
06055 
#endif
06056 
                        pmullw          mm6,mm2
06057 
06058                         movq        mm7, MMXTab [ebx*8]
06059                         paddusw         mm5,mm6
06060 
#ifdef Test_mode
06061 
                        movq            TestRam,mm7
06062 
#endif
06063 
                        punpcklbw   mm1,[eax+(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 0) * 
LH_DATA_OUT_COUNT)]
06064                         mov                     ebx, ein_regb
06065                         psrlw       mm1,8
06066 
#ifdef Test_mode
06067 
                        movq            TestRam,mm1
06068 
#endif
06069 
                        pmullw          mm7,mm1
06070 
06071                         movq        mm6, MMXTab [ebx*8]
06072                         paddusw         mm5,mm7
06073 
#ifdef Test_mode
06074 
                        movq            TestRam,mm7
06075 
#endif
06076 
                        punpcklbw   mm2,[eax+(((((1 << 
LH_BIT_BREIT_ADR) | 1) << 
LH_BIT_BREIT_ADR) | 1) * 
LH_DATA_OUT_COUNT)]
06077                         psrlw       mm2,8
06078 
#ifdef Test_mode
06079 
                        movq            TestRam,mm2
06080 
#endif
06081 
                        pmullw          mm6,mm2
06082                         paddusw         mm5,mm6
06083 
#ifdef Test_mode
06084 
                        movq            TestRam,mm6
06085 
#endif
06086 
06087 
06088                         xor                     eax,eax
06089                         psrlw           mm5,
LH_DATA_SHR
06090                         movq            ak,mm5
06091 
06092                         mov                     ax,ak
06093                         mov                     esi,My_OutputLut
06094                         mov                     al,
BYTE PTR[eax+esi]
06095                         mov                     edi,output0
06096                         mov                     [edi], al
06097                         mov                     ax,ak+2
06098                         mov                     al,
BYTE PTR[eax+esi+(1<<
LH_ADR_BREIT_AUS_LUT)]
06099                         mov                     edi,output1
06100                         mov                     [edi], al
06101                         mov                     ax,ak+4
06102                         mov                     al,
BYTE PTR[eax+esi+(2<<
LH_ADR_BREIT_AUS_LUT)]
06103                         mov                     edi,output2
06104                         mov                     [edi], al
06105 
                        #if LH_DATA_OUT_COUNT_4
06106 
                        mov                     ax,ak+6
06107                         mov                     al,
BYTE PTR[eax+esi+(3<<
LH_ADR_BREIT_AUS_LUT)]
06108                         mov                     edi,output3
06109                         mov                     [edi], al
06110 
                        #endif
06111 
                        
06112 
06113          }
06114 
                                                #endif
06115 
                                        }
06116                                 }
06117                         }
06118 
                        #if LH_DATA_OUT_SIZE_16 && ! LH_LUT_DATA_SIZE_16
06119 
                        *output0 |= (*output0 << 8);
06120                         *output1 |= (*output1 << 8);
06121                         *output2 |= (*output2 << 8);
06122 
                        #if LH_DATA_OUT_COUNT_4
06123 
                        *output3 |= (*output3 << 8);
06124 
                        #endif
06125 
                        #endif
06126 
                        
06127                         
if (Mode == 
LH_CALC_ENGINE_P_TO_P)
06128                         {
06129                                 
while (--i)
06130                                 {
06131                                         input0 += inputOffset;
06132                                         input1 += inputOffset;
06133                                         input2 += inputOffset;
06134                                         output0 += outputOffset;
06135                                         output1 += outputOffset;
06136                                         output2 += outputOffset;
06137 
                                        #if LH_DATA_OUT_COUNT_4
06138 
                                        output3 += outputOffset;
06139 
                                        #endif
06140 
06141                                         
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]))
06142                                         {
06143                                                 
break;
06144                                         }
06145                                         *output0 = output0[-outputOffset];
06146                                         *output1 = output1[-outputOffset];
06147                                         *output2 = output2[-outputOffset];
06148 
                                        #if LH_DATA_OUT_COUNT_4
06149 
                                        *output3 = output3[-outputOffset];
06150 
                                        #endif
06151 
                                }
06152                         }
06153                         
else if (Mode == 
LH_CALC_ENGINE_P_TO_U)
06154                         {
06155 
                                #if LH_DATA_OUT_COUNT_4
06156 
                                *output4 &= Mask;
06157 
                                #else
06158 
                                *output3 &= Mask;
06159 
                                #endif
06160 
                                while (--i)
06161                                 {
06162                                         input0 += inputOffset;
06163                                         input1 += inputOffset;
06164                                         input2 += inputOffset;
06165                                         output0 += outputOffset;
06166                                         output1 += outputOffset;
06167                                         output2 += outputOffset;
06168                                         output3 += outputOffset;
06169 
                                        #if LH_DATA_OUT_COUNT_4
06170 
                                        output4 += outputOffset;
06171 
                                        #endif
06172 
                                        if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]))
06173                                         {
06174                                                 
break;
06175                                         }
06176                                         *output0 = output0[-outputOffset];
06177                                         *output1 = output1[-outputOffset];
06178                                         *output2 = output2[-outputOffset];
06179 
                                        #if LH_DATA_OUT_COUNT_4
06180 
                                        *output3 = output3[-outputOffset];
06181                                         *output4 &= Mask;
06182 
                                        #else
06183 
                                        *output3 &= Mask;
06184 
                                        #endif
06185 
                                }
06186                         }
06187                         
else
06188                         {
06189 
                                #if LH_DATA_OUT_COUNT_4
06190 
                                *output4 = (
LH_DATA_OUT_TYPE)*input3;
06191 
                                #else
06192 
                                *output3 = (
LH_DATA_OUT_TYPE)*input3;
06193 
                                #endif
06194 
                                while (--i)
06195                                 {                                                               
06196                                         input0 += inputOffset;
06197                                         input1 += inputOffset;
06198                                         input2 += inputOffset;
06199                                         input3 += inputOffset;
06200 
06201                                         output0 += outputOffset;
06202                                         output1 += outputOffset;
06203                                         output2 += outputOffset;
06204                                         output3 += outputOffset;
06205 
                                        #if LH_DATA_OUT_COUNT_4
06206 
                                        output4 += outputOffset;
06207 
                                        #endif
06208 
                                        if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]))
06209                                         {
06210                                                 
break;
06211                                         }
06212                                         *output0 = output0[-outputOffset];
06213                                         *output1 = output1[-outputOffset];
06214                                         *output2 = output2[-outputOffset];
06215 
                                        #if LH_DATA_OUT_COUNT_4
06216 
                                        *output3 = output3[-outputOffset];
06217                                         *output4 = (
LH_DATA_OUT_TYPE)*input3;
06218 
                                        #else
06219 
                                        *output3 = (
LH_DATA_OUT_TYPE)*input3;
06220 
                                        #endif
06221 
                                }
06222                         }
06223                 }
06224                 
if (--LineCount)
06225                 {
06226                         j++;
06227                         input0 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[0] + j * calcParam->cmInputBytesPerLine);
06228                         input1 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[1] + j * calcParam->cmInputBytesPerLine);
06229                         input2 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[2] + j * calcParam->cmInputBytesPerLine);
06230                         input3 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[3] + j * calcParam->cmInputBytesPerLine);
06231 
06232                         output0 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[0] + j * calcParam->cmOutputBytesPerLine);
06233                         output1 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[1] + j * calcParam->cmOutputBytesPerLine);
06234                         output2 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[2] + j * calcParam->cmOutputBytesPerLine);
06235                         output3 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[3] + j * calcParam->cmOutputBytesPerLine);
06236 
                        #if LH_DATA_OUT_COUNT_4
06237 
                        output4 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[4] + j * calcParam->cmOutputBytesPerLine);
06238 
                        #endif
06239 
                }
06240         }
06241     __asm {
06242                 emms
06243                 frstor      bFPUState
06244         }
06245         
LH_END_PROC(LH_CALC_PROC_NAME)
06246         return 0;
06247 }
06248 #endif
06249 #undef LH_CALC_PROC_NAME