it says in my description of the ir that STASG's have the type
authorPeter B. Kessler <peter@ucbvax.Berkeley.EDU>
Thu, 7 Apr 1983 13:12:21 +0000 (05:12 -0800)
committerPeter B. Kessler <peter@ucbvax.Berkeley.EDU>
Thu, 7 Apr 1983 13:12:21 +0000 (05:12 -0800)
pointer to structure.  this makes a difference for the FORCE in fend.c
on the mc68000.

SCCS-vsn: usr.bin/pascal/src/stat.c 1.11
SCCS-vsn: usr.bin/pascal/src/call.c 1.23
SCCS-vsn: usr.bin/pascal/src/pcproc.c 1.20
SCCS-vsn: usr.bin/pascal/src/fend.c 1.22

usr/src/usr.bin/pascal/src/call.c
usr/src/usr.bin/pascal/src/fend.c
usr/src/usr.bin/pascal/src/pcproc.c
usr/src/usr.bin/pascal/src/stat.c

index e134029..ea40976 100644 (file)
@@ -1,6 +1,6 @@
 /* Copyright (c) 1979 Regents of the University of California */
 
 /* Copyright (c) 1979 Regents of the University of California */
 
-static char sccsid[] = "@(#)call.c 1.22 %G%";
+static char sccsid[] = "@(#)call.c 1.23 %G%";
 
 #include "whoami.h"
 #include "0.h"
 
 #include "whoami.h"
 #include "0.h"
@@ -366,8 +366,8 @@ call(p, argv, porf, psbn)
                        putstrop( ( noarguments ? P2UNARY P2STCALL : P2STCALL ),
                                ADDTYPE( p_type_p2type , P2PTR ) ,
                                p_type_width , p_type_align );
                        putstrop( ( noarguments ? P2UNARY P2STCALL : P2STCALL ),
                                ADDTYPE( p_type_p2type , P2PTR ) ,
                                p_type_width , p_type_align );
-                       putstrop( P2STASG , p_type_p2type , lwidth( p -> type )
-                               , align( p -> type ) );
+                       putstrop(P2STASG, ADDTYPE(p_type_p2type, P2PTR),
+                               lwidth(p -> type), align(p -> type));
                        break;
                }
            } else {
                        break;
                }
            } else {
index 66b2eac..358ea7c 100644 (file)
@@ -1,6 +1,6 @@
 /* Copyright (c) 1979 Regents of the University of California */
 
 /* Copyright (c) 1979 Regents of the University of California */
 
-static char sccsid[] = "@(#)fend.c 1.21 %G%";
+static char sccsid[] = "@(#)fend.c 1.22 %G%";
 
 #include "whoami.h"
 #include "0.h"
 
 #include "whoami.h"
 #include "0.h"
@@ -673,6 +673,7 @@ fp_exitcode(eecookiep)
                        fvar -> value[ NL_OFFS ] ,
                        fvar -> extra_flags ,
                        fvartype );
                        fvar -> value[ NL_OFFS ] ,
                        fvar -> extra_flags ,
                        fvartype );
+               putop( P2FORCE , fvartype );
                break;
            default:
                label = getlab();
                break;
            default:
                label = getlab();
@@ -687,13 +688,14 @@ fp_exitcode(eecookiep)
                        fvar -> value[ NL_OFFS ] ,
                        fvar -> extra_flags ,
                        fvartype );
                        fvar -> value[ NL_OFFS ] ,
                        fvar -> extra_flags ,
                        fvartype );
-               putstrop( P2STASG , fvartype , lwidth( fvar -> type ) ,
+               putstrop( P2STASG , ADDTYPE(fvartype, P2PTR) ,
+                       lwidth( fvar -> type ) ,
                        align( fvar -> type ) );
                putdot( filename , line );
                        align( fvar -> type ) );
                putdot( filename , line );
-               putleaf( P2ICON , 0 , 0 , fvartype , labelname );
+               putleaf( P2ICON , 0 , 0 , ADDTYPE(fvartype, P2PTR), labelname );
+               putop( P2FORCE , ADDTYPE(fvartype, P2PTR) );
                break;
        }
                break;
        }
