668
668
#elif !defined(NO_ASM)
669
669
# if !defined(__PIC__)
670
asm volatile("pusha \n"
671
"mov pAsmStart, %%ecx \n" // = pStart
672
"mov $0, %%edx \n" // The CRC
673
"mov dwAsmHeight, %%eax \n" // = y
675
"mov dwAsmdwBytesPerLine, %%ebx \n" // = x
678
"mov (%%ecx,%%ebx), %%esi \n"
679
"xor %%ebx, %%esi \n"
681
"add %%esi, %%edx \n"
684
"xor %%eax, %%esi \n"
685
"add %%esi, %%edx \n"
686
"add dwAsmPitch, %%ecx \n"
670
asm volatile("pusha \n"
671
"mov %[pAsmStart], %%ecx \n" // = pStart
672
"mov $0, %%edx \n" // The CRC
673
"mov %[dwAsmHeight], %%eax \n" // = y
675
"mov %[dwAsmdwBytesPerLine], %%ebx \n" // = x
678
"mov (%%ecx,%%ebx), %%esi \n"
679
"xor %%ebx, %%esi \n"
681
"add %%esi, %%edx \n"
684
"xor %%eax, %%esi \n"
685
"add %%esi, %%edx \n"
686
"add %[dwAsmPitch], %%ecx \n"
690
"mov %%edx, dwAsmCRC \n"
690
"mov %%edx, %[dwAsmCRC] \n"
692
: [pAsmStart]"+m"(pAsmStart), [dwAsmHeight]"+m"(dwAsmHeight), [dwAsmCRC]"=m"(dwAsmCRC)
693
: [dwAsmdwBytesPerLine]"m"(dwAsmdwBytesPerLine), [dwAsmPitch]"m"(dwAsmPitch)
696
696
# else // defined(__PIC__)