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