diff options
author | Robert de Bath <rdebath@poboxes.com> | 2002-08-11 08:50:48 +0200 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2013-10-23 23:48:48 +0200 |
commit | 26ade8d624457b7164502ed9c190ca3f146bda0c (patch) | |
tree | 75a70b6a562bc595c971e170994a8e302a8c7b3b /bcc/genloads.c | |
parent | 660429af0232d4afcb3e03fb0437053dd6e16286 (diff) | |
download | dev86-26ade8d624457b7164502ed9c190ca3f146bda0c.tar.gz |
Import Dev86src-0.16.8.tar.gzv0.16.8
Diffstat (limited to 'bcc/genloads.c')
-rw-r--r-- | bcc/genloads.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/bcc/genloads.c b/bcc/genloads.c index 9aff996..c3ac56a 100644 --- a/bcc/genloads.c +++ b/bcc/genloads.c @@ -784,10 +784,19 @@ struct symstruct *adr; bumplc(); else { + int off; if (switchnow != NULL && adr->flags == TEMP) - outswoffset(adr->offset.offi); + outswoffset(off = adr->offset.offi); else - outoffset(adr->offset.offi - framep); + outoffset(off = adr->offset.offi - framep); +#ifndef NO_DEL_PUSH + if (optimise && !callersaves && off < 0) + { + outstr("+"); + outstr(funcname); + outstr(".off"); + } +#endif } outindleft(); } @@ -948,12 +957,15 @@ store_pt reg; #endif case INDREG0: outstr(ireg0str); + regfuse |= INDREG0; break; case INDREG1: outstr(ireg1str); + regfuse |= INDREG1; break; case INDREG2: outstr(ireg2str); + regfuse |= INDREG2; break; case LOCAL: outstr(localregstr); @@ -996,7 +1008,7 @@ store_pt reg; } } -#ifdef I8088 +#if defined(I8088) && defined(I80386) /* print register name for short type */ PUBLIC void outshortregname(reg) |