xref: /minix3/external/bsd/byacc/dist/NOTES (revision 4a17663c141e490dfefb696f466dfdcf8bf0527d)
1*4a17663cSThomas Veerman$NetBSD: NOTES,v 1.2 2009/10/29 00:56:19 christos Exp $
2*4a17663cSThomas Veerman
3*4a17663cSThomas VeermanBerkeley Yacc reflects its origins.  The reason so many routines
4*4a17663cSThomas Veermanuse exactly six register variables is that Berkeley Yacc was
5*4a17663cSThomas Veermandeveloped on a VAX using PCC.  PCC placed at most six variables
6*4a17663cSThomas Veermanin registers.  I went to considerable effort to find which six
7*4a17663cSThomas Veermanvariables most belonged in registers.  Changes in machines and
8*4a17663cSThomas Veermancompilers make that effort worthless, perhaps even harmful.
9*4a17663cSThomas Veerman
10*4a17663cSThomas Veerman[Given the previous paragraph, and the fact that GCC does not respect
11*4a17663cSThomas Veerman register declarations, and the fact that much of the rest of the
12*4a17663cSThomas Veerman 4.4lite2 release had "register" declarations extirpated, I've removed
13*4a17663cSThomas Veerman most of the register declarations from the code. I left them in the
14*4a17663cSThomas Veerman generated skeleton code "for the hell of it" but they probably should
15*4a17663cSThomas Veerman go from there, too. -- pm, July 1997]
16*4a17663cSThomas Veerman
17*4a17663cSThomas Veerman[I totally removed the register stuff; we've deprecated it elsewhere
18*4a17663cSThomas Veerman in the tree now -- lukem, October 1997]
19*4a17663cSThomas Veerman
20*4a17663cSThomas VeermanThe code contains many instances where address calculations are
21*4a17663cSThomas Veermanperformed in particular ways to optimize the code for the VAX.
22