//*** shift using shift count stored in a register ***//
uint32_tshiftReg=getBits(operand,8,11);
// register should not be the PC
assert((shiftReg!=15));
// the spec says that the bottom byte of the register defines the shift amount... but this allows values much bigger than 31 (which is the max shift of all the other shift operation types)
// I'm not sure if it's a mistake or intentional - for now I'm just loading the bottom 5 bytes (2^5 = 32), since shifting an int32_t by more than 32 is undefined for C's bitwise operators.