+2004-01-18 Bernhard Held <bernhard@bernhardheld.de>
+
+ * src/SDCCval.c (cheapestVal): added missing checks
+ * src/SDCCicode.c (usualBinaryConversions): fixed condition
+ * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
+
2004-01-16 Klaus Flittner <klaus_flittner@gmx.de>
* src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
to Pics16. Updated all references to them.
* src/pic16/glue.c (pic16glue): corrected bug with code
initialization which bypassed the variable initializations block.
-
+
* device/lib/pic16/Makefile.rules: removed --penable-stack from
COMPILE_FLAGS and added the --nostdinc option
files into pic16 directory
* in target 'installdirs' added line to create directory pic16 in
the installation path
-
+
* device/include/Makefile.in (version 1.11): in target 'install'
added lines to copy all header files to installation path,
* in target 'installdirs' added line create directory for pic16
- headers in the installation path
+ headers in the installation path
2004-01-13 Klaus Flittner <klaus_flittner@gmx.de>
This if for 'mul a,b', which takes two chars and returns an int */
if ( isMul
/* && promoteCharToInt superfluous, already handled by computeType() */
- && IS_CHAR (getSpec (ltype))
- && IS_CHAR (getSpec (rtype))
- && !(IS_UNSIGNED (getSpec (rtype)) ^ IS_UNSIGNED (getSpec (ltype)))
&& IS_INT (getSpec (ctype)))
- return ctype;
+ {
+ sym_link *retype = getSpec (rtype);
+ sym_link *letype = getSpec (ltype);
+ if ( IS_CHAR (letype)
+ && IS_CHAR (retype)
+ && IS_UNSIGNED (letype)
+ && IS_UNSIGNED (retype))
+ {
+ return ctype;
+ }
+ }
*op1 = geniCodeCast (ctype, *op1, TRUE);
*op2 = geniCodeCast (ctype, *op2, TRUE);
if (getSize (ltype->next) != 1)
{
size = operandFromLit (getSize (ltype->next));
+ SPEC_USIGN (getSpec (operandType (size))) = 1;
indexUnsigned = IS_UNSIGNED (getSpec (operandType (right)));
right = geniCodeMultiply (right, size, (getArraySizePtr(left) >= INTSIZE));
/* Even if right is a 'unsigned char',
return geniCodeDerefPtr (geniCodeRValue (left, FALSE),lvl);
case '-':
- if (right)
+ if (right)
return geniCodeSubtract (geniCodeRValue (left, FALSE),
geniCodeRValue (right, FALSE));
else