+2008-03-16 Raphael Neider <rneider AT web.de>
+
+ * src/pic/gen.c (SetIrp,genNearPointerGet,genNearPointerSet):
+ fixed code bloat regression using a variant of patch #1915618
+
2008-03-16 Borut Razem <borut.razem AT siol.net>
* support/scripts/sdcc.nsi: added section debugging macros, added SDCC
else
emitCLRIRP;
} else {
- if (PCOP(AOP(result))->type == PO_LITERAL) {
- int addrs = PCOL(AOP(result))->lit;
+ if ((AOP_TYPE(result) == AOP_PCODE)
+ && (AOP(result)->aopu.pcop->type == PO_LITERAL))
+ {
+ int addrs = PCOL(AOP(result)->aopu.pcop)->lit;
if (addrs & 0x100)
emitSETIRP;
else
aopOp (result,ic,FALSE);
/* Check if can access directly instead of via a pointer */
- if ((PCOP(AOP(left))->type == PO_LITERAL || PCOP(AOP(left))->type == PO_IMMEDIATE)
- && AOP_SIZE(result) == 1)
+ if ((AOP_TYPE(left) == AOP_PCODE)
+ && (AOP(left)->aopu.pcop->type == PO_IMMEDIATE)
+ && (AOP_SIZE(result) == 1))
{
direct = 1;
}
DEBUGpic14_AopType(__LINE__,NULL,right,result);
/* Check if can access directly instead of via a pointer */
- if (PCOP(AOP(result))->type == PO_LITERAL && AOP_SIZE(right) == 1) {
+ if ((AOP_TYPE(result) == AOP_PCODE)
+ && (AOP(result)->aopu.pcop->type == PO_IMMEDIATE)
+ && (AOP_SIZE(right) == 1))
+ {
direct = 1;
}