Remove braces around cases. Reuse temporary vars.
Cache source size.

Small tweak, but it prevents a lot of unnecessary access to the source
ops vector.
Re-add braces because they're handy. Replace cmp and jmp hacks.

The cmp/jmp hacks were both meant to avoid branching, but profiling
shows this isn't a bottleneck and making use of conditionals here is
faster than trying to use a mask to skip it or getting the comparison
of two values by getting their deltas.