git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2770
4a8a32a2-be11-0410-ad9d-
d568d2c75423
+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:
2003-07-23 Bernhard Held <bernhard@bernhardheld.de>
added DUMMY_READ_VOLATILE:
operandLitValue (right));
break;
case BITWISEAND:
operandLitValue (right));
break;
case BITWISEAND:
- retval = operandFromLit ((long)operandLitValue(left) &
- (long)operandLitValue(right));
+ retval = operandFromLit ((unsigned long)operandLitValue(left) &
+ (unsigned long)operandLitValue(right));
- retval = operandFromLit ((long)operandLitValue (left) |
- (long)operandLitValue (right));
+ retval = operandFromLit ((unsigned long)operandLitValue (left) |
+ (unsigned long)operandLitValue (right));
- 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 AND_OP:
retval = operandFromLit (operandLitValue (left) &&
- long i = (long) operandLitValue (left);
+ unsigned long i = (unsigned long) operandLitValue (left);
retval = operandFromLit ((i >> (getSize (operandType (left)) * 8 - 1)) |
(i << 1));
retval = operandFromLit ((i >> (getSize (operandType (left)) * 8 - 1)) |
(i << 1));
- long i = (long) operandLitValue (left);
+ unsigned long i = (unsigned long) operandLitValue (left);
retval = operandFromLit ((i << (getSize (operandType (left)) * 8 - 1)) |
(i >> 1));
retval = operandFromLit ((i << (getSize (operandType (left)) * 8 - 1)) |
(i >> 1));
- retval = operandFromLit (~((long) operandLitValue (left)));
+ retval = operandFromLit (~((unsigned long) operandLitValue (left)));