Fixing an ARM instruction encoding bug: for shifter_operand immediates, the carry bit should be set to bit 31 of the shifter_operand if and only if rotate_imm != 0. I have added detection for the case when this would bug out (although I have never seen it happen yet), and fixed a bug which did happen: for short register formats (i.e. no shift or other complex things), the code should not be run, but it was run anyway, leading to wrong Carry flag results for e.g. the TST instruction. This was triggered when running int64_t modulo.