Comment on Picking a CRC by Julian Skidmore

In reply to Christian.
Yes, I think when I first did it with <<12 and <<5 the gcc AVR compiler turned it into a loop; whereas (n<<8) becomes a byte copy. So, <<12 then becomes:
mov regCrcHi,regCrcLo ldi regCrcLo,0 swap regCrcHi andi regCrcHi,0xf0
;4 cycles and 4 words instead of: ldi regTemp,12 lp: lsl regCrcLo rol regCrcHi dec regTemp brnz lp
;61 cycles, 6 words.
评论
?
参与讨论