]> git.gag.com Git - fw/sdcc/commitdiff
fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
authorfrief <frief@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 8 Nov 2003 15:40:24 +0000 (15:40 +0000)
committerfrief <frief@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 8 Nov 2003 15:40:24 +0000 (15:40 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3004 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/mcs51/main.c

index dfda28221c3e92b2343fd3c97df685d965436136..6d88a68d4152f0fb937d081c6e43f6633aedca35 100644 (file)
@@ -156,12 +156,12 @@ _mcs51_genIVT (FILE * of, symbol ** interrupts, int maxInterrupts)
 /* Generate code to copy XINIT to XISEG */
 static void _mcs51_genXINIT (FILE * of) {
   fprintf (of, ";      _mcs51_genXINIT() start\n");
-  fprintf (of, "       mov     a,#l_XINIT\n");
-  fprintf (of, "       mov     r1,a\n");
+  fprintf (of, "       mov     r1,#l_XINIT\n");
   fprintf (of, "       mov     r2,#(l_XINIT >> 8)\n");
+  fprintf (of, "       mov     a,r1\n");
   fprintf (of, "       orl     a,r2\n");
   fprintf (of, "       jz      00003$\n");
-  fprintf (of, "       inc     r2\n");  
+  fprintf (of, "       mov     r2,#((l_XINIT+255) >> 8)\n");
   fprintf (of, "       mov     dptr,#s_XINIT\n");
   fprintf (of, "       mov     r0,#s_XISEG\n");
   fprintf (of, "       mov     p2,#(s_XISEG >> 8)\n");