From fbd48347395156a06e6e658e945a50e5f4668c73 Mon Sep 17 00:00:00 2001 From: frief Date: Sat, 1 Nov 2003 20:58:58 +0000 Subject: [PATCH] _mcs51_genXINIT: xdata initialization is 13 bytes shorter now git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2981 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- src/mcs51/main.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/mcs51/main.c b/src/mcs51/main.c index cff99d5f..30adbfd8 100644 --- a/src/mcs51/main.c +++ b/src/mcs51/main.c @@ -157,14 +157,11 @@ _mcs51_genIVT (FILE * of, symbol ** interrupts, int maxInterrupts) static void _mcs51_genXINIT (FILE * of) { fprintf (of, "; _mcs51_genXINIT() start\n"); fprintf (of, " mov a,#l_XINIT\n"); - fprintf (of, " orl a,#l_XINIT>>8\n"); - fprintf (of, " jz 00003$\n"); - fprintf (of, " mov a,#s_XINIT\n"); - fprintf (of, " add a,#l_XINIT\n"); fprintf (of, " mov r1,a\n"); - fprintf (of, " mov a,#s_XINIT>>8\n"); - fprintf (of, " addc a,#l_XINIT>>8\n"); - fprintf (of, " mov r2,a\n"); + fprintf (of, " mov r2,#(l_XINIT >> 8)\n"); + fprintf (of, " orl a,r2\n"); + fprintf (of, " jz 00003$\n"); + fprintf (of, " inc r2\n"); fprintf (of, " mov dptr,#s_XINIT\n"); fprintf (of, " mov r0,#s_XISEG\n"); fprintf (of, " mov p2,#(s_XISEG >> 8)\n"); @@ -175,10 +172,8 @@ static void _mcs51_genXINIT (FILE * of) { fprintf (of, " inc r0\n"); fprintf (of, " cjne r0,#0,00002$\n"); fprintf (of, " inc p2\n"); - fprintf (of, "00002$: mov a,dpl\n"); - fprintf (of, " cjne a,ar1,00001$\n"); - fprintf (of, " mov a,dph\n"); - fprintf (of, " cjne a,ar2,00001$\n"); + fprintf (of, "00002$: djnz r1,00001$\n"); + fprintf (of, " djnz r2,00001$\n"); fprintf (of, " mov p2,#0xFF\n"); fprintf (of, "00003$:\n"); fprintf (of, "; _mcs51_genXINIT() end\n"); -- 2.30.2