+2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
+ which can't handle SDCC_NEWONEBYTEOPS,
+ (geniCodeMultiply): removed conversion from mult to shift for pic14
+ and pic16
+
2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
* src/hc08/gen.h,
promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
SDCC_OLDONEBYTEOPS selects the old behaviour
* src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
- changed again and commented promotion rule (it's still not perfect)
+ changed again and commented promotion rule
* src/SDCCval.c (valDiv): promotion no longer necessary
* src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
* src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
bool oldOneByteOps = FALSE;
static bool saidHello = FALSE;
- if ( strcmp (port->target, "pic14") == 0
- || strcmp (port->target, "pic16") == 0)
+ if (strcmp (port->target, "pic14") == 0)
oldOneByteOps = TRUE;
if (getenv ("SDCC_NEWONEBYTEOPS"))
{
/* code generated for 1 byte * 1 byte literal = 2 bytes result is more
efficient in most cases than 2 bytes result = 2 bytes << literal
if port has 1 byte muldiv */
- if (p2 && !IS_FLOAT (letype) &&
- !((resultIsInt) && (getSize (resType) != getSize (ltype)) &&
- (port->support.muldiv == 1)))
+ if (p2 && !IS_FLOAT (letype)
+ && !((resultIsInt) && (getSize (resType) != getSize (ltype))
+ && (port->support.muldiv == 1))
+ && strcmp (port->target, "pic14") != 0 /* don't shift for pic */
+ && strcmp (port->target, "pic16") != 0)
{
if ((resultIsInt) && (getSize (resType) != getSize (ltype)))
{