Fix undefined left-shift of signed int.
Fix undefined left-shift of signed int.

Detected by PVS Studio [1], left shift of a signed integer that causes the sign
bit to "fall off" is technically undefined behavior (though neither clang nor gcc seem
to warn for this case).

Could also be fixed by using an unsigned bitmask, doing the shifts, and
reinterpreting as an int when doing the comparison to 0, but that seems more
trouble than it's worth.

I've tested by playing a bunch of SPC files, haven't heard any problems.

[1] http://www.viva64.com/en/examples-V610/

markcox/game-music-emu,bogger33/game-music-emu,ericmckean/game-music-emu,markcox/game-music-emu,sbwhitecap/game-music-emu,ericmckean/game-music-emu,bogger33/game-music-emu,sbwhitecap/game-music-emu