]> git.gag.com Git - fw/sdcc/commitdiff
* src/pic16/gen.c (genFunction, genEndFunction): also preserve
authortecodev <tecodev@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 26 Jun 2006 17:52:27 +0000 (17:52 +0000)
committertecodev <tecodev@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 26 Jun 2006 17:52:27 +0000 (17:52 +0000)
  PCLATH and PCLATU on interrupts, potentially fixes #1505141

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

ChangeLog
src/pic16/gen.c

index 8a261bd3022239cc7824c4582e8dbaf9965af178..5223636d02a0550d5e04b9c9655980558ccf4713 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-06-26 Raphael Neider <rneider AT web.de>
+
+       * src/pic16/gen.c (genFunction, genEndFunction): also preserve
+         PCLATH and PCLATU on interrupts, potentially fixes #1505141
+
 2006-06-25 Raphael Neider <rneider AT web.de>
 
        * device/lib/pic/libm: NEW, added math library functions
@@ -49,7 +54,6 @@
        * support/regression/ports/pic16/support.c: use gpsim usart module from
          libgpsim_modules library
 
->>>>>>> .r4249
 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
 
        * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
index 7dda28ae056c28530af3232e9066dfa7fa38d5f4..e87734409b0f077cbfdcfa2463198e2a36c3f81e 100644 (file)
@@ -3758,6 +3758,8 @@ static void genFunction (iCode *ic)
         pic16_pushpCodeOp( pic16_popCopyReg( &pic16_pc_prodh ));
         pic16_pushpCodeOp( pic16_popCopyReg( &pic16_pc_fsr0l ));
         pic16_pushpCodeOp( pic16_popCopyReg( &pic16_pc_fsr0h ));
+        pic16_pushpCodeOp( pic16_popCopyReg( &pic16_pc_pclath ));
+        pic16_pushpCodeOp( pic16_popCopyReg( &pic16_pc_pclatu ));
         
 //        pic16_pBlockConvert2ISR(pb);
     }
@@ -3942,6 +3944,8 @@ static void genEndFunction (iCode *ic)
     _G.useWreg = 0;
 
     if (IFFUNC_ISISR(sym->type)) {
+      pic16_poppCodeOp( pic16_popCopyReg( &pic16_pc_pclatu ));
+      pic16_poppCodeOp( pic16_popCopyReg( &pic16_pc_pclath ));
       pic16_poppCodeOp( pic16_popCopyReg( &pic16_pc_fsr0h ));
       pic16_poppCodeOp( pic16_popCopyReg( &pic16_pc_fsr0l));
       pic16_poppCodeOp( pic16_popCopyReg( &pic16_pc_prodh ));