From b97d9b48eabf4db7ba87d196dae0bb289454f10d Mon Sep 17 00:00:00 2001 From: kvigor Date: Wed, 16 Feb 2000 20:14:36 +0000 Subject: [PATCH] flat 24: mung fReturnSize before packing registers to get packRegForOneUse working properly in flat24 mode git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@109 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- src/mcs51/gen.c | 13 +++---------- src/mcs51/gen.h | 4 ++++ src/mcs51/main.c | 6 ++++-- src/mcs51/ralloc.c | 1 + src/mcs51/ralloc.h | 3 --- 5 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/mcs51/gen.c b/src/mcs51/gen.c index 60b7b2de..2a912fd8 100644 --- a/src/mcs51/gen.c +++ b/src/mcs51/gen.c @@ -61,10 +61,10 @@ static char *zero = "#0x00"; static char *one = "#0x01"; static char *spname ; -static char *fReturn8051[] = {"dpl","dph","b","a" }; -static char *fReturn390[] = {"dpl","dph","dpx", "b","a" }; +char *fReturn8051[] = {"dpl","dph","b","a" }; +char *fReturn390[] = {"dpl","dph","dpx", "b","a" }; unsigned fReturnSize = 4; /* shared with ralloc.c */ -static char **fReturn = fReturn8051; +char **fReturn = fReturn8051; static char *accUse[] = {"a","b"}; static short rbank = -1; @@ -7287,13 +7287,6 @@ void gen51Code (iCode *lic) iCode *ic; int cln = 0; - /* Hack-o-matic: change fReturn based on model. */ - if (options.model == MODEL_FLAT24) - { - fReturn = fReturn390; - fReturnSize = 5; - } - lineHead = lineCurr = NULL; /* if debug information required */ diff --git a/src/mcs51/gen.h b/src/mcs51/gen.h index 3c56dcfd..643dfcc3 100644 --- a/src/mcs51/gen.h +++ b/src/mcs51/gen.h @@ -68,5 +68,9 @@ typedef struct asmop { void gen51Code (iCode *); +extern char *fReturn8051[]; +extern char *fReturn390[]; +extern unsigned fReturnSize; +extern char **fReturn; #endif diff --git a/src/mcs51/main.c b/src/mcs51/main.c index 3723fed3..e4732ad9 100644 --- a/src/mcs51/main.c +++ b/src/mcs51/main.c @@ -7,6 +7,7 @@ #include "common.h" #include "main.h" #include "ralloc.h" +#include "gen.h" static char _defaultRules[] = { @@ -67,8 +68,9 @@ static void _mcs51_finaliseOptions(void) * but is ugly. There must be a * better way. */ - #endif - + #endif + fReturn = fReturn390; + fReturnSize = 5; } } diff --git a/src/mcs51/ralloc.c b/src/mcs51/ralloc.c index eb82aff5..0f01e758 100644 --- a/src/mcs51/ralloc.c +++ b/src/mcs51/ralloc.c @@ -25,6 +25,7 @@ #include "common.h" #include "ralloc.h" +#include "gen.h" /*-----------------------------------------------------------------*/ /* At this point we start getting processor specific although */ diff --git a/src/mcs51/ralloc.h b/src/mcs51/ralloc.h index 0488a61c..0e1ecbe0 100644 --- a/src/mcs51/ralloc.h +++ b/src/mcs51/ralloc.h @@ -54,7 +54,4 @@ extern regs regs8051[]; regs *mcs51_regWithIdx (int); -/* in gen.c */ -extern unsigned fReturnSize; - #endif -- 2.30.2