From 0300bbf5cbfafef50cb17490c3c836989ef6cfa6 Mon Sep 17 00:00:00 2001 From: ceriel Date: Tue, 11 Aug 1987 14:42:15 +0000 Subject: [PATCH] adapted sizes somewhat, made facility to print memory statistics --- util/led/mach.c | 24 ++++++++++++------------ util/led/main.c | 28 ++++++++++++++++++++++++++++ util/led/memory.c | 2 +- util/led/memory.h | 2 -- 4 files changed, 41 insertions(+), 15 deletions(-) diff --git a/util/led/mach.c b/util/led/mach.c index b1fe0d3c7..ed1938c5e 100644 --- a/util/led/mach.c +++ b/util/led/mach.c @@ -15,23 +15,23 @@ #define K 1024L #if BIGMACHINE - mems[ALLOEMIT + 0].mem_left = 32 * K; - mems[ALLOEMIT + 1].mem_left = 8 * K; +#define INCRSIZE 8192 + mems[ALLOEMIT + 0].mem_left = 64 * K; + mems[ALLOEMIT + 1].mem_left = 4 * K; mems[ALLOEMIT + 2].mem_left = 16 * K; - mems[ALLORELO].mem_left = 32 * K; - mems[ALLOLOCL].mem_left = 32 * K; - mems[ALLOGLOB].mem_left = 32 * K; - mems[ALLOLCHR].mem_left = 32 * K; - mems[ALLOGCHR].mem_left = 32 * K; + mems[ALLORELO].mem_left = 24 * K; + mems[ALLOLOCL].mem_left = 16 * K; + mems[ALLOGLOB].mem_left = 16 * K; + mems[ALLOLCHR].mem_left = 16 * K; + mems[ALLOGCHR].mem_left = 16 * K; #ifdef SYMDBUG mems[ALLODBUG].mem_left = 32 * K; #endif SYMDBUG - mems[ALLOSYMB].mem_left = 4 * K; - mems[ALLOARCH].mem_left = 1 * K; - mems[ALLOMODL].mem_left = 32 * K; - mems[ALLORANL].mem_left = 4 * K; + mems[ALLOSYMB].mem_left = 8 * K; + mems[ALLOARCH].mem_left = 4 * K; + mems[ALLOMODL].mem_left = 64 * K; + mems[ALLORANL].mem_left = 8 * K; #else -#undef INCRSIZE #define INCRSIZE 256 mems[ALLOEMIT + 0].mem_left = 8 * K; mems[ALLOEMIT + 1].mem_left = 2 * K; diff --git a/util/led/main.c b/util/led/main.c index 6e15b8b69..4824362f9 100644 --- a/util/led/main.c +++ b/util/led/main.c @@ -19,6 +19,9 @@ static char rcsid[] = "$Header$"; #include "orig.h" extern bool incore; +#ifndef NOSTATISTICS +int statistics; +#endif #ifndef NDEBUG int DEB = 0; #endif @@ -37,6 +40,9 @@ static change_names(); static bool tstbit(); static second_pass(); static pass2(); +#ifndef NOSTATISTICS +static do_statistics(); +#endif main(argc, argv) int argc; @@ -44,6 +50,9 @@ main(argc, argv) { initializations(argc, argv); first_pass(argv); +#ifndef NOSTATISTICS + do_statistics(); +#endif freeze_core(); evaluate(); beginoutput(); @@ -52,6 +61,22 @@ main(argc, argv) stop(); } +#ifndef NOSTATISTICS +static +do_statistics() +{ + register struct memory *m = mems; + + while (m <= &mems[NMEMS-1]) { + fprintf(stderr, "mem %d: full %lx, free %lx\n", + m - mems, + (long) m->mem_full, + (long) m->mem_left); + m++; + } +} +#endif + char *progname; /* Name this program was invoked with. */ int passnumber; /* Pass we are in. */ struct outhead outhead; /* Header of final output file. */ @@ -193,6 +218,9 @@ first_pass(argv) if (searchname(*argv, h) == (struct outname *)0) entername(makename(*argv), h); break; + case 'S': + statistics = 1; + break; default: warning("bad flag letter %c", *argp); break; diff --git a/util/led/memory.c b/util/led/memory.c index acf8e5cc0..44eb775af 100644 --- a/util/led/memory.c +++ b/util/led/memory.c @@ -60,7 +60,7 @@ sbreak(incr) refused = incr; return -1; } - BASE = sbrk(0); + BASE += inc; return 0; } diff --git a/util/led/memory.h b/util/led/memory.h index 1d455b783..61595383f 100644 --- a/util/led/memory.h +++ b/util/led/memory.h @@ -21,8 +21,6 @@ #define ALLORANL (ALLOMODL + 1) /* Ranlib information. */ #define NMEMS (ALLORANL + 1) -#define INCRSIZE 1024 - typedef long ind_t; #define BADOFF ((ind_t)-1) -- 2.34.1