register printing (from Ralph Campbell)
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 6 Sep 1985 08:32:28 +0000 (00:32 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 6 Sep 1985 08:32:28 +0000 (00:32 -0800)
SCCS-vsn: old/dbx/printsym.c 5.2
SCCS-vsn: old/dbx/symbols.c 5.2

usr/src/old/dbx/printsym.c
usr/src/old/dbx/symbols.c

index a262b8d..b9765b8 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)printsym.c 5.1 (Berkeley) %G%";
+static char sccsid[] = "@(#)printsym.c 5.2 (Berkeley) %G%";
 #endif not lint
 
 static char rcsid[] = "$Header: printsym.c,v 1.5 84/12/26 10:41:28 linton Exp $";
 #endif not lint
 
 static char rcsid[] = "$Header: printsym.c,v 1.5 84/12/26 10:41:28 linton Exp $";
@@ -282,7 +282,6 @@ Frame frame;
 {
     Address addr;
     int len;
 {
     Address addr;
     int len;
-    Symbol t;
 
     if (isambiguous(s) and ismodule(container(s))) {
        printname(stdout, s);
 
     if (isambiguous(s) and ismodule(container(s))) {
        printname(stdout, s);
@@ -297,11 +296,14 @@ Frame frame;
        addr = address(s, frame);
     }
     len = size(s);
        addr = address(s, frame);
     }
     len = size(s);
-    if (canpush(len)) {
-       rpush(addr, len);
+    if (not canpush(len)) {
+       printf("*** expression too large ***");
+    } else if (isreg(s)) {
+       push(Address, addr);
        printval(s->type);
     } else {
        printval(s->type);
     } else {
-       printf("*** expression too large ***");
+       rpush(addr, len);
+       printval(s->type);
     }
 }
 
     }
 }
 
@@ -514,7 +516,7 @@ Symbol t;
 
        default:
            if (t->language == nil or t->language == primlang) {
 
        default:
            if (t->language == nil or t->language == primlang) {
-               (*language_op(findlanguage(".c"), L_PRINTVAL))(t);
+               (*language_op(findlanguage(".s"), L_PRINTVAL))(t);
            } else {
                (*language_op(t->language, L_PRINTVAL))(t);
            }
            } else {
                (*language_op(t->language, L_PRINTVAL))(t);
            }
index 05aca92..bc8b24f 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)symbols.c  5.1 (Berkeley) %G%";
+static char sccsid[] = "@(#)symbols.c  5.2 (Berkeley) %G%";
 #endif not lint
 
 static char rcsid[] = "$Header: symbols.c,v 1.6 84/12/26 10:42:31 linton Exp $";
 #endif not lint
 
 static char rcsid[] = "$Header: symbols.c,v 1.6 84/12/26 10:42:31 linton Exp $";
@@ -125,6 +125,8 @@ boolean showaggrs;
 #define nosource(f) (not (f)->symvalue.funcv.src)
 #define isinline(f) ((f)->symvalue.funcv.inline)
 
 #define nosource(f) (not (f)->symvalue.funcv.src)
 #define isinline(f) ((f)->symvalue.funcv.inline)
 
+#define isreg(s)               (s->level < 0)
+
 #include "tree.h"
 
 /*
 #include "tree.h"
 
 /*
@@ -550,7 +552,6 @@ Symbol s;
 #define isglobal(s)            (s->level == 1)
 #define islocaloff(s)          (s->level >= 2 and s->symvalue.offset < 0)
 #define isparamoff(s)          (s->level >= 2 and s->symvalue.offset >= 0)
 #define isglobal(s)            (s->level == 1)
 #define islocaloff(s)          (s->level >= 2 and s->symvalue.offset < 0)
 #define isparamoff(s)          (s->level >= 2 and s->symvalue.offset >= 0)
-#define isreg(s)               (s->level < 0)
 
 public Address address (s, frame)
 Symbol s;
 
 public Address address (s, frame)
 Symbol s;