1.21 release; allow register floats to get a register
authorSam Leffler <sam@ucbvax.Berkeley.EDU>
Sun, 27 Jul 1986 15:24:29 +0000 (07:24 -0800)
committerSam Leffler <sam@ucbvax.Berkeley.EDU>
Sun, 27 Jul 1986 15:24:29 +0000 (07:24 -0800)
SCCS-vsn: old/pcc/ccom.tahoe/local.c 1.4

usr/src/old/pcc/ccom.tahoe/local.c

index f442a18..03e7203 100644 (file)
@@ -1,5 +1,5 @@
 #ifndef lint
 #ifndef lint
-static char sccsid[] = "@(#)local.c    1.3 (Berkeley) %G%";
+static char sccsid[] = "@(#)local.c    1.4 (Berkeley) %G%";
 #endif
 
 # include "pass1.h"
 #endif
 
 # include "pass1.h"
@@ -96,7 +96,7 @@ clocal(p) register NODE *p; {
                ml = p->in.left->in.type;
                if(m == FLOAT || m == DOUBLE) {
                        if(p->in.left->in.op==SCONV &&
                ml = p->in.left->in.type;
                if(m == FLOAT || m == DOUBLE) {
                        if(p->in.left->in.op==SCONV &&
-                        (ml == FLOAT || ml == DOUBLE) &&
+                        ml == DOUBLE &&
                         p->in.left->in.left->in.type==m) {
                                p->in.op = p->in.left->in.op = FREE;
                                return(p->in.left->in.left);
                         p->in.left->in.left->in.type==m) {
                                p->in.op = p->in.left->in.op = FREE;
                                return(p->in.left->in.left);
@@ -244,7 +244,7 @@ cisreg( t ) TWORD t; { /* is an automatic variable of type t OK for a register v
 #ifdef REG_CHAR
                || t==CHAR || t==UCHAR || t==SHORT || t==USHORT         /* tbl */
 #endif
 #ifdef REG_CHAR
                || t==CHAR || t==UCHAR || t==SHORT || t==USHORT         /* tbl */
 #endif
-               || ISPTR(t)) return (1);                        /* wnj */
+               || ISPTR(t) || t == FLOAT) return (1);          /* wnj */
        return(0);
        }
 
        return(0);
        }