6 ms·
http://lmgtfy.com/?q=duff%27s+device&l=1# http://lmgtfy.com/?q=duff%27s+device&l=1#
by snnw 11y ago
http://lmgtfy.com/?q=duff%27s+device&l=1# http://lmgtfy.com/?q=duff%27s+device&l=1#
- marco2357 11y agoI saw that ;-) The translation is: do { to.set((from = from.shift(1)).get(-1)); } while(--count > 0); which looks correct to me. Hence my question what orodley thinks is wrong.
- jmuhlich 11y agoI think you might be looking at the wrong thing on the Wikipedia page. The core feature of Duff's Device is interleaved switch and do statements: 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); } (extraneous register statements removed for conciseness)