- if (offl==MSB16) {
- // shift is > 8
- if (sign) {
- emitcode ("rlc", "a");
- emitcode ("subb", "a,acc");
- if (isSameRegs)
- emitcode ("xch", "a,%s", aopGet (left, MSB32, FALSE, FALSE));
- else {
- aopPut (result, "a", MSB32, isOperandVolatile (result, FALSE));
- MOVA (aopGet (left, MSB32, FALSE, FALSE));
- }
- } else {
- aopPut (result, zero, MSB32, isOperandVolatile (result, FALSE));
+ if (offl==MSB16)
+ {
+ // shift is > 8
+ if (sign)
+ {
+ emitcode ("rlc", "a");
+ emitcode ("subb", "a,acc");
+ if (useSameRegs && sameReg (AOP (left), MSB32, AOP (result), MSB32))
+ {
+ emitcode ("xch", "a,%s", aopGet (left, MSB32, FALSE, FALSE));
+ }
+ else
+ {
+ aopPut (result, "a", MSB32, isOperandVolatile (result, FALSE));
+ MOVA (aopGet (left, MSB32, FALSE, FALSE));
+ }
+ }
+ else
+ {
+ aopPut (result, zero, MSB32, isOperandVolatile (result, FALSE));
+ }