The traditional loop around a switch has some advantages. That "break" or "continue" is an unconditional branch, so it is a small piece of code and is always correctly predicted. It's almost free. By doing this, you get to avoid repeating code for every instruction. The common code that happens for every instruction thus appears only once in your CPUs cache, instead of being numerous copies.