+2003-07-24 Bernhard Held <bernhard@bernhardheld.de>
+
+ * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
+ after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
+
2003-07-23 Bernhard Held <bernhard@bernhardheld.de>
added DUMMY_READ_VOLATILE:
operandLitValue (right));
break;
case BITWISEAND:
- retval = operandFromLit ((long)operandLitValue(left) &
- (long)operandLitValue(right));
+ retval = operandFromLit ((unsigned long)operandLitValue(left) &
+ (unsigned long)operandLitValue(right));
break;
case '|':
- retval = operandFromLit ((long)operandLitValue (left) |
- (long)operandLitValue (right));
+ retval = operandFromLit ((unsigned long)operandLitValue (left) |
+ (unsigned long)operandLitValue (right));
break;
case '^':
- retval = operandFromLit ((long)operandLitValue (left) ^
- (long)operandLitValue (right));
+ retval = operandFromLit ((unsigned long)operandLitValue (left) ^
+ (unsigned long)operandLitValue (right));
break;
case AND_OP:
retval = operandFromLit (operandLitValue (left) &&
break;
case RRC:
{
- long i = (long) operandLitValue (left);
+ unsigned long i = (unsigned long) operandLitValue (left);
retval = operandFromLit ((i >> (getSize (operandType (left)) * 8 - 1)) |
(i << 1));
break;
case RLC:
{
- long i = (long) operandLitValue (left);
+ unsigned long i = (unsigned long) operandLitValue (left);
retval = operandFromLit ((i << (getSize (operandType (left)) * 8 - 1)) |
(i >> 1));
break;
case '~':
- retval = operandFromLit (~((long) operandLitValue (left)));
+ retval = operandFromLit (~((unsigned long) operandLitValue (left)));
break;
case '!':