On Duff's Device and Coroutines
On Duff's Device and Coroutines
Posted on Wednesday, January 30, 2008.
At first glance, Duff's Device is one of the most mysterious pieces of C code you'll ever see:
void
send(short *to, short *from, int count)
{
int 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);
}
}
It's an 8x-unrol...
Read more at research.swtch.com