architecture cannot handle them efficiently, fixes bug #
1235003
* src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
check for empty sets before using them (fixes bug #
1232190)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3805
4a8a32a2-be11-0410-ad9d-
d568d2c75423
+2005-07-21 Raphael Neider <rneider AT web.de>
+
+ * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
+ architecture cannot handle them efficiently, fixes bug #1235003
+ * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
+ check for empty sets before using them (fixes bug #1232190)
+
2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
* as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
unsigned fReturnSizePic = 4; /* shared with ralloc.c */
static char **fReturn = fReturnpic14;
-static char *accUse[] = {"a","b"};
+//static char *accUse[] = {"a","b"};
//static short rbank = -1;
return;
}
+#if 0
+ /* WREG is not usable as an ordinary operand with PIC architecture,
+ * one might introduce a scratch register that can be used to make
+ * WREG accesible as an operand... disable WREG for now */
if (sym->accuse) {
int i;
aop = op->aop = sym->aop = newAsmop(AOP_ACC);
DEBUGpic14_emitcode(";","%d size=%d",__LINE__,aop->size);
return;
}
+#endif
if (sym->ruonly ) {
if(sym->isptr) { // && sym->uptr
regs *r1;
/* put all symbols in an array */
+ if (!elementsInSet(section)) return;
rlist = Safe_calloc(elementsInSet(section), sizeof(regs *));
r = rlist[0]; i = 0;
for(rprev = setFirstItem(section); rprev; rprev = setNextItem(section)) {
symbol **slist;
/* put all symbols in an array */
+ if (!elementsInSet(section)) return;
slist = Safe_calloc(elementsInSet(section), sizeof(symbol *));
s = slist[0]; i = 0;
for(sprev = setFirstItem(section); sprev; sprev = setNextItem(section)) {
regs **rlist;
/* put all symbols in an array */
+ if (!elementsInSet(section)) return;
rlist = Safe_calloc(elementsInSet(section), sizeof(regs *));
r = rlist[0]; i = 0;
for(rprev = setFirstItem(section); rprev; rprev = setNextItem(section)) {