* src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
authortecodev <tecodev@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 5 Aug 2005 09:29:01 +0000 (09:29 +0000)
committertecodev <tecodev@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 5 Aug 2005 09:29:01 +0000 (09:29 +0000)
  AOP_PCODE operands, fixes multibyte union-bitfield-accesses

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3831 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/pic16/gen.c

index 24e2a8022e0b58b85edc3830d17d27df4c3a3f10..1e51274426577c4c9524b240e53c460d130c8fb9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-08-05 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
+         AOP_PCODE operands, fixes multibyte union-bitfield-accesses
+
 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
 
        * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
index b3fd810568a562041fd30adaa7cf35fb97a3d7e4..75b9b3a7417427024f7ab465f565c0fe7433391f 100644 (file)
@@ -1584,9 +1584,9 @@ char *pic16_aopGet (asmop *aop, int offset, bool bit16, bool dname)
          DEBUGpic16_emitcode(";","%s offset %d",pcop->name,PCOI(pcop)->offset);
          //sprintf(s,"(%s+0x%02x)", pcop->name,PCOI(aop->aopu.pcop)->offset);
          if (offset) {
-           sprintf(s,"(%s + %d)", pcop->name, offset);
+           sprintf(s,"(%s + %d)", pic16_get_op (pcop, NULL, 0), offset);
          } else {
-           sprintf(s,"%s", pcop->name);
+           sprintf(s,"%s", pic16_get_op (pcop, NULL, 0));
          }
        } else
          sprintf(s,"0x%02x", PCOI(aop->aopu.pcop)->offset);
@@ -7471,7 +7471,7 @@ static void genAnd (iCode *ic, iCode *ifx)
              bp -= 8;
              ofs++;
            }
-       
+
          pic16_emitpcode(((rIfx.condition) ? POC_BTFSC : POC_BTFSS),
                    pic16_newpCodeOpBit(pic16_aopGet(AOP(left),ofs,FALSE,FALSE),bp,0, PO_GPR_REGISTER));