187,194c187,188 < "eor %B0,%3" "\n\t" /* crc.hi ^ data */ < "mov __tmp_reg__,%B0" "\n\t" < "swap __tmp_reg__" "\n\t" /* swap(crc.hi ^ data) */ < < /* Calculate the ret.lo of the CRC. */ < "mov %1,__tmp_reg__" "\n\t" < "andi %1,0x0f" "\n\t" < "eor %1,%B0" "\n\t" --- > "eor %B0,%3" "\n\t" > "mov %1,%A0" "\n\t" 196,199d189 < "eor %2,__tmp_reg__" "\n\t" < "lsl %2" "\n\t" < "andi %2,0xe0" "\n\t" < "eor %1,%2" "\n\t" /* __tmp1 is now ret.lo. */ 201,202c191,198 < /* Calculate the ret.hi of the CRC. */ < "mov %2,__tmp_reg__" "\n\t" --- > "mov %A0,%B0" "\n\t" > "swap %B0" "\n\t" > "eor %A0,%B0" "\n\t" > > "andi %A0,0xf0" "\n\t" > "andi %B0,0x0f" "\n\t" > > "eor %1,%A0" "\n\t" 204,216c200,206 < "andi %2,0xf0" "\n\t" < "lsr %2" "\n\t" < "mov __tmp_reg__,%B0" "\n\t" < "lsl __tmp_reg__" "\n\t" < "rol %2" "\n\t" < "lsr %B0" "\n\t" < "lsr %B0" "\n\t" < "lsr %B0" "\n\t" < "andi %B0,0x1f" "\n\t" < "eor %B0,%2" "\n\t" < "eor %B0,%A0" "\n\t" /* ret.hi is now ready. */ < "mov %A0,%1" "\n\t" /* ret.lo is now ready. */ < : "=d" (__ret), "=d" (__tmp1), "=d" (__tmp2) --- > > "lsl %A0" "\n\t" > "rol %B0" "\n\t" > > "eor %B0,%1" "\n\t" > "eor %A0,%2" "\n\t" > : "=d" (__ret), "=r" (__tmp1), "=r" (__tmp2) 218d207 < : "r0"