Fix shifts by registers in assembler, add shifts to codegen, and fix signedness issues in both cross compilers.