-       putop( P2FORCE , fvartype );
        putdot( filename , line );
     }
        /*
        putdot( filename , line );
     }
        /*
@@ -724,6 +726,7 @@ fp_formalentry(eecookiep)
     struct entry_exit_cookie   *eecookiep;
 {
 
     struct entry_exit_cookie   *eecookiep;
 {
 
+    putprintf("        .align 1", 0);
     putprintf("%s%s:" , 0 , FORMALPREFIX , eecookiep -> extname );
     putprintf("        .word   %s%d", 0, SAVE_MASK_LABEL, eecookiep -> savlabel );
     putleaf( P2ICON , 0 , 0 , ADDTYPE( P2FTN | P2INT , P2PTR ) , "_FCALL" );
     putprintf("%s%s:" , 0 , FORMALPREFIX , eecookiep -> extname );
     putprintf("        .word   %s%d", 0, SAVE_MASK_LABEL, eecookiep -> savlabel );
     putleaf( P2ICON , 0 , 0 , ADDTYPE( P2FTN | P2INT , P2PTR ) , "_FCALL" );
@@ -907,6 +910,7 @@ fp_exitcode(eecookiep)
                        fvar -> value[ NL_OFFS ] ,
                        fvar -> extra_flags ,
                        fvartype );
                        fvar -> value[ NL_OFFS ] ,
                        fvar -> extra_flags ,
                        fvartype );
+               putop( P2FORCE , fvartype );
                break;
            default:
                label = getlab();
                break;
            default:
                label = getlab();
@@ -918,13 +922,14 @@ fp_exitcode(eecookiep)
                        fvar -> value[ NL_OFFS ] ,
                        fvar -> extra_flags ,
                        fvartype );
                        fvar -> value[ NL_OFFS ] ,
                        fvar -> extra_flags ,
                        fvartype );
-               putstrop( P2STASG , fvartype , lwidth( fvar -> type ) ,
+               putstrop( P2STASG , ADDTYPE(fvartype, P2PTR) ,
+                       lwidth( fvar -> type ) ,
                        align( fvar -> type ) );
                putdot( filename , line );
                        align( fvar -> type ) );
                putdot( filename , line );
-               putleaf( P2ICON , 0 , 0 , fvartype , labelname );
+               putleaf( P2ICON , 0 , 0 , ADDTYPE(fvartype, P2PTR), labelname );
+               putop( P2FORCE , ADDTYPE(fvartype, P2PTR) );
                break;
        }
                break;
        }
-       putop( P2FORCE , fvartype );
        putdot( filename , line );
     }
        /*
        putdot( filename , line );
     }
        /*
index 9da1463..d7084c6 100644 (file)
@@ -1,6 +1,6 @@
 /* Copyright (c) 1979 Regents of the University of California */
 
 /* Copyright (c) 1979 Regents of the University of California */
 
-static char sccsid[] = "@(#)pcproc.c 1.19 %G%";
+static char sccsid[] = "@(#)pcproc.c 1.20 %G%";
 
 #include "whoami.h"
 #ifdef PC
 
 #include "whoami.h"
 #ifdef PC
@@ -396,10 +396,11 @@ pcproc(r)
                                            putdot( filename , line );
                                            break;
                                    default:
                                            putdot( filename , line );
                                            break;
                                    default:
-                                           putstrop( P2STASG
-                                                       , p2type( filetype )
-                                                       , lwidth( filetype )
-                                                       , align( filetype ) );
+                                           putstrop(P2STASG,
+                                                   ADDTYPE(p2type(filetype),
+                                                           P2PTR),
+                                                   lwidth(filetype),
+                                                   align(filetype));
                                            putdot( filename , line );
                                            break;
                                }
                                            putdot( filename , line );
                                            break;
                                }
@@ -1014,10 +1015,10 @@ pcproc(r)
                                            putdot( filename , line );
                                            break;
                                    default:
                                            putdot( filename , line );
                                            break;
                                    default:
-                                           putstrop( P2STASG
-                                                       , p2type( ap )
-                                                       , lwidth( ap )
-                                                       , align( ap ) );
+                                           putstrop(P2STASG,
+                                                   ADDTYPE(p2type(ap), P2PTR),
+                                                   lwidth(ap),
+                                                   align(ap));
                                            putdot( filename , line );
                                            break;
                                }
                                            putdot( filename , line );
                                            break;
                                }
index 06895b1..c31ec0c 100644 (file)
@@ -1,6 +1,6 @@
 /* Copyright (c) 1979 Regents of the University of California */
 
 /* Copyright (c) 1979 Regents of the University of California */
 
-static char sccsid[] = "@(#)stat.c 1.10 %G%";
+static char sccsid[] = "@(#)stat.c 1.11 %G%";
 
 #include "whoami.h"
 #include "0.h"
 
 #include "whoami.h"
 #include "0.h"
@@ -448,8 +448,8 @@ asgnop1(r, p)
                            putdot( filename , line );
                            break;
                    default:
                            putdot( filename , line );
                            break;
                    default:
-                           putstrop( P2STASG , p2type( p )
-                                       , lwidth( p ) , align( p ) );
+                           putstrop(P2STASG, ADDTYPE(p2type(p), P2PTR),
+                                       lwidth(p), align(p));
                            putdot( filename , line );
                            break;
            }
                            putdot( filename , line );
                            break;
            }