I thought that this was a rather elegant piece of code. So, I thought that I should share this here, lest I forget it later. It exploits a weakness in the language definition in order to produce a piece of code that is somewhat more efficient.
send(to, from, count)
register short *to, *from;
register count;
{
register n=(count+7)/8;
switch(count%8){
case 0: do{ *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
}while(--n>0);
}
}
Once you read it, and understand how it gets translated into assembly, you will soon realise the ingenuity of it all.